// робочі бібліотеки
#include <Ultrasonic.h>
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
#define TrigPin 7
#define EchoPin 6
#define ServoPin 3
Servo servoTurn;
float distance; // ініціюємо зміну типу даних флоат
Ultrasonic Ultra(TrigPin, EchoPin); // ініціалізація параметрів датчика відстані
LiquidCrystal_I2C lcd(0x27, 16, 2); // задання параметрів дисплея
void setup() {
servoTurn.attach(ServoPin); // ініціалізація сервоприводу, присвоєння піна
lcd.init(); // вмикаємо дисплей
lcd.backlight(); // вмикаємо підсвітку
// встановлюємо курсор в необхідне місце та виводимо слово в лапках
lcd.setCursor(0, 0);
lcd.print("Distance");
}
void loop() {
distance = Ultra.distanceRead(); //зчитувані дані з сенсора передаємо до змінної distance
// встановлюємо курсор в необхідне місце та виводимо дані з сенсора відстані
lcd.setCursor(10, 0);
lcd.print(distance);
// конвертуємо отримувану величину з сенсора так, щоб 0 значення відстані відповідала куту поворота сервопривода 0 градусів, а 50 см - 180 градусам.
distance = map(distance, 0, 50, 0, 180);
distance = constrain(distance, 0, 180);
servoTurn.write(distance);
delay(100); // маленька затримка
}