Подскажите, никак не получается. Chip дал код, я немного его подкорректировал и залил.
Код:
int ServoPin = 3; //управляющий выход для сервы
int in_4 = 4; // вход для первой кнопки
int in_5 = 5; // вход для второй кнопки
int step = 100; //среднее положение сервы
void setup()
{
pinMode(ServoPin, OUTPUT);
pinMode(in_4, INPUT);
pinMode(in_5, INPUT);
}
void loop()
{
if(step > 700){step = 700;}
if(step < 600){step = 600;}
if(digitalRead(in_4)==HIGH){step=step+10;} // если нажата первая кнопка делаем один шаг в право
if(digitalRead(in_5)==HIGH){step=step-10;} // если нажата вторая кнопка делаем один шаг в лево
digitalWrite(ServoPin, HIGH);
delayMicroseconds(step);
digitalWrite(ServoPin, LOW);
delayMicroseconds(20000-step);
}
Но получается не то что я хочу. Во-первых серва поворачивает сначала не в ту сторону и ход у неё маленький,как увеличить?
если увеличить это значение
Код:
if(step > 700){step = 700;}
ТО получается что серва поворачивается больше,в принципе то что мы хотели,но тогда появляется такой эффект как, то что серва повернула и остановилась,но при этом слышно как моторчик пыхтит