İçindekiler:
- Adım 1: Donanımı Toplama
- Adım 2: Devre Tasarımı
- Adım 3: Kovari'nin Devre Tasarımı
- Adım 4: Giacomo'nun Devre Tasarımı
- Adım 5: Yazılım
- Adım 6: Paketleyin
Video: 4 Kanallı DMX Dimmer: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Konsept, taşınabilir bir dimmer tasarlamak ve oluşturmaktır.
Gereksinimler:
- DMX512 Kontrol Edilebilir
- 4 Kanal
- Taşınabilir
- Kullanımı kolay
Bu fikri WSU'daki profesörüme önerdim çünkü tutkularımı tiyatro ve bilgisayarlara birleştirmek istedim. Bu proje biraz tiyatro bölümündeki son projem gibi oldu. Herhangi bir yorumunuz veya sorunuz varsa, yardımcı olmak isterim.
Gelecekteki geliştirme, daha fazla kanal, 5 pinli DMX konektörü, DMX geçidi, kanalı değiştirmek için 8 dip anahtarı, baskılı devre kartı içerebilir.
Hâlâ popüler olduğu için bu projeyi https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html adresinden taşıdım sanırım. Ayrıca iWeb tohum dosyamı kaybettim, bu yüzden artık kolayca güncelleyemiyorum. İnsanların projeyle ilgili sorularını birbirleriyle paylaşmalarına izin vermek güzel olurdu.
Adım 1: Donanımı Toplama
Kullanılan Donanım: Çoğu Tayda Electronics'ten sipariş edildi. Daha küçük ve anlaşılması daha kolay seçim nedeniyle onları DigiKey'den daha çok seviyorum.
- ATMEGA328, Mikro denetleyici
- MOC3020, TRIAC Optokuplör. ZeroCross değil.
- MAX458 veya SN75176BP, DMX Alıcı
- ISP814, AC Optokuplör
- 7805, 5v Regülatör
- BTA24-600, 600V 25A TRİYAK
- 20MHz Kristal
- 9V Güç kaynağı
Yol boyunca öğrenilen birkaç engel ve ders
- Kayıt uzmanı değilseniz, ATMEGA328P'ye bağlı kalın
- Yanlış optokuplörler. Zero Cross istemiyorsun
- Yüksek kanallar kararsızdı. 16MHz'den 20MHz'e geçmek bu sorunu çözdü
- Kesinti çağrısının çok hızlı olması gerektiğinden DMX durum ışığına sahip olunamıyor
- DC gücü son derece kararlı olmalıdır, herhangi bir dalgalanma DMX sinyalinin çok gürültülü olmasına neden olur
TRIAC tasarımı MRedmon'dan geldi, teşekkürler.
Adım 2: Devre Tasarımı
Devremi tasarlamak için Mac'te Fritzing 7.7 kullandım.
Üstteki MAX485, DMX sinyalini Arduino'nun okuyabileceği bir şeye dönüştürmek için kullanılır.
Soldaki 4N35, AC sinyalinin sıfır geçişini algılamak için kullanılır, böylece Arduino, Sinüs dalgası çıkışını ne zaman karartacağını bilir. Yazılım bölümünde donanım ve yazılımın nasıl etkileşime girdiği hakkında daha fazla bilgi.
Bu proje Avrupa'da 230V ve 50Hz ile çalışır mı sorusunu aldım. Avrupa'da yaşamıyorum ve bu tasarımı test edebilmek için sık sık oraya seyahat etmiyorum. Çalışması gerekir, farklı frekans zaman gecikmesi için sadece parlaklık zamanlama kod satırını değiştirmeniz gerekir.
Adım 3: Kovari'nin Devre Tasarımı
Web sitemi kurma sürecinde birkaç e-posta görüşmesi yapabildim. Biri, bu projeye dayalı bir devre tasarımı yapan ve tasarımını paylaşmak isteyen Kovari Andrei ile birlikteydi. Ben devre kartı tasarımcısı değilim ama bu bir Eagle projesi. Kullanırsanız, sizin için nasıl çalıştığını bana bildirin.
Adım 4: Giacomo'nun Devre Tasarımı
Zaman zaman insanlar bu öğretici ile yaptıkları heyecan verici uyarlamaları bana mesaj atacaklar ve bunları hepinizle paylaşmam gerektiğini düşündüm.
Giacomo devreyi değiştirdi, böylece bir merkeze bağlı transformatör gerekli değildi. Pcb tek taraflıdır ve evde çift taraflı yapamayanlar için (biraz zor) daha hesaplı bir çözüm olabilir.
Adım 5: Yazılım
Ben ticari olarak bir yazılım mühendisiyim, bu yüzden bu kısım en ayrıntılı kısımdır.
Summery:Arduino ilk başlatıldığında setup() yöntemi çağrılır. Orada daha sonra kullanılmak üzere birkaç değişken ve çıktı konumu ayarladım. AC pozitif voltajdan negatif voltaja her geçtiğinde zeroCrossInterupt() çağrılır/çalışır. Her kanal için zeroCross bayrağını ayarlayacak ve zamanlayıcıyı başlatacaktır. loop() yöntemi sürekli olarak sonsuza kadar çağrılır. Çıkışı açmak için TRIAC'ın yalnızca 10 mikrosaniye tetiklenmesi gerekir. TRIAC ve zeroCross'u tetikleme zamanı geldiyse, AC fazının sonuna kadar çıkış açılır.
Bu projeyi başlatmak için kullandığım çevrimiçi birkaç örnek vardı. Bulamadığım en önemli şey, birden fazla TRIAC çıkışına sahip olmaktı. Diğerleri çıkışı PWM için gecikme işlevini kullandı, ancak ATMEGA'nın her zaman DMX dinlemesi gerektiğinden bu benim durumumda işe yaramazdı. Bunu, sıfır geçişten sonra TRIAC'ı birçok ms'de titreştirerek çözdüm. TRIAC'ı sıfır çapraza yaklaştırarak daha fazla günah dalgası çıktısı alınır.
İşte yukarıda, bir osiloskopta yarım 120VAC sin dalgasının nasıl göründüğü.
ISP814, kesme 1'e bağlıdır. Dolayısıyla, AC'nin pozitiften negatife veya tam tersine geçiş yaptığı sinyalini aldığında, her kanal için zeroCross değerini true olarak ayarlar ve kronometreyi başlatır.
loop() yönteminde, her kanalı zeroCross'un doğru olup olmadığını kontrol eder ve etkinleştirme süresi geçmişse, TRIAC'ı 10 mikrosaniye boyunca titreştirir. Bu, TRIAC'ı açmak için yeterlidir. Bir TRIAC açıldığında, sıfıra kadar açık kalacaktır. DMX %3 civarındayken ışık titreyecekti, bu yüzden bunu önlemek için oraya kesmeyi ekledim. Bu, Arduino'nun çok yavaş olmasına neden oldu ve nabız bazen dalganın son %4'ü yerine bir sonraki günah dalgasını tetikleyecekti.
Ayrıca döngüde () durum LED'lerinin PWM değerini ayarladım. Bu LED'ler, Arduino tarafından üretilen dahili PWM'yi kullanabilir, çünkü AC'nin sıfırCross'u hakkında endişelenmemize gerek yoktur. PWM ayarlandıktan sonra Arduino, aksi söylenene kadar bu parlaklıkta devam edecektir.
En üstteki yorumlarda belirtildiği gibi, pin 2'de bir DMX kesintisi kullanmak ve 20MHz'de çalışmak için bazı Arduino uygulama dosyalarını düzenlemeniz gerekecektir. HardwareSerial.cpp'de bir kod parçasının silinmesi gerekir, bu bizim kendi kesme çağrımızı yazmamıza izin verir. Bu ISR yöntemi, DMX kesmesini işlemek için kodun altındadır. ISP programcısı olarak bir Arduino kullanacaksanız, yaptığınız değişiklikleri HardwareSerial.cpp'ye geri aldığınızdan emin olun, aksi takdirde breadboard üzerindeki ATMEGA328'e erişilemez. İkinci değişiklik daha kolay bir değişiklik. Boards.txt dosyası yeni 20MHz saat hızına değiştirilmelidir.
parlaklık[ch]=harita(DmxRxField[ch], 0, 265, 8000, 0);
Parlaklık 8000'e eşlenir çünkü bu, 60hz'de 1/2 AC sinüs dalgasının mikrosaniye miktarıdır. Böylece, tam parlaklık 256 DMX'de program, 8000us için AC sinüs dalgasının 1/2'sini AÇIK bırakacaktır. Tahmin ve kontrol yoluyla 8000 buldum. 1000000us/60hz/2 = 8333 matematiğini yapmak daha iyi bir sayı olabilir, ancak fazladan 333us'un kafanın üzerinde olması TRIAC'ın açılmasına izin verir ve programdaki herhangi bir titreme muhtemelen iyi bir fikirdir.
Arduino 1.5.3'te HardwareSerial.cpp dosyasının konumunu taşıdılar. Şimdi /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp 39. satırdan başlayarak bu if bloğunun tamamını yorumlamanız gerekecek: #ifdefined(USART_RX_vect)
Aksi takdirde şu hatayı alırsınız: core/core.a(HardwareSerial0.cpp.o): '_vector_18' işlevinde:
Adım 6: Paketleyin
Menards'ın elektrik bölümündeki gri proje kutusunu aldım. Elektrik fiş deliklerini kesmek için pistonlu testere kullandım. Dava, asmak için üste takılan bir tiyatro c-kelepçesine sahip. Herhangi bir sorun olup olmadığını teşhis etmeye yardımcı olmak için her giriş ve çıkış için durum ışıkları. Cihazdaki farklı portları açıklamak için bir etiketleme makinesi kullanıldı. Her fişin yanındaki sayılar, DMX kanal numarasını temsil eder. Devre kartını ve transformatörü biraz sıcak tutkalla yapıştırdım. LED'ler, led tutucularla yerine takılır.
Önerilen:
Çok Kanallı Wifi Voltaj & Akım Ölçer: 11 Adım (Resimli)
Çok Kanallı Wifi Voltaj ve Akım Ölçer: Breadboard yaparken, genellikle devrenin farklı bölümlerini aynı anda izlemeniz gerekir. Multimetre problarını bir yerden diğerine yapıştırma zahmetinden kaçınmak için çok kanallı bir voltaj ve akım ölçer tasarlamak istedim. Ina260 kurulu
Kendin Yap 8 Kanallı Analog Maks/Min Gerilim Monitörü: 13 Adım
Kendin Yap 8 Kanallı Analog Maks/Min Gerilim Monitörü: Kontrol sistemleri ve ilgili cihazlar, öngerilim hatları veya piller gibi birden fazla güç kaynağıyla ilgilenir ve belirli bir set içindeki en yüksek (veya en düşük) hattı izlemelidir. Örneğin, “çoklu akü” ile çalışan bir sistemde yük değiştirme, t
Çok Kanallı Sonoff - Sesle Çalışan Işıklar: 4 Adım (Resimlerle)
Çok Kanallı Sonoff - Sesle Çalışan Işıklar: 5 yıl önce mutfağımdaki ışıklar tam anlamıyla yolunda gidiyordu. Pist aydınlatması başarısız oldu ve tezgah altı aydınlatması sadece önemsizdi. Ayrıca, farklı durumlar için odayı daha iyi aydınlatabilmek için aydınlatmayı kanallara bölmek istedim
9 Kanallı Radyo Vericisi: 3 Adım
9 Kanallı Radyo Verici: Radyo Verici Bu talimatta size güçlendirilmiş antenli nrf24lo1 modülü ile kendi ucuz radyo vericimi nasıl yaptığımı göstereceğim Bu projeyi yapmak için işte parça listesi Parça Listesi:- sr no Miktar na
Hepsi Bir Arada · DMX Sonlandırıcı ve DMX Test Cihazı: 3 Adım
Hepsi Bir Arada · DMX Terminator & DMX Tester: Bir aydınlatma teknisyeni olarak, bazen armatürler arasında dmx bağlantılarınızın ne kadar sağlıklı olduğunu bilmeniz gerekir. Bazen kablolar, armatürlerin kendileri veya voltaj dalgalanmaları nedeniyle DMX sistemi birçok soruna ve hataya maruz kalmaktadır. Ben de yaptım