Skocz do zawartości

Problem z motorshieldem R3


Rottek

Pomocna odpowiedź

Witam

Niedawno nabyłem Arduino MotorShielda R3 botland . Próbuję obsłużyć dwa silniki DC. Podłączyłem je według tutoriala: instructables.

Wykorzystałem także przykładowy kod umieszczony w tym poradniku. Zmieniłem go na:

void setup() {

 //Setup Channel A
 pinMode(12, OUTPUT); //Initiates Motor Channel A pin
 pinMode(9, OUTPUT); //Initiates Brake Channel A pin

 //Setup Channel B
 pinMode(13, OUTPUT); //Initiates Motor Channel A pin
 pinMode(8, OUTPUT);  //Initiates Brake Channel A pin

}

void loop(){

 digitalWrite(12, HIGH); //do przodu A
 digitalWrite(9, LOW);   
 analogWrite(3, 255);   //pełna prędkość

 digitalWrite(13, HIGH);  //do przodu B
 digitalWrite(8, LOW);   
 analogWrite(11, 255);    //pełna prędkość

 delay(5000);

 digitalWrite(9, HIGH);  
 digitalWrite(8, HIGH);  

 delay(1000);

 digitalWrite(12, LOW);  //do tyłu A
 digitalWrite(9, LOW);   
 analogWrite(3, 255);    

 digitalWrite(13, LOW); //do tyłu B
 digitalWrite(8, LOW);   
 analogWrite(11, 255);   

 delay(5000);

 digitalWrite(9, HIGH);  
 digitalWrite(8, HIGH);  

 delay(1000);

}

Żądany efekt: kręcenie się silniczków "do przodu" przez pięć sekund, następnie sekunda przerwy i kręcenie się silniczków przez 5 sekund do tyłu.

Silniczki kręcą się strasznie wolno. Ponadto po pięciu sekundach kręcenia się dwóch silniczków, następuje niezrozumiała dla mnie sytuacja. Pierw jeden silniczek się kręci, później drugi. Wydaje mi się, że w kodzie nigdzie tego nie zaimplementowałem. Zworka VinConnect na MotorShieldzie rozłączona. Próbowałem podłączyć zasilanie 6 bateri AA.

Obsługę silków chciałbym wykorzystać do stworzenia line-followera. Posiadam do tego zestaw: podwozie_botland. Proszę o poradę, co robię źle.

Link do komentarza
Share on other sites

Ja widzę dwa problemy: po pierwsze nie ma w kodzie określenia kierunków linii PWM - czyli u Ciebie 3 i 11. Przecież to też mają być wyjścia cyfrowe. Być może o kierunek tych linii dba funkcja analogWrite() ale to nie jest dobry zwyczaj, by na tym polegać (bo być może tego nie robi). Domyślnie, na starcie programu wszystkie linie procesora są wejściami.

Ażebyś sam domyślił się co jeszcze robisz źle, zrób taki eksperyment - może być myślowy. Weź do jednej ręki baterię AA. Nie jest może jakoś strasznie wielka, ale zawsze to kawałek metalu - czuć w dłoni, jak nabój do karabinu. AA mają 1.5V i mogą z siebie wypuścić bezpiecznie z 1A prądu przy dobrych układach. Zwykle pobieramy z nich mniej i wtedy żyją o wiele dłużej. A teraz (wciąż w myślach) spójrz na 6F22 czyli typową baterię 9V. Przecież w środku nie ma żadnej magii. Żeby miała te swoje 9V musi być w środku aż 6 ogniw 1.5V. To teraz podziel przestrzeń wewnętrzną tej baterii na 6 klocków. Jedna taka cela to jedno ogniwko 1.5V. Jest ze dwa razy mniejsze niż kostka do gry i z 10 razy mniejsze (objętościowo) niż bateria AA a Ty chcesz z niego zasilać silnik(i)? Pojedyncze ogniwo "nie widzi" napięcia końcowego całej baterii, możesz ich ułożyć w stos i 1000 sztuk dostając 1500V, ale to wciąż będą szeregowo połączone malutkie kostki z których każda będzie pracowała na cały prąd wyjściowy baterii (jak to w połączeniu szeregowym). W świecie źródeł chemicznych jakimi są baterie, napięcie wynika z materiałów użytych do produkcji, ale prąd jest robiony głównie z objętości. W Instructables pokazali przykład - bezmyślny i niepraktyczny. Może na chwilę zabawy ta bateria starczy, tylko że nikt tak robić nie powinien. Szkoda, że tego nie napisali. Już sam prąd pobierany przez mostek "na pusto", bez włączonych silników wyczerpie tę baterię po 2 godzinach. Znacznie lepszym rozwiązaniem jest zasilanie Arduino z USB a shielda z 6xAA.

