#include "Ultrasonic.h" // подключается библиотека для работы с УЗ датчиком
Ultrasonic dalnomer(12, 13); // подключаются контакты: Trig к выводу 12, а Echo к выводу 13
int dist; // вводится переменная dist
#include <LiquidCrystal.h> // подключается библиотека lcd экрана
LiquidCrystal lcd(3, 4, 8, 9, 10, 11); // экран программно подключается к указанным в скобках пинам
int BUTTON = 6; // создаются и инициализируются необходимые переменные
int val;
void setup()
{
lcd.begin(16, 2); //инициализируется экран как 2-х строчный с 16-ю символами в каждой строке
pinMode(BUTTON, INPUT); // определяется режим работы кнопки (вход)
}
void loop()
{
dist = dalnomer.Ranging(CM); //переменной dist присваивается значение расстояния в см
lcd.clear(); //очистка экрана
lcd.print("Расстояние");// вывод на экран слова: Расстояние
lcd.setCursor(5, 1); //установка курсора на 6-й символ второй строки
lcd.print("См."); // вывод на экран слова: См.
lcd.setCursor(0, 1); // установка курсор на первый символ второй строки
lcd.print(dist); // вывод на экран значения переменной dist, то есть расстояния до объекта
delay(100); // задержка для постоянства значений
val = digitalRead(BUTTON); // в переменную val записывается состояние кнопки: есть нажатие кнопки(HIGH) или нет(LOW).
if (val == HIGH) { // если есть нажатие кнопки, то выполняется набор команд в фигурных скобках
delay (100); // задержка для отсекания ложных нажатий
val = LOW; //значение переменной val обнуляется (присваивается LOW)
while (val == LOW) { // и пока переменная val равна LOW - то есть кнопка не нажата
val = digitalRead(BUTTON); // считывается состояние кнопки
delay (100); // задержка для отсекания ложных нажатий
}
}
}