Drukuj

Projekt ten powstał z potrzeby sterowania silnikiem prądu stałego z dużą precyzją z poziomu mikrokontrolera. Celem było stworzenie serwomotoru, zdolnego napędzać zawór kulowy w układzie centralnego ogrzewania..

Potrzebny był tzw. mostek H, w którym przełączając odpowiednio 4 tranzystory możemy sterować kierunkiem obrotów oraz hamować silnik, a dodatkowo wprowadzając modulację szerokości impulsu można regulować płynnie obroty. Ponadto potrzebne były zabezpieczenia układu takie jak, zwarciowy, przegrzaniowy czy przeciążeniowy. Sam taki układ byłby dość skomplikowany, ale okazało się, że na rynku są dostępne układy scalone, które realizują wszystkie założone funkcje i o wiele więcej. Mój wybór padł na układ produkcji Firmy National Semiconductor o symbolu LMD18200.


Rys. 1 Układ LMD18200 zamontowany na radiatorze.

Jest to scalony mostek H przeznaczony do układów kontroli napędów z silnikami prądu stałego oraz silnikami krokowymi. Układ ze względu na prostotę sterowania i zawartą w strukturze cała logikę i zabezpieczenia jest bardzo często do napędu małych robotów, w małych serwomotorach, do sterowania napędów maszyn CNC i w dużych skanerach i ploterach. Dzięki temu małemu układowi można za pomocą zwykłego silnika DC sprzężonego z układem kontroli położenia np. enkoderem, zapewnić bardzo dokładne pozycjonowanie napędzanego układu.

Dowodem może być przykład zastosowania tego układu w tomografach komputerowych przez firmę Siemens. Z demontażu takich zresztą tomografów posiadam te układy. W urządzeniu tym napęd zbudowany jest z silnika DC wraz z przekładnią, układu sterowania z wspomnianym scalakiem oraz urządzenia zapewniającego informację zwrotną o położeniu - enkodera inkrementalnego o rozdzielczości 10.000 impulsów na obrót. Stół z pacjentem musi być pozycjonowany z ogromną dokładnością i przedstawiony układ może to zapewnić.

Rys. 2 Moduł napędowy stołu tomografu komputerowego.

Układ wymaga zasilania minimum 12 V i może pracować na napięciu do wartości 55 V. Jego nominalny prąd pracy to 3 A, przy czym wytrzymuje chwilowe wartości prądu do 6 A. Przy wartościach prądu przekraczających 1,5 A należy stosować radiator, który zapewni odprowadzanie powstałego w strukturze ciepła.

Rys. 3 Schemat wewnętrznej struktury układu.

Rezystancja złącz tranzystorów w stanie nasycenia wynosi typowo 0,3 ohma. Oprócz wejść sterujących: DIR - kierunek, BRAKE - hamulec oraz PWM - prędkość posiada także dwa wyjścia: SENSE - informacja o aktualnym prądzie i THERMAL FLAG - informacja o przekroczeniu temperatury alarmowej przez strukturę. Wszystkie wejścia są kompatybilne z TTL i CMOS więc mogą być sterowane bezpośrednio z mikrokontrolera. Piny 1 i 11 to tzw. bootstrap czyli "pompa" do ładowania układu sterowania bramek tranzystorów. W układzie jako źródło tego napięcia stosuje się same wyjścia układu więc należy te piny poprzez kondensatory 10 nF połączyć z pinami 2 i 10 czyli wyjściami z mostka. W kwestii napięć, jakie należy podać na wejścia sterujące Brake, Dir i PWM to zakres jest dość szeroki i co najważniejsze zaczyna się od 2 V więc nie potrzeba żadnych konwerterów do sterowania wprost mikrokontrolera.

Rys. 4 Zakres napięć dla stanu wysokiego i niskiego dla wejść układu LMD18200.

Charakterystyka poszczególnych wejść:

