Mündəricat:

4 Ch DMX Dimmer: 6 addım
4 Ch DMX Dimmer: 6 addım

Video: 4 Ch DMX Dimmer: 6 addım

Video: 4 Ch DMX Dimmer: 6 addım
Video: pknight dimmer pack 4ch tutorial 2024, Iyul
Anonim
4 Ch DMX Dimmer
4 Ch DMX Dimmer

Konsept portativ dimmer dizayn etmək və yaratmaqdır.

Tələblər:

  • DMX512 İdarə oluna bilər
  • 4 Kanal
  • Portativ
  • İstifadəsi asandır

Teatr və kompüter ehtiraslarımı birləşdirmək istədiyim üçün bu fikri WSU -dakı professoruma təklif etdim. Bu layihə teatr şöbəsindəki böyük layihəmə bənzəyirdi. Hər hansı bir sualınız və ya şərhiniz varsa kömək etmək istərdim.

Gələcək inkişafa daha çox kanal, 5 pinli DMX konnektoru, DMX keçidi, kanalı dəyişdirmək üçün 8 dip açarı, çaplı devre kartı daxil ola bilər.

Hələ də populyar olduğu üçün bu layihəni https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html saytından köçürmüşəm. İWeb toxum faylımı da itirdim, buna görə artıq asanlıqla yeniləyə bilmərəm. İnsanların layihə ilə bağlı suallarını bir -birləri ilə bölüşməsinə icazə vermək yaxşı olardı.

Addım 1: Avadanlıqların toplanması

Avadanlıqların toplanması
Avadanlıqların toplanması

İstifadə olunan Avadanlıq: Çoxu Tayda Electronics -dən sifariş edilib. Kiçik və başa düşülməsi daha asan olduğu üçün onları DigiKey -dən daha çox bəyənirəm.

  1. ATMEGA328, mikro nəzarətçi
  2. MOC3020, TRIAC Optocoupler. ZeroCross deyil.
  3. MAX458 və ya SN75176BP, DMX Alıcısı
  4. ISP814, AC Optocoupler
  5. 7805, 5v tənzimləyicisi
  6. BTA24-600, 600V 25A TRIAC
  7. 20MHz Kristal
  8. 9V enerji təchizatı

Yolda bir neçə maneə və dərs alındı

  • Qeydiyyat mütəxəssisi deyilsinizsə, ATMEGA328P ilə qalın
  • Səhv optocoupler. Zero Cross istəmirsiniz
  • Yüksək kanallar qeyri -sabit idi. 16MHz -dən 20MHz -ə keçid bu problemi həll etdi
  • DMX status işığına malik olmaq mümkün deyil, çünki kəsilmə zəngi çox sürətli olmalı idi
  • DC gücü son dərəcə sabit olmalıdır, hər hansı bir dalğalanma DMX siqnalının çox səs -küylü olmasına səbəb olacaq

TRIAC dizaynı MRedmon -dan gəldi, təşəkkür edirəm.

Addım 2: Dövrə Dizaynı

Dövrə Dizaynı
Dövrə Dizaynı

Dövrəmi dizayn etmək üçün Mac -da Fritzing 7.7 istifadə etdim.

Üstdəki MAX485, DMX siqnalını Arduinonun oxuya biləcəyi bir şeyə çevirmək üçün istifadə olunur.

Soldakı 4N35, AC siqnalının sıfır xaçını aşkar etmək üçün istifadə olunur, buna görə Arduino Sinus dalğasının çıxışını nə vaxt söndürəcəyini bilir. Proqram bölməsində hardware və proqram təminatının qarşılıqlı əlaqəsi haqqında daha çox məlumat.

Sual aldım ki, bu layihə 230V və 50Hz ilə Avropada işləyəcəkmi? Bu dizaynı sınamaq üçün nə Avropada yaşayıram, nə də ora tez -tez gedirəm. İşləməlidir, fərqli tezlik gecikməsi üçün kodun parlaqlıq zaman xəttini dəyişdirməlisiniz.

Addım 3: Kovarinin Dövrə Dizaynı

Kovarinin Dövrə Dizaynı
Kovarinin Dövrə Dizaynı
Kovarinin Dövrə Dizaynı
Kovarinin Dövrə Dizaynı

Veb saytımı açma prosesində bir neçə e -poçt söhbəti edə bildim. Biri bu layihə əsasında bir dövrə dizaynı edən və dizaynını bölüşmək istəyən Kovari Andrei ilə idi. Mən elektron kart dizayneri deyiləm, amma Eagle layihəsidir. İstifadə etsəniz bunun sizin üçün necə işlədiyini mənə bildirin.

Addım 4: Giacomo Dövrə Dizaynı

Giacomo Dövrə Dizaynı
Giacomo Dövrə Dizaynı

Zaman zaman insanlar mənə bu təlimatla etdikləri həyəcanverici uyğunlaşmaları bildirəcəklər və bunları hamınızla paylaşmalı olduğumu düşündüm.

Giacomo, dövrə dəyişdirdi, buna görə də mərkəzi vurulmuş bir transformatora ehtiyac qalmadı. PCB tək tərəflidir və evdə iki tərəfli edə bilməyənlər üçün daha əlverişli bir həll ola bilər (bir az çətin).

Addım 5: Proqram təminatı

Proqram təminatı
Proqram təminatı

Mən bir proqram mühəndisiyəm, buna görə də bu hissə ən detallıdır.

