Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterownik silnika krokowego L298 + ATmega32

Walentynka 30 Mar 2011 19:52 10798 12
  • Sterownik silnika krokowego L298 + ATmega32

    Założeniem projektu było stworzenie uniwersalnego sterownika współpracującego z mikro-kontrolerem w celu sterowania dwóch silników DC o prądzie nie przekraczającym 2A na silnik. Bądź jednego bipolarnego silnika krokowego o prądzie nie przekraczający 2A faza.

    Sterownik silnika krokowego L298 + ATmega32

    Silnik krokowy sterowany jest pełnokorokowo z możliwością sterowania zarówno prądu płynącego przez uzwojenie jak i predkośći obrotowej, prąd jest sterowny poprzez zmianę wypełnienia sygnału enable. Jako iż w układzie nie ma pomiaru prądu, trzeba go za każdym razem przy zmianach prędkości obrotowej dobierać eksperymentalnie. Co bywa trochę uciążliwe ale ostatecznie można napisać funkcje która będzie ustalała wypełnienie w zależności od prędkości obrotowej.

    ---------------------------------------------------------------------------------------------------
    Parametry układu :
    Zasilanie 7-35V
    Prąd jednego mostka 2A
    Resztę parametrów można odczytać z datasheet układu L298


    L298 datasheet
    ---------------------------------------------------------------------------------------------------
    Program obsługi został napisany na mikro-kontroler ATmega32 ale po pewnych zmianach powinien działać na dowolnym mikro-kontrolerze. Uruchomienie programu należy rozpocząć poprzez wywołanie funkcji wypelnienie() a w nawiasach podanie wypełnienia np. wypelnienie(35); jeśli uruchamiamy silnik po raz pierwszy należy wpiąć miernik w jedna fazę i zmieniając wypełnienie od 1-99 ustalić kiedy osiągniemy około 2A. Wywołując funkcje prawo() bądz lewo() w nawiasach podając odstęp czasowy pomiędzy kolejnymi krokami w milisekundach np. prawo(2); co oznacza że kolejny krok w prawo będzie wykonywany co 2ms a pełny obrót zostanie wykonany dla mojego silnika po 200 krokach co daje 400ms na jeden pełny obrót. Do generacji sygnału PWM wykorzystano timer0 i fast PWM mode zgodnie z datasheet ATmega32 wyjście PWM znajduje się na 4 nóżce (PB3). Wyjścia sterujące można dowolnie zdefiniować w kodzie programu. Kod programu :




    Kod: c
    Zaloguj się, aby zobaczyć kod

    Sterownik silnika krokowego L298 + ATmega32 Sterownik silnika krokowego L298 + ATmega32

    Schematy płytki zostały wykonane w eagle a sama płytka metodą termo-transferu. Wraz ze zwiększaniem prędkości obrotowej można także zwiększać wypełnienie aczkolwiek jeśli zatrzymamy silnik bez wykorzystania funkcji stop; możemy uszkodzić układ gdyż podczas postoju silnik pobiera prąd znacząco większy niż podczas obracania.

    Sterownik silnika krokowego L298 + ATmega32


    Link

    Filmik w jakimś stopniu pokazuje dokładność układu, jednak wszystko jest trochę krzywe wiec jest tam tylko jeden punkt odniesienia według którego może być oceniana jakość sterownika. Układ był budowany z myślą o sterowaniu silników DC o małym prądzie dlatego brak tutaj jakiegoś regulatora prądu. Z tego powodu polecany jest do sterownika silników przy niewielkim napięciu zasilania gdy prąd pobierany przez silnik na pewno nie przekroczy 2A. Mogę także wrzucić kod do sterowania silników DC ale wpierw musiał bym go trochę uporządkować dlatego zrobię to tylko na czyjąś wyraźna prośbę.

    Pozdrawiam Wojciech


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • #2 30 Mar 2011 20:01
    maxiomax
    Poziom 12  

    Sam układ jak i pomysł nie jest zły ale lutowanie płytki - masarka przez duże M. Te resztki topnika na płytce nie wyglądają zachęcająco a montaż stabilizatora pseudo smd to już kompletna porażka. Wg mnie pcb do przeprojektowania i będzie dobrze

  • #3 30 Mar 2011 22:11
    c4r0
    Poziom 36  

    Widzialem gorsze luty. Tu przynajmniej kolega uzywa kalafonii. Projekt plytki tez pozostawia wiele do zyczenia. Lutowanie stabilizatora nie ma sensu, zwlaszcza jesli ten placek miedzi (radiator?) jest tak maly.

  • #4 30 Mar 2011 22:44
    ezbig
    Poziom 19  

    Widzę tu tylko zdjęcie samego mostka H do silnika. Ten Atmega32 jest częścią jakiegoś większego projektu? Pytam, bo samo sterowanie pełnokrokowe (i półkrokowe) można zrobić na najmniejszym dostępnym procku. Na atmega32 można zrobić sterowanie z mikrokrokiem i wiele innych funkcji, bo tak to zrobiłeś namiastkę L297 na wypasionym procesorze :).

  • #5 30 Mar 2011 22:46
    _h3xen
    Poziom 9  

    Ogólnie:
    - "pijane ścieżki" w cały świat nie lubię takiego sposobu projektowania ,
    - przydałoby się pocynowac te ścieżki, i zdrapać te nieszczęsną kalafonie,
    - radiator gigant, aż tak się grzeje ten L298?
    - projekt ogółem "cudów nie ma" z cyklu "again" ale DIY to DIY pochwalić się czymś tam można..
    Pozdrawiam

  • #6 30 Mar 2011 22:52
    ^Rachel
    Poziom 21  

    Popracuj jeszcze nad programowaniem, przede wszystkim przydałaby się tutaj obsługa timerów w przerwaniach i pomyśleć nad tym tak, aby tych "_delay_ms" nie było, wstrzymują one tylko pracę uC, więc w większym projekcie to raczej nie może mieć miejsca.

    I tak jak ktoś już pisał, że można to było zrobić chociażby na Attiny2313.

    Pozdrawiam.

  • #7 31 Mar 2011 00:01
    tmf
    Moderator Mikrokontrolery Projektowanie

    Jak zwykle doceniam każdy zrealizowany projekt. Natomiast mam poważne wątpliwości co do jego sensu - przynajmniej w takim wykonaniu.
    Mamy XXI wiek, a nie wiedzieć czemu ludzie ciągle wykorzystują technologie rodem z połowy wieku XX. Mam tu na myśli stosowanie prymitywnych mostków opartych na tranzystory bipolarne. Jak widać na zdjęciach, dla malutkich prądów rzędu 2A wymaga to potężnych radiatorów, podczas, gdy scalone sterowniki oparte na MOSFETach nie wymagałyby żadnego radiatora! Ba, nie wymagałyby też zewnętrznych diod, oferując przy okazji pracę mikrokrokową i pomiar prądu bez konieczności zaprzęgania w to procesora. Może więc czas stare, poczciwe L298 umieścić tam gdzie jego miejsce - w muzeum techniki?

  • #8 31 Mar 2011 10:21
    Walentynka
    Poziom 14  

    odp.1 Padło na ATmega32 gdyż akurat taki mam na płytce.
    odp.2 Z przerwaniami timera do obsługi prędkości obrotowej to świetny pomysł na pewno go wykorzystam.
    odp.3 Nie jestem z wykształcenia inż. Elektronikiem wiec projekt jak i luty wyglądają tak jak powinny wyglądać u amatora nie planuje wprowadzać układu do seryjnej produkcji.
    odp.3 Padło na L298 gdyż jest wiele stron opisujących zastosowanie tego układu i sporo osób używa go w swoich "line follower". Jest to prototyp że tak się wyrażę który miał być użyty do sterowania silników właśnie w takim robocie. Dlatego sporo rzeczy jest tam na wyrost układ się nie grzeje aż tak bardzo, radiator mógł by być dużo mniejszy. Proszę o podanie nowoczesnych alternatyw dla tego układu sam też dziś poszperam i dodam jak coś znajdę.

    Pozdrawiam Wojciech

  • #9 31 Mar 2011 11:42
    offca358
    Poziom 17  

    Większość już została powiedziana. Dodam tylko, że gdyby kolega chciał pozbywać się kalafonii, to polecam setkę spirytusu rektyfikowanego 95, pędzelek do akwareli, tylko taki większy i z twardym włosiem, maczasz pędzel w spirytusie i "pędzlujesz" płytkę. Kalafonia schodzi aż miło, a setka spirytusu starczy na wiele projektów.

  • #10 31 Mar 2011 11:57
    tmf
    Moderator Mikrokontrolery Projektowanie

    Lepszy jest do tego alkohol izopropylowy - tańszy i nie zawiera wody, dzięki czemu nie robią się plamy.
    Co do alternatyw do l298 - przejrzyj ofertę firmy Allegro-Micro:
    http://www.allegromicro.com/en/Products/Part_Numbers/3972/
    Zresztą oni mają pełno różnych scalaków na każdą okazję.

  • #11 31 Mar 2011 12:05
    lombard1
    Poziom 12  

    tmf napisał:

    Mamy XXI wiek, a nie wiedzieć czemu ludzie ciągle wykorzystują technologie rodem z połowy wieku XX. Mam tu na myśli stosowanie prymitywnych mostków opartych na tranzystory bipolarne.


    Nie zgodzę się z Tobą że to technologia rodem z połowy XX wieku. Ta połowa przypada na rok 1950 a w tym roku nie było takich półprzewodników jak te tranzystory i takich rodzajów diod jak w tym projekcie. Jeśli już to bliżej końca XX wieku ;)
    Pisze to z całą świadomością, pomimo ze nie było mnie wtedy jeszcze na świecie.

  • #12 08 Kwi 2011 13:18
    binczyk
    Poziom 9  

    Jeżeli chodzi o połączenia z tym sterownikiem czy mógłbyś zamieścić schemat połączeń miedzy l298 <-> mega32 jaki zastosowałeś dla wersji programu jak powyżej?

    Spis poszczególnych elementów takie jak wartości kondensatorów też byłby pomocny.

  • #13 11 Kwi 2011 13:19
    Walentynka
    Poziom 14  

    Sterownik silnika krokowego L298 + ATmega32

    c3 4700 uF
    c2 100nF
    c1 330nF