DIR - Stan na tym wejściu determinuje kierunek przepływu prądu pomiędzy wyjściami układu czyli tak naprawdę kierunek obracania się silnika. Nie da się tu opisać dla jakiego stanu jaki kierunek się otrzyma bo zależy to także od sposobu podłączenia silnika i projektant układu stany i podłączenie silnika musi dobrać już wedle swoich potrzeb. Z pinem tym związane jest jednak pewne niebezpieczeństwo dla układu a mianowicie, jeśli silnik będzie obracał się z dużą szybkością i do tego będzie miał dużą bezwładność to gdy w takiej sytuacji celowo, bądź też przez przypadek zmienimy stan tego pinu, na pewno dojdzie do natychmiastowego uszkodzenia układu. Silnik będzie musiał wyhamować swoją dotychczasową prędkość więc zacznie zachowywać się jak prądnica i będzie chciał oddawać do układu prąd a dodatkowo polaryzacja będzie już zmieniona więc nastąpi zwarcie dwóch źródeł i bardzo duży wzrost prądu, którego układ w żadnym razie nie wytrzyma. By dokonać zmiany kierunku wirowania trzeba najpierw zmniejszyć prędkość silnika.

BRAKE - Jest to wejście odpowiedzialne za hamowanie silnika. Podanie stanu wysokiego powoduje zwarcie dwóch tranzystorów, ale nie po przekątnej mostka co zapewnia zasilanie silnika i odpowiednią polaryzację przez załączenie jednej lub drugiej pary, tylko górnych albo dolnych. Stan taki powoduje zwarcie zacisków silnika i jeśli silnik jest rozpędzony to zaczyna pracować jak prądnica i poprzez strukturę płynie prąd zwarcia i następuje tzw. hamowanie elektrodynamiczne. Oczywiście to również występuje niebezpieczeństwo uszkodzenia struktury układu, bo jeśli silnik będzie miał dużą bezwładność i dużą prędkość w czasie hamowania może popłynąć zbyt duży prąd. Oczywiście wejście to zazwyczaj służy po prostu do sterowania włączenia lub wyłączenia wirowania silnika niezależnie od podawania sygnału PWM.

PWM - Wejście to odpowiedzialne jest za prędkość wirowania silnika - stan wysoki na tym wejściu to pełna prędkość obrotowa, stan niski to całkowite zatrzymanie. Teraz jeśli na to wejście będziemy podawać sygnał o stałej częstotliwości ale zmiennym w zakresie od 0 do 100 % wypełnieniu to otrzymamy możliwość płynnej zmiany prędkości wirowania w zakresie od 0 do maksymalnej dla danego napięcia.

Rys. 5 Diagram wpływu zmian wypełnienia sygnału i stanu DIR na prędkość i kierunek.

 


 

Jest jeszcze inna możliwość sterowania prędkością i kierunkiem, stosując tylko wejście DIR a wejście PWM podciągając na stałe do stanu wysokiego. W tym celu sygnał PWM podaje się wprost na wejście DIR i wtedy wypełnienie 0% stanowi pełną prędkość obrotową do tyłu, a 100% stanowi pełną prędkość obrotową w drugą stronę. Jeśli ustawimy wypełnienie 50% silnik się całkowicie zatrzyma. Bardzo ciekawa możliwość zwłaszcza, gdy brakuje nam wolnych pinów mikrokontrolera. W tej sytuacji do pełnej kontroli nad pracą silnika tak naprawdę wystarczy tylko jeden, jedyny przewód i pin mikrokontrolera.

Rys. 6 Sterowanie układem za pośrednictwem tylko jednego pinu.


Rys. 7 Tabela prawdy układu.

Charakterystyka poszczególnych wyjść:
Current Sense - to wyjście służy do kontroli aktualnego prądu jaki płynie przez układ, jest to wyjście prądowe więc by zapewnić możliwość pomiaru np. przez mikrokontroler musimy przekształcić prąd na napięcie. W karcie katalogowej napisano, że na każdy amper obciążenia przypada prąd równy 377 uA na wyjściu nr 8. Dla maksymalnego prądu jaki może płynąć przez układ napięcie nie powinno przekraczać maksymalnego napięcia jakie można podać na przetwornik A/C mikrokontrolera czyli np. 5V. Zgodnie z Prawem Ohma:

