#include <AsyncServoLib.h>
AsyncServo servo1;
const int pinServo = 6; // Пин для подключения сервопривода
const int POT = A5; //Аналоговый вход A3 фоторезистора
int valres = 0; // переменная для хранения значения фоторезистора
int angleServo = 45; // переменная для хранения угла поворота сервы
const int threshold = 70; //порог срабатывания датчика
static byte on_stat = 0; //счёчик статуса срабатываний
void setup()
{
// подключить переменную servo к выводу pinServo
servo1.Attach(pinServo);
servo1.SetOutput(500, 1500, 2500);
Serial.begin(9600);
servo1.WriteDegree(90);
}
void loop()
{
valres = analogRead(POT); //чтение данных фоторезистора
Serial.println(valres); // Печать на терминал значения с аналогового
if (valres > threshold && on_stat == 0) {
servo1.WriteDegree(90);
on_stat = 1;
delay(1500); //пауза для ажидания поворота сервопривода;
}
if (valres <= threshold && on_stat == 1) {
servo1.WriteDegree(125);
on_stat = 2;
delay(1500); //пауза для ажидания поворота сервопривода;
}
if (valres > threshold && on_stat == 2) {
servo1.WriteDegree(90);
on_stat = 3;
delay(1500); //пауза для ажидания поворота сервопривода;
}
if (valres <= threshold && on_stat == 3) {
servo1.WriteDegree(45);
on_stat = 4;
delay(1500); //пауза для ажидания поворота сервопривода;
}
if (valres > threshold && on_stat == 4) {
servo1.WriteDegree(90);
on_stat = 0;
delay(1500); //пауза для ажидания поворота сервопривода;
}
}