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.
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 / C++
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.
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