Elimdeki arduino ile servo motoru kontrol etmek istiyorum. Bunun için serialden 1 yada 0 gönderip çeşitli açılara geçiş yapmasını istiyorum. 1 gönderdiğimde gerekeni yapıyor ancak ikinci komudu algılamıyor, yada ilk 0'ı verirsem ona uygun hareketi yapıyor.
Yardımcı olabilirseniz sevinirim.
#include
Servo servo;
char sensor;
int pos = 90; // variable to store the servo position
int servo120(){
if(pos<120)
{
for(pos=pos;pos=120;pos++)
{
servo.write(pos);
}
}
if(pos>=120)
{
for(pos=pos;pos=120;pos--)
{
servo.write(pos);
}
}
}
int servo60(){
if(pos<60)
{
for(pos=pos;pos=60;pos++)
{
servo.write(pos);
}
}
if(pos>=60)
{
for(pos=pos;pos=60;pos--)
{
servo.write(pos);
}
}
}
void setup() {
// Seri haberleşmeyi başlatıyoruz (9600 bps hızında)
Serial.begin(9600);
pinMode(13, OUTPUT);
servo.attach(9);
}
void loop() {
servo.write(90);
// Veri gelmiş mi?
if (Serial.available() > 0) {
// gelen veriyi oku
sensor = Serial.read();
Serial.println(sensor);
if(sensor=='1')
{digitalWrite(13, HIGH);servo60();delay(100);}
if(sensor=='0')
{digitalWrite(13, LOW);servo120();delay(100);}
}
}