Dwukanałowy mostek H na Arduino – Budowa robota #2

Sty 10
2014

Mostek HAby robot mógł się poruszać, potrzebuje silnika. Najlepiej dwóch. Podpięcie ich bezpośrednio pod Arduino i sterowanie wyjściowym napięciem pozwoli nam jedynie na poruszanie silnika w jednym kierunku. Problem pojawi się, kiedy będziemy musieli cofnąć się robotem do tyłu, bądź wykonać skręt. Z pomocą przyjdzie nam tu dwukanałowy mostek H, dzięki któremu zyskamy pełną kontrolę nad silniczkiem z poziomu Arduino.

 

 

Co nam będzie potrzebne?

  • L293D – dwukanałowy sterownik silników (3,50 PLN)
  • Dwa silniczki 3-6V (11-14 PLN), bądź przekładnia podwójna Tamiya 70097 (49 PLN z silnikami w zestawie)

Plusem płynącym z zakupu przekładni jest jej kompatybilność z podwoziem gąsienicowym Tamiya 70100 (39,90 PLN) oraz uniwersalną płytką montażową Tamiya 70098 (25 PLN). Nic nie stoi jednak na przeszkodzie, aby nasz robot był zbudowany na własnoręcznie stworzonej platformie z starego samochodziku, bądź z mocnego, sztywnego kartonu – to od Was zależy, jak będzie on wyglądał.

 

Montaż na płytce stykowej

Sterownik L293D wymaga podpięcia zasilania 5V do części logicznej. Silniczki najlepiej jest zasilić oddzielnie, ja wykorzystuję w tym celu 4 baterie AA podpięte szeregowo. Mostek H powoduje spadek napięcia wyjściowego o ~2V, więc takie zasilanie jest wystarczające dla silniczków 3V, lecz za niskie dla 6V. Jeśli chcemy podpiąć takie silniczki, możemy zastosować akumulator LiPo 7.4V.

Mostek H

 

PWM możemy podpiąć bezpośrednio pod zasilanie 5V Arduino, wtedy silniczki będą kręcić się z pełną mocą, co za tym idzie stracimy możliwość jej modyfikowania. W kodzie źródłowym ich moc ustawiona jest na 80%.

 

Sterowanie silniczkami

Po prawidłowym zmontowaniu układu możemy przystąpić do kręcenia silnikiem. Jeśli któryś z nich został podpięty odwrotnie (minus do plusa, co spowoduje kręcenie w przeciwnym kierunku), nic się nie stanie i będziemy mogli poprawić to z poziomu kodu źródłowego, bądź zmieniając podłączenie dwóch przewodów.

// 4-kanałowe sterowanie radiowe
int A = 3;
int B = 5;
int C = 2; 
int D = 4;
 
// Silnik #1
int S1Tyl = 13;
int S1Przod = 12;
int S1PWM = 11;
 
// Silnik #2
int S2Tyl = 8;
int S2Przod = 9;
int S2PWM = 10;
 
// coming soon...
int surprise0 = 0;
int surprise1 = 1;
 
void setup() {
  Serial.begin(9600);
  while(!Serial);
 
  pinMode(A, INPUT);
  pinMode(B, INPUT);
  pinMode(C, INPUT);
  pinMode(D, INPUT);
 
  pinMode(S1Przod, OUTPUT);
  pinMode(S1Tyl, OUTPUT);
  analogWrite(S1PWM, map(80, 0, 100, 0, 255)); //80% mocy
 
  pinMode(S2Przod, OUTPUT);
  pinMode(S2Tyl, OUTPUT);
  analogWrite(S2PWM, map(80, 0, 100, 0, 255)); //70% mocy
}
 
void loop() {
  int A_ = digitalRead(A);
  int B_ = digitalRead(B);
  int C_ = digitalRead(C);
  int D_ = digitalRead(D);
 
  //aby robot się zaczymał, jeśli nie odbierze sygnału
  if(A_ == LOW && B_ == LOW && C_ == LOW && D_ == LOW) {
    Serial.println("A- B- C- D-");
 
    digitalWrite(S1Przod, LOW);
    digitalWrite(S2Przod, LOW);
 
    digitalWrite(S1Tyl, LOW);
    digitalWrite(S2Tyl, LOW);
  }
 
  if(A_ == HIGH) { //przod
    Serial.println("A+");
 
    digitalWrite(S1Przod, HIGH);
    digitalWrite(S2Przod, HIGH);
 
    digitalWrite(S1Tyl, LOW);
    digitalWrite(S2Tyl, LOW);
  }
 
  if(B_ == HIGH) { //tyl
    Serial.println("B+");
 
    digitalWrite(S1Przod, LOW);
    digitalWrite(S2Przod, LOW);
 
    digitalWrite(S1Tyl, HIGH);
    digitalWrite(S2Tyl, HIGH);
  }
 
  if(C_ == HIGH) { //lewo
    Serial.println("C+");
 
    digitalWrite(S1Przod, LOW);
    digitalWrite(S2Przod, HIGH);
 
    digitalWrite(S1Tyl, HIGH);
    digitalWrite(S2Tyl, LOW);
  }
 
  if(D_ == HIGH) { //prawo
    Serial.println("D+");
 
    digitalWrite(S1Przod, HIGH);
    digitalWrite(S2Przod, LOW);
 
    digitalWrite(S1Tyl, LOW);
    digitalWrite(S2Tyl, HIGH);
  }
 
  delay(100);
}

 

 

Jeden komentarz w “Dwukanałowy mostek H na Arduino – Budowa robota #2”

  1. Maciek napisał/a:

    Dzień dobry.
    Właśnie szukałem czegoś takiego – robot (2 silniczki) + Arduino Uno + sterowanie radiowe.
    Byłoby super gdyby zechciał pan zamieścić graficzny obraz połączeń. Mam wnuka w wieku lat 16 i szukam czegoś co mógłbym budować razem z nim. Mimo, że jak sam Pan pisze, stron jest wiele, to mało jest takich czytelnych i prostych jak Pańska.
    Ukłony
    maciek

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *