Skocz do zawartości

Arduino shield - sterowanie czterema silnikami DC


Pomocna odpowiedź

Napisano

Witam!

Mam problem z którym nie mogę sobie poradzić od paru tygodni. Otóż kupiłem na botlandzie genuino 101 oraz shield dfrobot quad motor driver. Po podłączeniu i wgraniu kodu wyjście M2 sterownika silników nie działa (nie ma sygnału na nim). Sprawdzałem to podłączając silnik do tego wyjścia oraz dokonując pomiaru multimetrem - brak napięcia. Podejrzewałem, że powodem może być zasilanie shielda, dlatego zamiast 4 baterii AA podłączyłem jedną 9V, niestety bez efektu. Próbowałem też zmieniać nr portów w kodzie na te przeznaczone do PWM, ale to nic nie zmieniło.

Może ktoś z Was spotkał się z podobnym problemem?

genuino 101

shield

silnik

kod ze strony dfrobot

Ale czy to oznacza, że trzy pozostałe wyjścia działają a tylko to jedno nie?

Baterie AA są o niebo mocniejsze od 9V. Ta ostatnia kompletnie nie nadaje się do jakichkolwiek eksperymentów z silnikami, piszemy o tym w kółko w odpowiedziach, w artykułach itd. a wciąż znajdują się nowi odkrywcy tej tezy.

Źródło zasilania musi mieć nie tylko odpowiednie napięcie, ale i dysponować wystarczającą mocą lub wydajnością prądową. Z 9V maluszka to możesz diodkę LED zaświecić.

A z kolei zestaw (koszyczek?) paluszków AA musi mieć wystarczające napięcie. Do tych silników 5-6V otrzymywane z 4 sztuk jest OK, także mostki powinny z tym napięciem działać.

W tym shieldzie masz sztywno połączone wyjścia Arduino z mostkami i wyjściami silnikowymi. Dlatego wybranie pewnego kompletu sygnałów sterujących od razu definiuje wyjście do którego musisz podłączyć silnik.

Opisz dokładnie (schemat?) jak podłączyłeś wszystko w czasie prób. Jak zasilałeś Arduino, jak zasilałeś shield itd.

Witam.

Akurat Arduino 101 nie znam, ale z opisu wynika, że nie ma ono PWM-a na wyjściu D11 (w odróżnieniu od np UNO). A właśnie na tym pinie jest regulacja szybkości silnika 2. Może być tak, ze podając analogową wartość na pin 11 uzyskujesz tam ciągle stan niski. Wymuś na nim cyfrowo jedynkę i zobaczysz, czy silnik ruszy.

Pozdrawiam.

@marek1707

Tak, trzy pozostałe wyjścia działają a to jedno nie. Podłączając nawet tylko jeden z silników do wyjścia M2 pozostaje on w bezruchu (silnik jest na pewno sprawny).

Schemat podłączenia sterownika silników jest podobny jak na obrazku z tą różnią, że zasilany był baterią 9V lub 4xAA. Może zamiast batrii spróbować zasilić układ z ogniw lipo?

Arduino było zasilane przez USB z laptopa.

@Jamik

Próbowałem wcześniej zmienić pin z 11 na 9 (też zauważyłem na schemacie że na 11 nie ma PWM) jednak to nic nie zmieniło. Spróbuję zgodnie z Twoją sugestią podać stan wysoki na pin sterujący mocą silnika.

A jak podłączyłeś shield do płytki, żeby uzyskać połączenie z pinem 9 a nie 11? Chodzi mi o fizyczne (elektryczne) połączenie pinu 9 arduino z pinem 11 w sterowniku?

Shield wpiąłem normalnie do arduino.

Jedyne co zrobiłem to zmieniłem w kodzie nr pinu.

Zamiast:

const int E2 = 11;///<Motor2 Speed

Napisałem to:

const int E2 = 9;///<Motor2 Speed

Ale przecież fizycznie ten pin który steruje szybkością silnika 2 jest nadal wpięty do pinu 11 w Arduino. Na pinie 9 mogłeś mieć dowolną wartość sygnału, ale jak ona fizycznie miała z pinu 9 Ardiuno przedostać się do pinu 11 w sterowniku?

  • Lubię! 1

Faktycznie to była kwestia pinów.

Wystarczyło zewrzeć piny 11 i 9 na shieldzie i wysterować moc silnika pinem 9 (co już wcześniej robiłem).

Dziękuję za pomoc. 😉

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...