#include <Servo.h>
Servo serv;
float pos = 90.0; // объявляем переменную содержащую положение сервы
float step = 1.0; // переменная содержащая шаг отклонения сервы. 1 град.
#define VERT_PIN A0 // пин для вертикального отклонения
#define HORZ_PIN A1 // пин горезонтального
#define SEL_PIN 2 // кнопка
#define Serv_Pin 3 // value
void setup() {
Serial.begin(9600);
pinMode(VERT_PIN, INPUT);
pinMode(HORZ_PIN, INPUT);
pinMode(SEL_PIN, INPUT_PULLUP);
serv.attach(Serv_Pin); // инициализируем пин сервы
serv.write(pos); // выставляем серву в положение pos
}
void loop() {
int horz = analogRead(HORZ_PIN); // получаем сигнал от джойстика
//int vert = analogRead(VERT_PIN); // получаем сигнал от джойстика
//bool selPressed = digitalRead(SEL_PIN) == LOW;
if (horz<512) // проверяем не одклонился ли джойстик
{
Serial.println("right");
if (pos>=0.0) // проверяем наше положение и если оно больше 0 выполняем
{
serv.write(pos); // перемещаем вал сервы на значение pos
pos+=step; // уменьшаем значение pos на значение step
delay(5); // ну и ждем 5 доль сек что бы все это произошло.
}
}
if (horz>512) // проверяем не одклонился ли джойстик
{
Serial.println("left");
if (pos<=180.0) // проверяем наше положение и если оно больше 0 выполняем
{
serv.write(pos); // перемещаем вал сервы на значение pos
pos-=step; // уменьшаем значение pos на значение step
delay(5); // ну и ждем 5 доль сек что бы все это произошло.
}
}
}