Hogyan lehet Arduino-nál for ciklust egyszerre lejátszani?
Ezt meg még jópár ilyet kéne egyszerre lejátszania az arduinonak. Valaki tudna segiteni?
for(pos=90;pos<160;pos+=1)
{
servo4.write(pos);
delay(10);
}
for(pos=90;pos<110;pos+=1)
{
servo1.write(pos);
delay(15);
}
for(pos=160;pos>90;pos-=1)
{
servo4.write(pos);
delay(10);
}
for(pos=90;pos<105;pos+=1)
{
servo6.write(pos);
delay(15);
}
for(pos=85;pos>70;pos-=1)
{
servo5.write(pos);
delay(15);
}
for(pos=95;pos<110;pos+=1)
{
servo3.write(pos);
delay(15);
}
for(pos=90;pos>75;pos-=1)
{
servo2.write(pos);
delay(15);
}
for(pos=105;pos>90;pos-=1)
{
servo1.write(pos);
delay(15);
}
Nem így.
Én felvennék egy 2 dimenziós tömböt, mint ha egy táblázat lenne:
servoid, start, end, step, current
Ezután elindítanék egy ciklust, ami addig fut, amíg ebben a táblázatban talál olyan sort, ahol a current+step az kisebb az end-nél.
Minden ciklusban végigjárnám a sorokat, ha találok olyant ahol a fenti feltétel teljesül, akkor az adott servora kiküldeném az új current poziciót, a steppel megnövelném a current értékét és nézném a következő sort.
Amikor minden soron végimentem jöhet a delay és indul elölről az egész.
Hozzátenném, hogy nem túl rég óta foglalkozom robotozással és Arduinoval, lehet, hogy van ennél szebb és elegánsabb megoldás is, ez csak a paraszti észből jött.
Egyetértek részben az előttem szólóval. Szerintem is azon kell elindulnod hogy egy ciklusod van ami végignézi hogy mit mire kell állítani.
De nem kell feltétlen tömböt használnod hozzá. Ha minden motorhoz csinálsz külön fgv-t ami a megadott értékek között lépteti akkor csak ezeket kell meghívni egymás után.
PL a servo4 a 90 és 160 pos érték között mozog.
Ennek lehet olyan fgv-t írni amio minden meghívásnál egy értékkel előrébb lépteti a motort. Globális változókkal még a motorok állapotát is lehet tárolni és a fgv-ek akár fel is tudják használni.
Én ezzel a megoldással próbálkoznék. Bár megjegyzem még nem csináltam ilyen vezérlést.:)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!