LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
SoM / SBC

[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:

Autor: Patryk Mądry