#include <LiquidCrystal.h>
// Инициализация библиотеки с номерами интерфейсных пинов
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Пины ультразвукового датчика
const int trigPin = 9;
const int echoPin = 10;
// Пин кнопки
const int buttonPin = 7;
// Переменные для расчета расстояния
long duration;
int distance;
// Состояние кнопки
int buttonState = 0;
void setup() {
// Настройка ЖК-дисплея с 16 столбцами и 2 строками
lcd.begin(16, 2);
// Настройка пинов ультразвукового датчика
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Настройка пина кнопки с внутренним подтягивающим резистором
pinMode(buttonPin, INPUT_PULLUP);
// Приветственное сообщение
lcd.print("Press button");
}
void loop() {
// Чтение состояния кнопки
buttonState = digitalRead(buttonPin);
// Проверка, нажата ли кнопка
if (buttonState == LOW) { // Нажата (т.к. используем INPUT_PULLUP)
// Очистка дисплея
lcd.clear();
// Измерение расстояния
distance = measureDistance();
// Вывод расстояния на дисплей
lcd.setCursor(0, 0);
lcd.print("Distance:");
lcd.setCursor(0, 1);
lcd.print(distance);
lcd.print(" cm");
// Ожидание отпускания кнопки
while (digitalRead(buttonPin) == LOW);
// Небольшая задержка для устранения дребезга контактов
delay(200);
}
}
int measureDistance() {
// Генерация 10-мкc импульса на trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Считывание продолжительности импульса с echoPin
duration = pulseIn(echoPin, HIGH);
// Расчет расстояния в сантиметрах
distance = duration * 0.034 / 2; // Скорость звука 340 м/с
return distance;
}
(Я пропустила тему пока болела, подскажите как подсоединить и написать код, буду очень благодарна)