Skocz do zawartości
Zaloguj się, aby obserwować  
zoltarex

Sterowanie silnikami krokowymi, jaki układ?

Pomocna odpowiedź

Witam, chciałbym się zapytać ludzi, którzy dłużej w tym siedzą i można powiedzieć, że są specjalistami. Mianowicie potrzebuje sterować 2 silnikami krokowymi. Chcę sterować z arduino i zastanawiam się jak zrobić to sterowanie. Czytam o driverach, ale jest ich strasznie dużo i nie wiem co wybrać. Jakiś z mostkiem H byłby odpowiedni? Potrzebuję go w wersji SMD.

Parametry silników: 3.9V, 0.6 A/Phase, bipolarny

Udostępnij ten post


Link to post
Share on other sites

Właśnie z uwagi na to, że jest duży wybór, trudno coś poradzić. Nie wiemy jakie masz priorytety (cena, łatwość zakupu itp), z czego będziesz to zasilał i jakie parametry napędu chcesz uzyskać. Sterować chcesz z Arduino, to już wiemy ale to jest ta prostsza część. Czytałeś coś o sterowaniu takimi silnikami? Masz bipolarne, więc niezbędne będzie wymuszanie przepływu prądu w obu kierunkach - jakaś odmiana mostka H na pewno. Jaki zasilacz przewidujesz? Myślę, że 12V to minimum. Do jakich obrotów chcesz to kręcić? Czy pogodzisz się ze spadkiem momentu przy wyższych obrotach i jak bardzo? Czy potrzebujesz kroków mniejszych niż natywny krok silnika (praca mikrokrokowa)? Wystarczy 1/2, 1/4 czy może 1/256? A może jeszcze o tym nie wiesz? Czy będzie to obracało np. kamerką, gdzie płynność jest ważna przede wszystkim czy napędzało coś jeżdżącego? Czy będziesz chciał płynnie ruszać i zatrzymywać? Jakieś interpolatory? Algorytmy sterowania silników krokowych mogą spokojnie zjeść całkiem dużo mocy obliczeniowej biednego Arduino. Musisz napisać coś więcej.

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Fajny układzik to: ULN2803SMD

Nie musisz wtedy podłączać dodatkowych tranzystorów, rezystorów i itp.

Zasilanie możesz dać w zakresie od +5V do +24V.

Możesz obciążyć wyjśćia prądem max. do 500mA, lecz łączny prąd wszystkich wyjść nie może przekroczyć 500mA. Czyli jak byś chciał wykorzystać 4 wyjścia to max. ok. 100mA na jedno wyjście.

Lecz nie wiem czy ci to odpowiada. Zwykle tak duży prąd wystarcza do wysterowania większości niewielkich silników krokowych.

Mam nadzieje, że w jakimś stopniu pomogłem. 😉

ULN2803SMD

Udostępnij ten post


Link to post
Share on other sites

To ma napędzać coś jeżdżącego. W zupełności wystarczy 1/2, 1/4 korku. Silnik jest niby na 3.9V, Myślałem coś takiego uzyskać z liniowego stabilizatora LM350 lub podobnego.

Czytałem o sterowaniu takimi silnikami 😉 Jak wspomniałem czytałem o mostkach H.

Co do płynnego ruszania i zatrzymywania to fajnie by było, lecz na początek chcę to wprowadzić w faze testów.

Robocika potrzebuję rozpędzić i zatrzymać. A dlaczego powinienem używać zasilacza 12V? chciałbym to zrobić na pakiecie Li-Po 7,4V, jeśli wrzucę stabilizator na 3.9 to powinno być ok?

Patryku, wiem wiem, pomogłeś mi troszkę. Ale pobór prądu moich silników przekroczy dopuszczalny na tym układzie. 600mA na cewkę mam. Potrzebuję 1 układ, który poradzi sobie z takimi 2 silniczkami -> 4 cewkami.

Udostępnij ten post


Link to post
Share on other sites

A co myślicie o EasyDriver?

http://schmalzhaus.com/EasyDriver/

Projekt OpenHardware

Do kupienia gotowiec za ~27zł: http://www.ebay.com/itm/EasyDriver-Board-Stepper-Motor-Driver-/330908551899

Ewentualnie jeśli DIY, to http://www.tme.eu/pl/details/a3979slp-t/drivery-silnikowe-i-pwm/allegro-microsystems/

Mi by się przydał taki jeden/dwa i rozważam. Szkoda wg mnie zachodu na ręcznie pisanie kodu do przełączania faz - dlatego preferuję interfejs (kierunek, liczba kroków). Do tego nie trzeba układu czasu rzeczywistego, co ma swoje plusy (można np. podpiąć do Raspberry Pi etc).

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Generalnie ja chciałbym większość elementów tego robocika umieścić na płytce wykonanej przeze mnie. Dlatego też będę unikał takich gotowych sterowników.

Zastanawiam się nad wykorzystaniem jakiegoś ARM, w STM32F405xx - coś w takim rodzaju. Nie wiem czy się połapię w tym, ale będę próbował. 🙂 To jest taka opcja jeśli arduino sobie nie poradzi 🙂

O właśnie coś takiego mam na myśli, jeśli chodzi o tego DRIVERA ALLEGRO MICROSYSTEMS A3979SLP-T.

Tylko, czy nim wysteruję 2 silniki bipolarne?

Udostępnij ten post


Link to post
Share on other sites
It is designed to operate bipolar stepper motors in full-, half-, quarter-, and sixteenth-step modes, with an output drive capacity of up to 35 V and ±2.5
Obawiam się, że tylko jeden mimo, że jest "motors". Na schemacie widać 4 wyjścia.