Yaz: Arduino ilk dəfə açıldıqda setup () metodu adlanır. Orada daha sonra istifadə ediləcək bir neçə dəyişən və çıxış yeri qurdum. zeroCrossInterupt (), AC hər dəfə pozitivdən mənfi gərginliyə keçəndə çağırılır/ qaçır. Hər kanal üçün zeroCross bayrağını təyin edəcək və taymeri işə salacaq. Loop () metodu davamlı olaraq sonsuza qədər adlanır. Çıxışı açmaq üçün TRIAC yalnız 10 mikrosaniyə işə salınmalıdır. TRIAC və zeroCross -u işə salmağın vaxtıdırsa, çıxış AC fazasının sonuna qədər açılacaqdır.

Bu layihəyə başlamaq üçün istifadə etdiyim bir neçə nümunə var idi. Tapa bilmədiyim əsas şey birdən çox TRIAC çıxışı idi. Digərləri gecikmə funksiyasını PWM çıxışı üçün istifadə etdilər, amma bu mənim vəziyyətimdə işləməyəcəkdi, çünki ATMEGA hər zaman DMX -i dinləməli idi. TRIAC-ı sıfır xaçdan sonra bir çox ms-də vuraraq həll etdim. TRIAC-ı sıfır xaça yaxınlaşdırmaqla daha çox günah dalğası çıxır.

Yarı 120VAC günah dalğasının yuxarıdakı bir osiloskopda göründüyü budur.

ISP814 1 fasiləsinə bağlıdır. Belə ki, AC -nin pozitivdən mənfi və ya əksinə keçdiyini göstərən siqnal aldıqda hər bir kanal üçün zeroCross -u doğru olaraq təyin edir və saniyəölçəni işə salır.

Loop () metodunda, hər kanalı zeroCross -un doğru olub olmadığını yoxlayır və aktivləşdirmə vaxtı keçdikdən sonra TRIAC -ı 10 mikrosaniyə vuracaq. TRIAC -ı işə salmaq üçün bu kifayətdir. TRIAC açıldıqdan sonra sıfıra qədər qalacaq. DMX 3% civarında olduqda işıq yanıb -sönəcəkdi, buna görə də qarşısını almaq üçün oraya kəsik əlavə etdim. Bu, Arduinonun çox yavaş olmasına səbəb oldu və nəbz, dalğanın son 4% -i əvəzinə, bir neçə dəfə növbəti günah dalğasını tetiklerdi.

Ayrıca loopda () vəziyyət LED -lərinin PWM dəyərini təyin etdim. Bu LEDlər Arduino tərəfindən yaradılan daxili PWM -dən istifadə edə bilər, çünki AC -nin zeroCrossundan narahat olmaq lazım deyil. PWM qurulduqdan sonra, Arduino digər müdriklərə deyilənə qədər bu parlaqlıqda davam edəcək.

Üst şərhlərdə qeyd edildiyi kimi, pin 2 -də bir DMX kəsilməsini istifadə etmək və 20MHz -də işləmək üçün bəzi Arduino tətbiq sənədlərini redaktə etməli olacaqsınız. HardwareSerial.cpp -də bir yığın kod silinməlidir, bu da öz aralıq zəngimizi yazmağa imkan verir. Bu ISR metodu, DMX kəsilməsini idarə etmək üçün kodun altındadır. Bir Arduino -dan ISP proqramçısı olaraq istifadə edəcəksinizsə, dəyişikliklərinizi HardwareSerial.cpp -ə qaytardığınızdan əmin olun, əks halda çörək lövhəsindəki ATMEGA328 əlçatmaz olacaq. İkinci dəyişiklik daha asandır. Board.txt faylı yeni 20MHz saat sürətinə dəyişdirilməlidir.

parlaqlıq [ch] = xəritə (DmxRxField [ch], 0, 265, 8000, 0);

Parlaqlıq 8000 -ə bərabərdir, çünki bu, 60Hz -də AC AC sinüs dalğasının 1/2 mikrosaniyəsidir. Beləliklə, 256 DMX tam parlaqlıqda proqram 8000us üçün AC sinüs dalğasının 1/2 hissəsini AÇIQ edəcək. Tahmin və yoxlama yolu ilə 8000 aldım. 1000000us/60hz/2 = 8333 riyaziyyatını etmək daha yaxşı bir rəqəm ola bilər, ancaq əlavə 333usun olması TRIAC -ın açılmasına imkan verir və proqramdakı hər hansı bir sarsıntı yəqin ki, yaxşı bir fikirdir.

Arduino 1.5.3 -də HardwareSerial.cpp faylının yerini köçürdülər. İndi /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp 39: #if ilə təyin olunan blok varsa, bütün bunları şərh etməli olacaqsınız (USART_RX_vect)

Əks təqdirdə bu səhvlə qarşılaşacaqsınız: core/core.a (HardwareSerial0.cpp.o): '_vector_18' funksiyasında:

Addım 6: Qablaşdırma

Qablaşdırma
Qablaşdırma
Qablaşdırma
Qablaşdırma
Qablaşdırma
Qablaşdırma

Menardsın elektrik hissəsindəki boz layihə qutusunu aldım. Elektrik fişlərinin deliklərini kəsmək üçün pistonlu mişardan istifadə etdim. Davanın asılması üçün yuxarıya bağlanan bir teatr c-sıxacı var. Hər hansı bir problem varsa diaqnoz qoymağa kömək etmək üçün hər giriş və çıxış üçün vəziyyət işıqları. Cihazdakı fərqli portları izah etmək üçün bir etiket istehsalçısı istifadə edildi. Hər bir fişin yanındakı nömrələr DMX kanal nömrəsini təmsil edir. Elektrik lövhəsini və transformatoru bir az isti yapışqanla yapışdırdım. LEDlər LED tutacaqları ilə yerində yapışdırılır.

Tövsiyə: