Spisu treści:
- Krok 1: Zbieranie sprzętu
- Krok 2: Projekt obwodu
- Krok 3: Projekt obwodu Kovari
- Krok 4: Projekt obwodu Giacomo
- Krok 5: Oprogramowanie
- Krok 6: Pakowanie go
Wideo: 4-kanałowy ściemniacz DMX: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Koncepcja polega na zaprojektowaniu i stworzeniu przenośnego ściemniacza.
Wymagania:
- Sterowanie DMX512
- 4 kanały
- Przenośny
- Łatwy w użyciu
Zaproponowałem ten pomysł mojemu profesorowi na WSU, ponieważ chciałem połączyć swoje pasje do teatru i komputerów. Ten projekt zachowywał się trochę jak mój starszy projekt w dziale teatralnym. Jeśli masz jakieś uwagi lub pytania, chętnie pomogę.
Przyszły rozwój może obejmować więcej kanałów, 5-pinowe złącze DMX, przejście DMX, 8 przełączników DIP do zmiany kanału, płytkę drukowaną.
Przeniosłem ten projekt z https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html, ponieważ wydaje mi się, że nadal jest popularny. Zgubiłem też plik seed iWeb, więc nie mogę go już łatwo aktualizować. Byłoby miło, gdyby ludzie mogli dzielić się ze sobą swoimi pytaniami dotyczącymi projektu.
Krok 1: Zbieranie sprzętu
Użyty sprzęt: Większość zamówiono w Tayda Electronics. Lubię je bardziej niż DigiKey ze względu na mniejszy i łatwiejszy do zrozumienia wybór.
- ATMEGA328, mikrokontroler
- MOC3020, TRIAC Transoptor. Nie ZeroCross.
- MAX458 lub SN75176BP, odbiornik DMX
- ISP814, transoptor AC
- 7805, regulator 5v
- BTA24-600, 600V 25A TRIAK
- Kryształ 20 MHz
- Zasilanie 9V
Kilka przeszkód i lekcji wyciągniętych po drodze
- Jeśli nie jesteś ekspertem od rejestrów, trzymaj się ATMEGA328P
- Złe transoptory. Nie chcesz przejść przez zero
- Wysokie kanały były niestabilne. Zmiana z 16 MHz na 20 MHz rozwiązała ten problem
- Nie można mieć kontrolki statusu DMX, ponieważ wywołanie przerwania musiało być bardzo szybkie
- Zasilanie prądem stałym musi być niezwykle stabilne, wszelkie tętnienia powodują, że sygnał DMX będzie bardzo zaszumiony
Projekt TRIAC pochodzi od MRedmon, dziękuję.
Krok 2: Projekt obwodu
Do zaprojektowania obwodu użyłem Fritzing 7.7 na Macu.
MAX485 na górze służy do konwersji sygnału DMX na coś, co Arduino może odczytać.
4N35 po lewej stronie służy do wykrywania przejścia przez zero sygnału AC, dzięki czemu Arduino będzie wiedział, o której godzinie przyciemnić wyjście fali sinusoidalnej. Więcej informacji o interakcji sprzętu i oprogramowania znajdziesz w dziale Oprogramowanie.
Dostałem pytanie czy ten projekt będzie działał w Europie z 230V i 50Hz? Nie mieszkam w Europie i nie jeżdżę tam często, aby móc przetestować ten projekt. Powinno działać, wystarczy zmodyfikować linię synchronizacji jasności kodu dla różnych opóźnień czasowych częstotliwości.
Krok 3: Projekt obwodu Kovari
Dzięki uruchomieniu mojej strony internetowej udało mi się przeprowadzić kilka rozmów e-mailowych. Jednym z nich był Kovari Andrei, który wykonał projekt obwodu w oparciu o ten projekt i chciał podzielić się swoim projektem. Nie jestem projektantem płytek drukowanych, ale to projekt Eagle. Daj mi znać, jak to działa, jeśli go użyjesz.
Krok 4: Projekt obwodu Giacomo
Od czasu do czasu ludzie będą mi przesyłać wiadomości z ekscytującymi adaptacjami, które zrobili z tym instruktażem, i pomyślałem, że powinienem podzielić się nimi z wami wszystkimi.
Giacomo zmodyfikował obwód, więc transformator z odczepem centralnym nie był wymagany. Płytka jest jednostronna i może być tańszym rozwiązaniem dla osób, które nie mogą zrobić dwustronnej w domu (trochę trudne).
Krok 5: Oprogramowanie
Jestem z zawodu inżynierem oprogramowania, więc ta część jest najbardziej szczegółowa.
Summery: Kiedy Arduino uruchamia się po raz pierwszy, wywoływana jest metoda setup(). W tym miejscu ustawiłem kilka zmiennych i lokalizacji wyjściowych, które będą używane później. zeroCrossInterupt() jest wywoływana/uruchamiana za każdym razem, gdy AC przechodzi z napięcia dodatniego do ujemnego. Ustawi flagę zeroCross dla każdego kanału i uruchomi timer. Metoda loop() jest wywoływana bez przerwy w nieskończoność. Aby włączyć wyjście, TRIAC musi być wyzwolony tylko na 10 mikrosekund. Jeśli nadszedł czas, aby wyzwolić TRIAC i zeroCross, wyjście włączy się do końca fazy AC.
Było kilka przykładów online, które wykorzystałem do rozpoczęcia tego projektu. Najważniejszą rzeczą, której nie mogłem znaleźć, było posiadanie wielu wyjść TRIAC. Inni używali funkcji opóźnienia do PWM wyjścia, ale to nie zadziałałoby w moim przypadku, ponieważ ATMEGA musi cały czas słuchać DMX. Rozwiązałem to pulsując TRIAC w tak wielu ms po przejściu przez zero. Pulsując TRIAC bliżej przejścia przez zero, więcej fali grzechu jest wyprowadzane.
Oto jak wygląda połowa fali sinusoidalnej 120VAC na oscyloskopie powyżej.
ISP814 jest podłączony do przerwania 1. Więc kiedy otrzyma sygnał, że AC przechodzi z dodatniego na ujemny lub odwrotnie, ustawia zeroCross dla każdego kanału na true i uruchamia stoper.
W metodzie loop() sprawdza każdy kanał, czy zeroCross jest prawdziwe, a czas aktywacji minął, wysyła impulsy do TRIAC przez 10 mikrosekund. To wystarczy, aby włączyć TRIAC. Po włączeniu TRIAC pozostanie włączony do zera Cross. Światło migotało, gdy DMX wynosiło około 3%, więc dodałem tam przycinanie, aby temu zapobiec. Spowodowało to, że Arduino było zbyt wolne, a impuls czasami wyzwalał następną falę grzechu zamiast ostatnich 4% fali.
Również w loop() ustawiam wartość PWM diod statusu. Diody te mogą korzystać z wewnętrznego PWM generowanego przez Arduino, ponieważ nie musimy się martwić o zerowy krzyż AC. Po ustawieniu PWM Arduino będzie kontynuować tę jasność, dopóki nie zostanie poinformowany inaczej.
Jak zauważono w najlepszych komentarzach, aby użyć przerwania DMX na pinie 2 i działać z częstotliwością 20 MHz, będziesz musiał edytować niektóre pliki aplikacji Arduino. W HardwareSerial.cpp fragment kodu musi zostać usunięty, co pozwala nam na napisanie własnego wywołania przerwania. Ta metoda ISR znajduje się na dole kodu, aby obsłużyć przerwanie DMX. Jeśli zamierzasz używać Arduino jako programisty ISP, pamiętaj, aby przywrócić zmiany do HardwareSerial.cpp, w przeciwnym razie ATMEGA328 na płycie chlebowej będzie nieosiągalny. Druga zmiana jest łatwiejsza. Plik Boards.txt musi zostać zmieniony na nową częstotliwość zegara 20 MHz.
jasność[ch]=mapa(DmxRxField[ch], 0, 265, 8000, 0);
Jasność mapuje się do 8000, ponieważ jest to ilość mikrosekund 1/2 fali sinusoidalnej prądu przemiennego przy 60 Hz. Czyli przy pełnej jasności 256 DMX program pozostawi włączoną 1/2 sinusoidy AC przez 8000us. Wymyśliłem 8000 przez zgadywanie i sprawdzanie. Obliczenie 1000000us/60hz/2 = 8333, więc może to być lepsza liczba, ale posiadanie dodatkowych 333us nad głową pozwala na otwarcie TRIAC i wszelkie jitter w programie jest prawdopodobnie dobrym pomysłem.
W Arduino 1.5.3 przenieśli lokalizację pliku HardwareSerial.cpp. Teraz jest to /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Będziesz musiał zakomentować to wszystko, jeśli blok zaczyna się od linii 39: #if defined(USART_RX_vect)
W przeciwnym razie otrzymasz ten błąd: core/core.a(HardwareSerial0.cpp.o): W funkcji `_vector_18':
Krok 6: Pakowanie go
Wziąłem szare pudełko projektowe w Menards w ich dziale elektrycznym. Użyłem piły szablastej do wycięcia otworów na wtyczki elektryczne. Walizka ma mocowany do góry zacisk typu teatralnego do zawieszania. Lampki stanu dla każdego wejścia i wyjścia pomagają zdiagnozować, czy kiedykolwiek wystąpi problem. Do wyjaśnienia różnych portów urządzenia użyto drukarki etykiet. Liczby obok każdej wtyczki reprezentują numer kanału DMX. Płytkę drukowaną i transformator przykleiłem gorącym klejem. Diody LED są mocowane za pomocą uchwytów do diod LED.
Zalecana:
Potężny cyfrowy ściemniacz prądu przemiennego przy użyciu STM32: 15 kroków (ze zdjęciami)
Potężny cyfrowy ściemniacz prądu przemiennego przy użyciu STM32: Hesam Moshiri, [email protected] ładuje się z nami! Ponieważ są wszędzie wokół nas i przynajmniej sprzęt AGD jest zasilany z sieci. Wiele typów urządzeń przemysłowych jest również zasilanych napięciem jednofazowym 220V-AC
Ściemniacz krawędzi spływowej DIY: 5 kroków
DIY Trailing Edge Dimmer: W tym projekcie przyjrzymy się bliżej wyzwaniom elektrycznym, jakie oferują żarówki LED AC, jeśli chodzi o ich ściemnianie. Oznacza to, że opowiem trochę o tym, jak są zbudowane, a także określimy różnice między krawędzią natarcia
DIY Inteligentny ściemniacz LED sterowany przez Bluetooth: 7 kroków
DIY Inteligentny ściemniacz LED sterowany przez Bluetooth: Ta instrukcja opisuje, jak zbudować inteligentny cyfrowy ściemniacz. Ściemniacz to powszechny włącznik światła używany w domach, hotelach i wielu innych budynkach. Starsze wersje ściemniaczy były ręczne i zazwyczaj zawierały przełącznik obrotowy
Włącznik światła + ściemniacz wentylatora na jednej płycie z ESP8266: 7 kroków (ze zdjęciami)
Włącznik światła + ściemniacz wentylatora na jednej płytce z ESP8266: W tym samouczku dowiesz się, jak zbudować własny włącznik światła i ściemniacz wentylatora na jednej płytce z mikrokontrolerem i modułem WiFi ESP8266. To świetny projekt dla IoT. :Ten obwód obsługuje główne napięcia prądu przemiennego, więc bądź ostrożny
Regulator prędkości wentylatora WiFi (ściemniacz AC ESP8266): 8 kroków (ze zdjęciami)
Regulator prędkości wentylatora WiFi (ściemniacz AC ESP8266): Ta instrukcja poprowadzi, jak wykonać regulator prędkości wentylatora sufitowego przy użyciu metody kontroli kąta fazy triaka. Triak jest konwencjonalnie sterowany przez samodzielny układ Atmega8 skonfigurowany w arduino. Wemos D1 mini dodaje funkcję Wi-Fi dla tego regulatora