• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Arduino, sterowanie silniczkami.

Object Storage Arubacloud
0 głosów
731 wizyt
pytanie zadane 12 maja 2015 w Mikrokontrolery przez aspoka Mądrala (5,290 p.)
Witam, wiem, że nie jest to najleprze forum do arduino, ale też wiem, że jest tu kilka osób które coś w tym dłubią tak więc postanowiłem napisać.

Chciałbym zrobić robota sterowanego przez arduino, ale nie do końca wiem w jaki sposób sterować silniczkami.

Kupiłem taki zestaw silnicków z przekładną:http://botland.com.pl/silniki-dc-tamiya/62-przekladnia-podwojna-tamiya-70168-zestaw.html      i chciałbym móc sterować ich prędkością (wydaje mi się, że można to zrobić za pomocą zmiany napięcia, ale nie mam pewności) za pomocą arduino (kierunek nie jest ważny).

Czy ktoś wie jak to zrobić?

2 odpowiedzi

+1 głos
odpowiedź 12 maja 2015 przez Czeslow Obywatel (1,220 p.)
Witam.

Silnikami steruje się zazwyczaj za pomocą mostka H, nigdy bezpośrednio z uC. Poczytaj sobie na ich temat. Są gotowe scalaki, bądź można je zbudować samemu. Pamiętam, że zbudowałem podwójny mostek H (na 2 silniczki) z bodajże 12 tranzystorów:P kilku diod i rezystorów .

Jeśli chodzi o sterowanie prędkości to robi się to najprawdopodobniej za pomocą PWM wbudowanym w uC. Sam nie potrzebowałem zmieny prędkości przy moich testach, więc tego nie robiłem. Jednak Chodzi tutaj o wypadkową napięcia (sterowanie wypełnieniem).

Mam nadzieję, że Cię troszkę nakierowałem. Powodzenia :)
+1 głos
odpowiedź 12 maja 2015 przez adrian17 Ekspert (344,860 p.)

Przede wszystkim - nigdy nie zasilaj silników bezpośrednio z wyjść Arudino. Jak widać w opisie tego silnika, może on pobierać od 150 do 2100mA, podczas gdy wyjścia kontrolera zazwyczaj wytrzymują do 40mA.

Wyjścia kontrolera powinny pełnić wyłącznie rolę sterowania prędkością; samo zasilanie silników można zrealizować albo przez podłączenie tranzystorów (poczytaj o mostkach H), albo przez stworzony do tego sterownik, na przykład wspomniany na tej stronie: http://botland.com.pl/sterowniki-silnikow-dc/851-drv8835-dwukanalowy-sterownik-silnikow-modul.html. Na pewno są też jakieś tańsze modele.

Co do samego sterowania prędkością - nie, nie zmienia się tu napięcia. Napięcie jest stałe, za to używa się PWMa - wyjść które włączają i wyłączają się z dużą częstotliwością; na przykład gdy wyjście jest włączone tylko przez 60% czasu, wygląda to jakby pin miał tylko 60% mocy.

Korzystanie z PWMa w Arduino jest bardzo proste: http://www.arduino.cc/en/Reference/analogWrite

komentarz 13 maja 2015 przez aspoka Mądrala (5,290 p.)
Acha, rozumiem, w sumie jest to całkiem proste. Jeżeli nie chce sterować kierunkiem działania silników to rozómiem, że nie potrzebuje mostku H tylko wystarczy mi podłączyć to silniczek przez tranzystor? A gdybym jednak chciał to lepiej zrobić mostek czy kupić sterownik?
komentarz 13 maja 2015 przez Czeslow Obywatel (1,220 p.)
Budowa mostka jest bardzo prosta więc samemu bez problemu można go zbudować. Tylko po co jeśli są gotowe rozwiązania. Ja jak wpisałem w poście powyżej zbudowałem taki mostek, jednak było to spowodowane tym, iż nie dostałem na miejscu gotowego scalaka, a oczekiwanie na zamówienie nie wchodziło w grę.

Oczywiście jeśli chcesz możesz taki zbudować w ramach nauki. :)

Tylko przy budowie nie zapomnij o diodach zabezpieczających. Silniki dają duże zakłócenia więc brak zabezpieczeń może skutkować uszkodzeniem uC.
komentarz 15 maja 2015 przez aspoka Mądrala (5,290 p.)

Dobra, zakupiłem ten sterownik, podłączyłem wszystko i napisałem program, ale coś nie działa.

Podłączyłem:

-BIN2 do portu 3 w arduino

-BIN1 do 5

-AIN2 do 6

-AIN1 do 9

-BOUT i AOUT do silniczków

masę do masy i zasilanie do zasilania (logiczne do arduino)

Napisałem taki prosty program:

\

void setup() 
{

  pinMode(3, OUTPUT);
  analogWrite(3, 127 );
  
}

void loop() 
{
  
  

}

Ale coś mi nie działa. Jeszcze za raz sprawdzę czy wszystkie luty są dobre (bo pierwszy raz lutowałem coś takiego) ale nie wyglądają źle. Wie ktoś co zrobiłem nie tak?

komentarz 16 maja 2015 przez Czeslow Obywatel (1,220 p.)

Poprzez "ten sterownik" rozumiem, że kupiłeś drv8835. 

Na stronie, którą podał kolega adrian17 jest wszystko wytłumaczone jak należy podłączyć taki sterownik oraz w jakich trybach może on pracować. Aby Ci pomóc musiałbyś narysować schemat podłączenia, ponieważ z tego co napisałeś ciężko jest mi sobie to wyobrazić. Jak na razie mogę stwierdzić, że nie podłączyłeś sygnału do pinu MODE. Tak samo nie wiem czy podałeś zasilanie na pin VIN czyli zasilanie silników.

Zapoznaj się z trybami pracy takiego sterownika: http://botland.com.pl/sterowniki-silnikow-dc/851-drv8835-dwukanalowy-sterownik-silnikow-modul.html#Trybypracy.

Dla PHASE/ENABLE MODE=1 podanie logicznych "1" na wejścia AIN1 i AIN2 powinno skutkować załączeniem się silnika (AOUT) na najwyższych obrotach. Tak samo w przypadku kanału B. 

Jeśli chodzi o sam program to nie miałem doczynienia z arduino (programuję AVR atmega8/32 etc.), więc nie wiem jak się tam deklaruje WE/WY mikrokontrolera. Jak chcesz mogę Ci podać przykładowy program w C do AVR, ale nie wiem czy w czymś teraz pomoże. Zawsze możesz spróbować podłączyć sterownik "na sucho", czyli bez mikrokontrolera i zobaczyć jak działa.

komentarz 16 maja 2015 przez adrian17 Ekspert (344,860 p.)
Na oko program jest dobry. Danie sygnału PWM na BIN2 powinno ruszyć silnikiem niezależnie od trybu pracy. Strzelam że coś jest nie tak z podłączeniem, musiałbyś pokazać szczegółowiej jak to podłączyłeś lub samemu pomierzyć miernikiem napięcia.

Podobne pytania

+4 głosów
11 odpowiedzi 786 wizyt
pytanie zadane 18 kwietnia 2015 w Mikrokontrolery przez aspoka Mądrala (5,290 p.)
0 głosów
1 odpowiedź 398 wizyt
0 głosów
0 odpowiedzi 215 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...