Оформи код соответствующим тэгом
Утро доброе всем! Проблема следующая. Есть servo на 360 градусов(купил на Али) без ограничителя. Написал скетч с двумя кнопками для поворотов в обе стороны. Компиляция нормальная, только servo крутится не управляемый. Что нужно добавить в скетче, какую строчку? Если я подключаю servo на 180 градусов с ограничителем, то всё работает правильно.
#include <Servo.h>
#define ServoPin 5 //пин сервы
#define BUT_1 2 //BUT_1 и BUT_2 - кнопки управления сервой (тут пин 4)
#define BUT_2 4 //BUT_1 и BUT_2 - кнопки управления сервой (тут пин 5)
#define SHAG 5 //шаг поворота сервы, в градусах
Servo myServo;
int angle = 0; //начальный угол
void setup()
{
myServo.attach(ServoPin);
myServo.write(angle); //состояние после включения
pinMode(BUT_1, INPUT); //для считывания состояний кнопок
pinMode(BUT_2, INPUT); //для считывания состояний кнопок
// кнопки соединены с ардуиной стягивающим резистором! (т.е. когда не нажато 0 В)
}
void loop()
{
if (digitalRead(BUT_1)) angle = angle + SHAG; //если первая кнопка увеличим угол
if (digitalRead(BUT_2)) angle = angle - SHAG;//если вторая уменьшим
if (angle > 180) angle = 180; //ограничим угол сервы 0..180
if (angle < 0) angle = 0;
myServo.write(angle); //задаем получившийся угол
delay(300); // подождем перед следующим опросом
}
#include <Servo.h>
#define ServoPin 5 //пин сервы
#define BUT_1 2 //BUT_1 и BUT_2 - кнопки управления сервой (тут пин 4)
#define BUT_2 4 //BUT_1 и BUT_2 - кнопки управления сервой (тут пин 5)
#define SHAG 5 //шаг поворота сервы, в градусах
Servo myServo;
int angle = 0; //начальный угол
void setup()
{
myServo.attach(ServoPin);
myServo.write(angle); //состояние после включения
pinMode(BUT_1, INPUT); //для считывания состояний кнопок
pinMode(BUT_2, INPUT); //для считывания состояний кнопок
// кнопки соединены с ардуиной стягивающим резистором! (т.е. когда не нажато 0 В)
}
void loop()
{
if (digitalRead(BUT_1)) angle = angle + SHAG; //если первая кнопка увеличим угол
if (digitalRead(BUT_2)) angle = angle - SHAG;//если вторая уменьшим
if (angle > 180) angle = 180; //ограничим угол сервы 0..180
if (angle < 0) angle = 0;
myServo.write(angle); //задаем получившийся угол
delay(300); // подождем перед следующим опросом
}