Schemat ideowy sterownika silników z interfejsem DMX pokazano na rysunku 1. Jest on zasilany z tego samego napięcia doprowadzonego do złącza J6, co silniki. Napięcie zasilające musi zawierać się w granicach 7...40 V. W zasilaczu zastosowano układ scalony przetwornicy MC34063 (U1) w typowym układzie aplikacyjnym.
Dzięki jego użyciu nie jest wymagane użycie radiatora, nawet wtedy, gdy urządzenie jest zasilanie napięciem maksymalnym (+40 V). Dioda D1 zabezpiecza stabilizator przed skutkami zamiany polaryzacji zapięcia zasilającego.
Dane DMX są odbierane za pomocą typowego drivera interfejsu R485 - układu scalonego MAX485 (U6). Można zastosować tańsze odpowiedniki np. AD485, ST485. Autor artykułu ma natomiast złe doświadczenia z SN75176, których prędkość transmisji była niewystarczająca.
Zwora JP3 umożliwia załączenie rezystora-terminatora linii. Mikrokontroler ATmega128 (U4) dekoduje dane DMX i odpowiednio steruje stopnie mocy za pomocą przebiegu PWM. Wykorzystano trzy sprzętowe generatory PWM, których to ATmega128 zawiera aż sześć.
Dzięki temu jest łatwo rozbudować sterownik o kolejne trzy kanały. Mikrokontroler kontroluje pobór prądu przez silniki. W razie przekroczenia dopuszczalnego zakresu wybrany kanał zostaje zablokowany, nie dopuszczając do uszkodzenia stopnia mocy.
Bufory sterujące silnikami zbudowano na układach L6202 w obudowie DIP18. Bez stosowania radiatorów mogą one dostarczać do 1,5 A ciągłego prądu obciążenia i do 5 A w impulsie. Wszystko to za sprawą zastosowania tranzystorów MOS o małej rezystancji kanału.
Układ ma wbudowane diody tłumiące przepięcia powstające w momencie wyłączania indukcyjności i - w przeciwieństwie do L298 - nie trzeba dodawać ich na zewnątrz. Ponadto, L6202 ma wbudowane zabezpieczenie przed przegrzaniem. Ze względu na to, że w mostku układu drivera wszystkie tranzystory mają kanał N, stało się konieczne wytworzenie napięcia wyższego od napięcia zasilania, aby wysterować tranzystory w górnej gałęzi mostka.
Problem rozwiązuje obwód bootstrap (znany z dawnych wzmacniaczy audio, np. UL1480), który wymaga dołączenia kondensatorów do wyprowadzeń 11 i 17 układu. Obwód RC na wyjściu bufora stanowi dodatkowe zabezpieczenie (sztuczne obciążenie), jak ma to miejsce w układach wzmacniaczy audio.
Montaż i uruchomienie
Schemat montażowy sterownika zamieszczono na rysunku 2. Montaż jest typowy i nie wymaga szczegółowego omawiania. Na początek nie zalecam montowania mikrokontrolera i układu MAX485, pod który warto zastosować podstawkę precyzyjną.
Układy L6202 należy wlutować bezpośrednio w płytkę, bez podstawek. Spowodowane jest to tym, że nóżki 4...6 i 13...15 odprowadzają ciepło z układu. Dlatego ścieżki doprowadzone do tych nóżek są takie grube, a nie z powodu płynących tam prądów.
W pierwszej kolejności uruchamiamy zasilacz. Jeśli napięcie jest poprawne (+5 V), można wlutować mikrokontroler i umieścić MAX485 w podstawce. Mikrokontroler dostarczany w zestawie jest już zaprogramowany. Jeśli chcemy zrobić to samodzielnie, należy ustawić fuses zgodnie z rysunkiem 3. Szesnastkowo:
Extended = 0xFE,
High = 0x99,
Low = 0x7F.
Następnie doprowadzamy sygnał DMX do złącza J4. Wcześniej zworkami na JP1 należy ustalić adres urządzenia (opis w tabelce w dalszej części artykułu). Obserwując diody LedDMX i LedST (opis w dalszej części artykułu) wnioskujemy czy urządzenie odbiera sygnał DMX. Jeśli nie, to najprawdopodobniej zamienione są wyprowadzenia na złączu XRL. Jeśli odbiór jest poprawny, to przyłączamy silniki do złącz J1... J3.
Sterownik zajmuje sześć adresów, kolejno:
- prędkość obrotowa silnika nr 1,
- kierunek obrotów silnika nr 1,
- prędkość obrotowa silnika nr 2,
- kierunek obrotów silnika nr 2,
- prędkość obrotowa silnika nr 3
- kierunek obrotów silnika nr 3.
Zmieniając nastawy kanału nr 1 powinniśmy zmieniać prędkość obrotową silnika nr 1. Należy pamiętać, że przy małym wypełnieniu silnik nie będzie pracował (słychać charakterystyczne buczenie). Problem można rozwiązać przypisując minimalnemu ustawieniu obrotów wartość większą niż jeden (w praktyce 5...20).
Niestety, różne silniki pozwalają się uruchomić dla różnych wartości tego parametru i nie da się tego ustandaryzować. Gdy silnik pracuje, należy zrobić zwarcie na jego zaciskach. Po 50 ms bufor zostanie wyłączony i zaświecą się diody informujące o błędzie. Błąd kasuje się zmniejszając prędkość do zera.
Obsługa
Pierwszy kanał DMX steruje prędkością obrotową silnika nr 1. Zmianę kierunku realizuje kolejny kanał DMX. Do połowy silnik obraca się w (umownie) prawo, ponad połowę w lewo, przy czym zachowano histerezę ±20, a więc w zakresie 0...148 silnik obraca się w prawo, a 255...108 w lewo.
Dzięki temu nie ma problemu z niekontrolowanymi zmianami rejestru kierunku na granicy połowy zakresu zwłaszcza, gdy silniki są sterowane za pomocą konsoli z potencjometrami. Aby nie uszkodzić silnika i mechanizmów z nim współpracujących, zmiana kierunku możliwa jest tylko wtedy, gdy silnik jest zatrzymany (kanał nr 1 w zakresie 0...7). Jeśli nastąpi przeciążenie silnika zaświecają się diody błędu. Błąd kasuje się zmniejszając prędkość silnika do zera (kanał nr 1 w zakresie 0...5). Pozostałe kanały działają identycznie.
Status sterownika jest sygnalizowany za pomocą diod LED - ich funkcje opisano za pomocą tabeli 1, a sposób ustawienia adresu - tabeli 2.
Wykaz elementówRezystory: (SMD 1206) Kondensatory: (SMD 1206) Półprzewodniki: Inne: |
Uwagi
Generator przebiegu PWM w ATmega128 ma tę właściwość, że przy nastawie 0 generuje impuls o czasie trwania 1/256 okresu. Powoduje to ciche "bzyczenie" silnika. Aby wyeliminować ten efekt, przy nastawie 0 jest dezaktywowany sygnał Enable doprowadzony do stopnia mocy.
Podobnego "zabiegu" wymagała zmiana kierunku obrotów, która - jak pamiętamy - jest możliwa tylko po zatrzymaniu silnika. Przeciążenie jest wykrywane i sygnalizowane przez mikrokontroler za pomocą przerwania. Dociekliwych zachęcam do zajrzenia do kodu źródłowego programu, który jest dostępny w materiałach źródłowych udostępnionych dla projektu.
Sławomir Skrzyński, EP