Zaloguje się
or
Tel +48 698 615 740

Zmiana prędkości jazdy w robocie z modułem l298n

18 listopada, 2021

W artykule zostanie omówione podłączenie jakie należy wykonać, zaprogramowanie, oraz dodamy kilka dodatkowych możliwości naszemu robotowi, aby wykorzystać ten artykuł zaleca się najpierw zapoznanie z artykułem “Sterowanie robotem przy pomocy kontrolera bezprzewodowego”.

Spis treści

  • Podłączenie PWM
  • Zaprogramowanie zmiany prędkości robota
  • Zaprogramowanie funkcji turbo i ręcznej zmiany prędkości
  • Pliki do pobrania

Podłączenie PWM

Rozpoczniemy od ściągnięcia zworek z pinów A Enable i B Enable (patrz schemat), będziemy potrzebowali 4 przewody damsko-damskie aby podłączyć je od modułów do arduino. Podłączamy i zbieramy je wszystkie, następnie wpinamy do złączki i od niej odprowadzamy jeden kabel który musimy wpiąć do naszej płytki, mogą to być tylko i wyłącznie piny 3, 5, 6, 9, 10, 11, ponieważ odpowiadają one za PWM co pozwala na regulowanie przesyłu prądu. Połączenie powinniśmy mieć już gotowe, teraz przejdziemy do kodowania.

Zaprogramowanie zmiany prędkości robota

Wykorzystamy już wcześniej napisany kod który został omówiony w osobnym artykule, możecie zapoznać się z nim i pobrać potrzebne pliki tutaj.

Zaczynamy od zdefiniowania naszych pinów, oraz utworzenia zmiennej V która będzie odpowiadała za prędkość. Będziemy dopisywali potrzebne linijki kodu do wcześniej pobranego już programu.

#define PWM 3

int V = 85;

W funkcji setup ustawiamy jako wyjście pin 3 (jeden z wybranych które obsługują PWM).

pinMode(PWM, OUTPUT);

Teraz w funkcji loop ustawiamy prędkość naszych silników, wstawiamy ją zaraz po zmiennych z pozycją gałek.

analogWrite(PWM, V);

Po wykonaniu tych kroków powinniśmy zaobserwować zmianę prędkości obrotów kół, aby zmienić prędkość wystarczy ustawić zmienną V z 85 na wartość od 0 do 255. Może się też tak zdarzyć, że silniki będą piszczeć, oznacza to, że akumulatorki mogą być już rozładowane lub zbyt niska wartość przez co silniki nie mają siły ruszyć.

Zaprogramowanie funkcji turbo i ręcznej zmiany prędkości

Skoro wiemy jak zmieniać prędkość obrotów, zróbmy coś fajniejszego i zaprogramujmy tak nasze arduino, aby robot miał „turbo” pod przyciskiem L2, a L1 odpowiadał za zwiększanie prędkości, za to R1 za jej zmniejszanie, zabierajmy się do roboty.

Zacznijmy od warunków if które nie pozwolą na przekroczenie maksymalnego przyspieszenia, oraz minimalnego. Bierzemy również zapas na 10 prędkości, aby nie przekroczyć wartości 255 ponieważ, silnik się wyłączy, a wartość poniżej 55 mogłaby być za wolna, oczywiście można testować i dostosować ją pod siebie.

if (V > 245) {
    V = 245;
  } else if (V < 55) {
    V = 55;
  }

Zabieramy się teraz za przyciski, jeżeli któryś z nich będzie wciśnięty, to zwiększ lub zmniejsz wartość o 10.

if (pad.Button(PSB_L1)) {
    V = V + 10;
  } else if (pad.Button(PSB_R1)) {
    V = V - 10;
  }

Nie zapominamy o naszym „turbo” które nie ważne jaka wartość jest obecnie ustawiona, to włączy silnik z maksymalnymi obrotami.

if (pad.Button(PSB_L2)) {
    analogWrite(PWM, 255);
  } else {
    analogWrite(PWM, V);
  }

To będzie wszystko, teraz należy wziąć pada i przetestować czy wszystko działa prawidłowo. Oczywiście cały kod do pobrania znajduje się poniżej.

Pliki do pobrania

Sticky
Możliwość komentowania Zmiana prędkości jazdy w robocie z modułem l298n została wyłączona
Adrian Wojtala

Adrian Wojtala

Ma 21 lat. Studiuje informatykę na Uniwersytecie DSW, ukończył technikum o profilu technik-informatyk. Interesuje się programowaniem i w przyszłości ma plan zostać back-end developerem. Swoją przygodę z Arduino rozpoczął podczas praktyk od września 2021 r.

Comments are closed.

Strona korzysta z plików cookies w celu realizacji usługi i zgodnie z Polityką Plików Cookies. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.