No i jeszcze to, że silnik powinien być dopasowany do napięcia zasilania mostka, na którym spada ze 2V. Tak więc podłączając 9V zasilania z baterii, silnik powinien być na 5-6V. Silniczek przeznaczony do np. 12V będzie się ledwo kręcił.

Przede wszystkim musisz rozumieć co się w Twoim układzie dzieje. Jeśli widzisz, że coś nie jest zgodne z Twoimi oczekiwaniami, bierzesz do ręki miernik i sprawdzasz. Tutaj zacznij od napięć zasilających. Puszczasz np. na stałe obroty w jednym kierunku i mierzysz zasilanie. Od razu będzie wiadomo, czy 9V napisane na baterii pokrywa się z rzeczywistością.

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

Witam. Dziękuję za wyczerpującą odpowiedź.

Zabieram się do poprawy algorytmu.

Posiadam zasilacz z regulacją napięcia 3V-12V. Mógłbym go wykorzystać do zasilania motorshielda? Chciałbym potestować pierw działanie algorytmu, mobilność (na baterie) mogę zostawić na później.

Link do komentarza
Share on other sites

Każde źródło zasilania ma co najmniej 3 parametry z których musisz znać przynajmniej 2 by móc cokolwiek ocenić: napięcie, prąd i moc. Jeżeli piszesz o zasilaczu 12V to ja nie wiem, czy to fajna maszynka o wydajności 20A z której możesz popędzić silnik do roweru elektrycznego czy wtyczkowa zabawka o wydajności 100mA. Zakładam, że nie jest to najgorszy przypadek i Twój zasilacz dysponuje wydajnością wystarczającą do pracy z obciążeniem dwoma silnikami. Oczywiście używanie zasilacza jest zawsze wygodniejsze, bo odpada problem z wyczerpywaniem się baterii i ciągłą niepewnością czy jeszcze pożyją kilka minut.

Algorytm wydaje się tak prosty, że nie bardzo jest co testować. Na początek po prostu podłącz silnik i pomierz wszystko co możesz. Napięcie zasilania, napięcie na silniku, prąd silnika (lub zasilacza) i to wszystko zarówno w stanie stop (0% PWM), biegu jałowego (100% PWM) jak i blokady silnika (na krótko) a także temperaturę mostka (palcem?). Jak zaczyna parzyć, silnik jest dla niego "za ciężki". Wtedy będziesz wiedział jak Twój driver się zachowuje, co się dzieje z zasilaniami i na ile możesz sobie pozwolić. Dopiero wtedy możesz (albo nie gdy testy pokażą, że coś jest nie tak) zacząć bawić się "w algorytmy".

Link do komentarza
Share on other sites

Jeżeli nie jesteś pewien swojego zasilacza, to możesz wykonać prosty test. Niestety do niego, jak i do całej zabawy w elektronikę będzie potrzebny miernik. Jeżeli masz regulowane napięcie, ustaw je tak, by pasowało do silników jakimi dysponujesz. Może być nawet trochę większe, np. silniki na 6V to dajesz 7.5V, silniki na 9V to dajesz 10V itp, ale raczej nie mniej. Podłącz woltomierz wprost do "gołego" zasilacza i zmierz napięcie. Powinno być takie jak ustawiłeś. Teraz podłącz silnik wciąż obserwując napięcie. Jeżeli podczas pracy silnika napięcie nie spadnie bardziej niż o kilka %, jest OK. Wtedy podłącz drugi silnik i znów zmierz napięcie. Znów nie powinno bardzo spaść. Teraz możesz zacząć obciążać silniki np. przez hamowanie wału. Jeżeli jesteś w stanie doprowadzić do zatrzymania jednego z nich (ale tylko na 1-2 sekundy) a napięcie zasilacza wciąż nie zmieniło się o więcej jak 5-10% wartości początkowej, to sprzęt da radę. Jeżeli napięcie spada bardziej i na dodatek widać, że nawet ten niehamowany silnik zwalnia podczas obciążania jego kolegi, zasilacz jest za słaby do napędzania tego zestawu. Z mostkiem H i płytką komputerka będzie już tylko gorzej. Musisz postarać się wtedy o mocniejszy sprzęt, bo ten wygląda na przeciążony i dłuższe próby mogą spowodować jego przegrzanie i spalenie.

Czasem proste zasilacze "wtyczkowe" z regulowanym napięciem mają w środku stabilizator liniowy bo tak jest taniej. Wtedy rzeczywiście prąd maksymalny to np. 1A, ale grzanie się wewnętrznego stabilizatora zależy od napięcia wyjściowego. Przy wyższym zasilacz może grzać się mniej i pracować bardziej "na luzie". Cóż, musisz to wszystko dopasować do siebie.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

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