#include <Servo.h>
Servo myservo; // создание объекта
int distance;
// Функция чтения данных с датчика
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(triggerPin, OUTPUT); // сброс Trig
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH); // установка TRIG на 10 мкс
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT); // измерение длительности ECHO
return pulseIn(echoPin, HIGH);
}
void setup()
{
myservo.attach(9); // привязка линии управления к выводу 9
}
void loop()
{
distance = readUltrasonicDistance(3, 2) * 0.034 / 2; // Расстояние в сантиметрах
delay(10);
int angle = map(distance, 0, 400, 180, 0); // Пропорциональный угол
myservo.write(angle); // устанвока новой позиции сервопривода
}