Skocz do zawartości

Arduino shield - sterowanie czterema silnikami DC


Grabek14

Pomocna odpowiedź

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

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

@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.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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?

Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

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. 😉

Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.