Udostępnij ten post


Link to post
Share on other sites

To będę zmuszony zamontować takie 2 układziki 🙂

Macie jakieś jeszcze porady odnośnie poruszania się robota za pomocą silników krokowych? Płynny start, zatrzymanie, jakieś wskazówki dla początkującego? 😉

Udostępnij ten post


Link to post
Share on other sites

Tylko tyle, że jako napęd jezdny są rzadko stosowane. Brak płynności i małe prędkości. Jest za to precyzja. Kwestia tego co budujesz.

Udostępnij ten post


Link to post
Share on other sites

Zanim wybierzesz je na serio do napędu robota poczytaj jeszcze trochę o silnikach krokowych, ich charakterystykach i przemyśl to jeszcze raz. To nie jest tak, że jeśli masz silnik na 3V to dajesz zasilanie 3V i jest OK. Takie prymitywne sterowanie sprawdza się w sytuacjach, gdy silnik porusza się bardzo wolno a najlepiej gdy stoi i coś trzyma 🙂 Gdy prędkość zaczyna przekraczać kilkaset kroków/s moment takiego silnika gwałtownie maleje a jest to spowodowane ograniczeniem szybkości narastania prądu w uzwojeniu. Jeśli chcesz kręcić kilka obrotów/s (a w napędzie robota to nie jest żaden wyczyn) to dla silnika krokowego jest to naprawdę szybko i prawie na pewno będziesz zmuszony zasilać drivery z napięcia 10-30V. Jeśli planowałeś akumulatror 2S to zajmij się teraz układami podwyższającymi napięcie, bo będzie to obowiązkowy fragment Twojego robota. Każdy nietrywialny driver silnika krokowego jest wyposażony w mechanizm impulsowej stabilizacji prądu uzwojenia i czasem są to dość skomplikowane algorytmy, więc nie ma co tego robić samemu. W takim układzie prąd uzwojenia jest dokładnie taki, jaki ustawisz w projekcie i jest niezależny choćby od napięcia zasilania. Korzystając wtedy z dużo wyższego (niż potrzebne do pracy przy DC) napięcia, driver może wymusić dużo większą szybkość narastania prądu i tym samym poważnie podkręcić prędkość obrotową, przy której moment silnika zaczyna znacząco maleć.

Układy typu 2803 nie sprawdzają sie w takich zastosowaniach zupełnie - to głupie (w sensie nie-inteligentne) tranzystory upakowane po kilka w jednej obudowe. Tym można sterować diodki LED albo cewki przekaźników ale nie taki silnik.

Już teraz zastanów się jak zrobiłbyś np. liniowe przyśpieszanie i hamowanie. Pomyśl jak musiałby zmieniać się czas między kolejnymi krokami by przyśpieszenie było stałe - to ważne w napędzie. Coś takiego za chwilę będzie musiało liczyć Twoje Arduino a w tym algorytmie (jest kilka odmian) liczenie pierwiastka kwadratowego spędza sen z powiek niejednymu AVR-kowi. Choćby tylko z tego powodu warto przemyśleć użycie szybszego procesora lub sterownika z zaszytą pewną inteligencją. Możesz zacząć od tego:

http://www.atmel.com/Images/doc8017.pdf

Jest tam trochę podstaw i sposób na liczenie przyśpieszeń liniowych bez pierwiastków 🙂

A3979 może sterować jednym silnikiem bipolarnym i ma wbudowaną stabilizację prądu uzwojeń - z resztą bez tego nie byłaby możliwa praca mikrokrokowa. Jego maksymalne zasilanie to 35V i w jakieś 24V bym celował robiąc coś na silnikach które opisałeś. Moim zdaniem warto poszukać (choćby z ciekawości) co ludzie wymyślili w zakresie inteligentnego sterowania takich silników. Proponuję zacząć od strony firmy Trinamic.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Czasem będę zatrzymywał się w miejscu i dokładnie obracał się o jakiś kąt, np. 45stopni. Dlatego stwierdziłem, że lepsze będą silniki krokowe do tego celu 🙂

To z arduino będzie chyba przesiadka na STM z ARM Cortex-M4. Bo nic lepszego nie wymyślę, a to będzie dla mnie też coś nowego 🙂

Jakie wasze osobiste odczucia, jestem w stanie to ogarnąć w rok czasu? 😃

Udostępnij ten post


Link to post
Share on other sites

W rok? Daję Ci na to dwa miesiące, bo początki są zwykle trudne 🙂 Sam zrobiłem dokładnie taki napęd na ATmega128 i jeździ aż miło.

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Teraz zastanawiam się czy pakiet Li-po 7,4V 1300mAh nada się do tego... Czy nie brać jakiegoś 3S lub 4S?

Udostępnij ten post


Link to post
Share on other sites
Czasem będę zatrzymywał się w miejscu i dokładnie obracał się o jakiś kąt, np. 45stopni.
Micromouse?

Pytane czy dany pakiet będzie dobry nie ma większego sensu. Tu trzeba przemyśleć całość, a nie dumać nad pojedynczymi elementami. Poczytaj i upewnij się, że krokowce będą Ci rzeczywiście pasowały. Potem zgodnie z tym, co napisał marek1707, będziesz miał określone wymagane napięcie.

Udostępnij ten post


Link to post
Share on other sites

Micromouse to za duży projekt, jak na mnie. Myślałem potem przesiąść się i robić micromouse. Ale chyba do sterowania micromousem nie potrzebne mi będą silniki krokowe?

Udostępnij ten post


Link to post
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!

Gość
Napisz odpowiedź...

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

Zaloguj się, aby obserwować  

×
×
  • Utwórz nowe...