24-10-2017, 23:21
Cześć,
Zakupiłem serwo pełnego obrotu AR-3606HB 360 stopni i próbuję napisać do obsługi program, ale serwo nie zachowuje się tak jak powinno. W datasheet wyczytałem, że przy 1,5ms to punkt neutralny ale moje serwo w tej lini
nie jest zatrzymane ale obraca się powoli. Napisałem testowy program do obsługi serwa dwa przyciski do zmiany ruchu serwa w przeciwnych kierunkach oraz do zatrzymania gdy nie ma nic wciśniete, lecz po wgraniu serwo na nic nie reaguje i obraca się:
Zakupiłem serwo pełnego obrotu AR-3606HB 360 stopni i próbuję napisać do obsługi program, ale serwo nie zachowuje się tak jak powinno. W datasheet wyczytałem, że przy 1,5ms to punkt neutralny ale moje serwo w tej lini
Kod:
servo1.writeMicroseconds(1500);
nie jest zatrzymane ale obraca się powoli. Napisałem testowy program do obsługi serwa dwa przyciski do zmiany ruchu serwa w przeciwnych kierunkach oraz do zatrzymania gdy nie ma nic wciśniete, lecz po wgraniu serwo na nic nie reaguje i obraca się:
Kod:
#include <Servo.h>
int button1 = 8; //button pin, connect to ground to move servo
int button2 = 9;
int press1 = 0;
Servo servo1;
void setup()
{
pinMode(button1,INPUT_PULLUP);
pinMode(button2,INPUT_PULLUP);
servo1.attach(7);
digitalWrite(button1, LOW); //enable pullups to make pin high
digitalWrite(button2, LOW);
servo1.writeMicroseconds(1500);
}
void loop()
{
if((digitalRead(button1))==HIGH){
servo1.writeMicroseconds(1000);
}
else if((digitalRead(button2))==HIGH){
servo1.writeMicroseconds(2000);
}
else
servo1.writeMicroseconds(1500);
}