[PROJEKT] Romi Chassis – montaż oraz sterowanie silnikami
Jednak, gdy będziemy chcieli napisać program realizujący bardziej skomplikowaną trasę, będzie on zajmował wiele linijek kodu, w którym łatwo się pogubić. Dlatego utworzymy odpowiednie funkcje które będą realizować następujące zadania: jazda do przodu, jazda do tyłu, obrót w prawo, obrót w lewo oraz zatrzymanie (stop).
Aby obracać się w prawo, lewy silnik musi kręcić się do przodu, a prawy do tyłu. W analogiczny sposób realizowany jest obrót w lewo – wtedy silnik prawy musi obracać się do przodu, natomiast lewy do tyłu. Napisane funkcje prezentują się następująco:
void Jedz_do_przodu(int i)
{
// Lewy silnik
digitalWrite(6,LOW);
analogWrite(10,i);
// Prawy silnik
digitalWrite(7,LOW);
analogWrite(11,i);
}
void Jedz_do_tylu(int i)
{
// Lewy silnik
digitalWrite(6,HIGH);
analogWrite(10,i);
// Prawy silnik
digitalWrite(7,HIGH);
analogWrite(11,i);
}
void Obrot_w_prawo(int i)
{
// Lewy silnik
digitalWrite(6,LOW);
analogWrite(10,i);
// Prawy silnik
digitalWrite(7,HIGH);
analogWrite(11,i);
}
void Obrot_w_lewo(int i)
{
// Lewy silnik
digitalWrite(6,HIGH);
analogWrite(10,i);
// Prawy silnik
digitalWrite(7,LOW);
analogWrite(11,i);
}
void Stop()
{
// Lewy silnik
digitalWrite(6,LOW);
analogWrite(10,0);
// Prawy silnik
digitalWrite(7,LOW);
analogWrite(11,0);
}
Argumentem funkcji jest wartość PWM, która jest przekazywana do funkcji generującej sygnał PWM – analogWrite().
W programie głównym stworzyłem następujący program.
for(int j=0;j <4; j++)
{
Jedz_do_przodu(100);
delay(1000);
Stop();
delay(500);
Obrot_w_prawo(50);
delay(600);
Stop();
delay(500);
}
Powyższy kod programu realizuje jazdę podwozia po obwodzie kwadratu. Najpierw robot jedzie przez 1 sekundę (1000 ms) do przodu, następnie zatrzymuje się na 0,5 sekundy (500 ms). Później obraca się w prawo przez 600 ms, taki cykl wykonuje się cztery razy. Czas obrotu należy dobrać doświadczalnie metodą prób i błędów. Pełen program znajduje się w sekcji Plik do pobrania.
Jeżdżenie po „kwadracie” zostało zaprezentowane na poniższym wideo:

Dominik Bednarski porównuje STM32MP1 i OpenSTLinux oraz Raspberry Pi 5
Technologie End of Life i bezpieczeństwo sieci – wyzwania Europy związane z tzw. długiem technologicznym
Najczęstsze błędy firm przy wyborze dostawcy energii i jak ich uniknąć 



