#include <Servo.h>
const int SENSOR_PIN = A0; // Пин для подключения потенциометра
const int SERVO_PIN = 11; // Пин для подключения сервопривода
const int MAX_SERVO_ANGLE = 180; // Максимальный угол поворота сервопривода (некоторые до 360, некоторые до 180)
Servo myServo; // Создание объекта для управления сервоприводом
int previous_signal = 0; // Переменная для хранения предыдущего считанного значения
void setup()
{
Serial.begin(9600); // Настройка последовательной связи для вывода информации в монитор порта
myServo.attach(SERVO_PIN); // Подключение сервопривода к соответствующему пину
myServo.write(90); // Поворот сервопривода на 90 градусов
delay(1000); // Пауза 1 секунда
myServo.write(0); // Возвращение сервопривода в начальное положение
delay(1000); // Пауза 1 секунда
}
void loop()
{
int external_signal = analogRead(SENSOR_PIN); // Считывание значения с потенциометра
if (previous_signal != external_signal)
{
int angle = map(external_signal, 0, 1023, 0, MAX_SERVO_ANGLE); // Преобразование считанного значения в угол поворота сервопривода
myServo.write(angle); // Установка угла поворота сервопривода
Serial.print("Сервопривод повернут на "); // Вывод информации о текущем угле поворота в монитор порта
Serial.print(myServo.read());
Serial.println(" градусов");
}
previous_signal = external_signal; // Обновление предыдущего значения для последующего сравнения
delay(100); // Пауза для стабилизации
}