Arkadaşlar aşağıdaki gibi bir fonksiyonum var. Amacım şu aslında. Bu robot kolun ileri ya da geri hareketi için kullanılacak. Ancak bunun belirli bir süre içinde yapmasını istiyorum. Örneğin ileri 1 sn. geri 1 sn. gibi....
loop içerisindeki aşağıdaki gibi kullanmak istiyorum ancak motorlar kitleniyor. Nedeni sanırım step motorun ilgili fonksiyonunun içerisindeki delay(3) satırı. Bunu millis ile mi ayarlamam gerekiyor? Açıkcası timer kullanımına baktım ama biraz zorlandım bu kodları timer' a çevirirken. Bu durumu nasıl aşabilirim?
geri();
delay(1000);
ileri();
delay(1000);
loop içerisindeki aşağıdaki gibi kullanmak istiyorum ancak motorlar kitleniyor. Nedeni sanırım step motorun ilgili fonksiyonunun içerisindeki delay(3) satırı. Bunu millis ile mi ayarlamam gerekiyor? Açıkcası timer kullanımına baktım ama biraz zorlandım bu kodları timer' a çevirirken. Bu durumu nasıl aşabilirim?
geri();
delay(1000);
ileri();
delay(1000);
Kod:
void geri()
{
switch(step1) {
case 0:
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);
break;
case 1:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, LOW);
break;
case 2:
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, HIGH);
break;
case 3:
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, HIGH);
break;
}
step1++;
if(step1>3) step1=0;
if(step1<0) step1=3;
delay(3);
}