Tak więc musimy zastosować rezystor o wartości 2,2 kohm wpięty pomiędzy pin 8 a masę układu. Wtedy jeśli przed układ popłynie 6A na wyjściu pojawi się 5V i powinien to być sygnał dla układu sterowania, że należy zmniejszyć wypełnienie i zmniejszyć moc bądź całkiem wyłączyć silnik bo pobór prądu zbyt mocno się zwiększył. Ponadto układ sterowania będzie posiadał rzeczywistą informację o tym co dzieje się w obwodzie mocy.

Thermal Flag - Jest to wyjście, które należy podciągnąć do stanu wysokiego, gdy temperatura układu przekroczy 145 oC wyjście to ustawione zostanie w stan niski i może to być informacja dla mikrokontrolera, że należy zmniejszyć moc bo układ się przegrzewa. Jeśli pomimo zmiany stanu na tym wyjściu mikrokontroler nie zmniejszy mocy a układ będzie nagrzewał się jeszcze bardziej to przy 170 oC nastąpi jego automatyczne wyłączenie bez udziału układu zewnętrznego by zapowiedz ewentualnym trwałym uszkodzeniom.

Nadeszła pora sprawdzenia teorii w praktyce. Na początku zbudowałem cały układ testowy "na pająka" W układzie zastosowałem dławik filtrujący napięcie, stabilizator 12 V wraz z kondensatorem filtrującym dla generatora PWM, sam generator PWM zbudowany na bazie układu SG3524 oraz dzielnik napięcia z potencjometrem dla regulacji wypełnienia. Taki generator opisałem przy okazji budowy regulatora mocy dla małej elektrowni wiatrowej - opisany w dziale Energie Odnawialne więc nie będę się powtarzał.
Jedyną zmianą jest zastosowanie układów SMD by zmniejszyć rozmiar przyszłej płytki oraz zmiana wyjścia typ: Otwarty kolektor.

Rys. 8 Generator PWM zbudowany "na pająka".


Rys. 9 Widok całego układu testowego.

Poniżej przedstawiam nagranie przedstawiające pracę układu. Piszczenie w rzeczywistości nie jest tak głośne jak na filmie. Praktycznie go nie słychać, widocznie mikrofon kamery był bardzo wrażliwy na tę częstotliwość.

Jak widać na filmie układ działa bez problemu. Oczywiście w formie pająka byłby nieprzydatny więc należało zaprojektować i wykonać płytkę, którą bez problemu będzie można zastosować w projektowanym urządzeniu. O generatorze PWM wspomniałem bo płytka, którą przygotuję będzie miała dwie możliwości regulacji prędkości obrotowej. Pierwsza możliwość to zadawanie zewnętrznego sygnału PWM a druga to wykorzystanie sygnału, który można będzie wytworzyć na samej płytce i ustawić wypełnienie impulsu na stałe. Gdy napęd będzie miał poruszać się tylko ze stałą prędkością a sterować będziemy tylko kierunkiem nie będzie potrzeby budowania generatora PWM w zewnętrznym układzie sterującym.

Rys. 10 Widok zmontowanego układu sterującego silnikiem DC z wewnętrznym generatorem.


Rys. 11 Widok zmontowanego układu sterującego silnikiem DC z wewnętrznym generatorem.

Po lewej stronie znajduje się zasilające złącze śrubowe a po prawej wyjście dla podłączenia silnika DC. Wszystkie wejścia sterujące i wyjścia znajdują się na złączu 10 pinowym z wyrzutnikiem, dodatkowo opis wszystkich pinów złącza umieściłem w opisie płytki. Generator można włączyć i wyłączyć za pomocą zwory, także wyboru pomiędzy sygnałem z wbudowanego generatora lub z zewnątrz można dokonać za pomocą kolejnej zworki. Na płytce znajdują się także trzy diody SMD informujące o: poprawnym zasilaniu - czerwona, przegrzaniu - żółta i załączonym hamulcu - zielona.

Rys. 12 Zmontowana płytka PCB, widok opisów.