Menu
CoddyTech

Расстояние на LCD

Часть раздела Дисплеи и датчики путешествия по Arduino на Coddy. Урок 23 из 24.

Датчик и экран образуют прибор, который работает без компьютера: здесь HC-SR04 измеряет расстояние, а LCD его показывает.

Каждый шаг взят из предыдущих уроков. Измерьте время эха, переведите его в сантиметры и выведите на нижнюю строку, указав единицу измерения после значения:

int cm = duration * 0.034 / 2;

lcd.setCursor(0, 1);
lcd.print(cm);
lcd.print(" cm    ");

Пробелы после cm важны. При переходе от 150 cm к 20 cm новый текст короче, и без этих пробелов на экране было бы 20 cmm. Здесь расстояние хранится в int: целые сантиметры удобнее читать на маленьком экране.

challenge icon

Задание

Средне

На ЖК-дисплее в верхней строке отображается Distance:, а скетч измеряет время эха. Выведи расстояние под ней:

  • переведи время в целые сантиметры
  • в начале нижней строки выведи число, а затем cm, например 25 cm
  • закрой оставшиеся символы пробелами

Нажми Run, перемести объект, затем нажми Check.

Попробуйте сами

#include <LiquidCrystal.h>

// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int trigPin = 9;
const int echoPin = 10;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  lcd.begin(16, 2);
  lcd.print("Distance:");
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duration = pulseIn(echoPin, HIGH);
  // вычислить расстояние в сантиметрах и вывести его в нижней строке, например 25 cm
  delay(200);
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Дисплеи и датчики

Потренируйтесь самостоятельно: Песочница Arduino