Daftar Isi:

4 Ch DMX Dimmer: 6 Langkah
4 Ch DMX Dimmer: 6 Langkah

Video: 4 Ch DMX Dimmer: 6 Langkah

Video: 4 Ch DMX Dimmer: 6 Langkah
Video: Unboxing dmx dimmer pack 4chanel lighting system 2024, Juli
Anonim
4 Ch DMX Dimmer
4 Ch DMX Dimmer

Konsepnya adalah merancang dan membuat dimmer portabel.

Persyaratan:

  • DMX512 Terkendali
  • 4 Saluran
  • portabel
  • Mudah digunakan

Saya mengusulkan ide ini kepada profesor saya di WSU karena saya ingin menggabungkan hasrat saya untuk teater dan komputer. Proyek ini bertindak sedikit seperti proyek senior saya di departemen teater. Jika Anda memiliki komentar atau pertanyaan, saya akan dengan senang hati membantu.

Pengembangan di masa depan dapat mencakup lebih banyak saluran, konektor DMX 5 pin, passthrough DMX, sakelar 8 celup untuk mengubah saluran, papan sirkuit cetak.

Saya telah memigrasikan proyek ini dari https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html karena masih populer, saya kira. Saya juga kehilangan file benih iWeb saya sehingga saya tidak dapat dengan mudah memperbaruinya lagi. Akan lebih baik jika orang-orang saling berbagi pertanyaan tentang proyek mereka.

Langkah 1: Mengumpulkan Perangkat Keras

Mengumpulkan Perangkat Keras
Mengumpulkan Perangkat Keras

Perangkat Keras yang Digunakan: Sebagian besar dipesan dari Tayda Electronics. Saya lebih menyukainya daripada DigiKey karena pilihannya yang lebih kecil dan lebih mudah dipahami.

  1. ATMEGA328, Mikro-kontroler
  2. MOC3020, Optocoupler TRIAC. Bukan Zero Cross.
  3. MAX458 atau SN75176BP, Penerima DMX
  4. ISP814, AC Optocoupler
  5. 7805, Pengatur 5v
  6. BTA24-600, 600V 25A TRIAC
  7. Kristal 20MHz
  8. Catu daya 9V

Beberapa rintangan dan pelajaran yang dipetik di sepanjang jalan

  • Jika Anda bukan ahli register, gunakan ATMEGA328P
  • Optocoupler yang salah. Anda tidak ingin Zero Cross
  • Saluran tinggi tidak stabil. Beralih dari 16MHz ke 20MHz memecahkan masalah ini
  • Tidak dapat memiliki lampu status DMX karena panggilan interupsi harus sangat cepat
  • Daya DC harus sangat stabil, riak apa pun akan menyebabkan sinyal DMX menjadi sangat bising

Desain TRIAC berasal dari MRedmon, terima kasih.

Langkah 2: Desain Sirkuit

Desain Sirkuit
Desain Sirkuit

Saya menggunakan Fritzing 7.7 di Mac untuk mendesain sirkuit saya.

MAX485 di bagian atas digunakan untuk mengubah sinyal DMX menjadi sesuatu yang dapat dibaca oleh Arduino.

4N35 di sebelah kiri digunakan untuk mendeteksi zero cross dari sinyal AC sehingga Arduino akan tahu jam berapa meredupkan output gelombang sinus. Lebih lanjut tentang bagaimana perangkat keras dan perangkat lunak berinteraksi di bagian perangkat lunak.

Saya mendapat pertanyaan apakah proyek ini akan bekerja di Eropa dengan 230V dan 50Hz? Saya tidak tinggal di Eropa, saya juga tidak sering bepergian ke sana untuk menguji desain ini. Seharusnya berfungsi, Anda hanya perlu memodifikasi garis waktu kecerahan kode untuk penundaan waktu frekuensi yang berbeda.

Langkah 3: Desain Sirkuit Kovari

Desain Sirkuit Kovari
Desain Sirkuit Kovari
Desain Sirkuit Kovari
Desain Sirkuit Kovari

Melalui proses pembuatan situs web saya, saya dapat melakukan beberapa percakapan email. Salah satunya dengan Kovari Andrei yang melakukan desain sirkuit berdasarkan proyek ini dan ingin membagikan desainnya. Saya bukan perancang papan sirkuit tetapi ini adalah proyek Eagle. Beri tahu saya cara kerjanya untuk Anda jika Anda menggunakannya.

Langkah 4: Desain Sirkuit Giacomo

Desain Sirkuit Giacomo
Desain Sirkuit Giacomo

Dari waktu ke waktu orang akan mengirimi saya pesan tentang adaptasi menarik yang telah mereka lakukan dengan instruksi ini dan saya pikir saya harus membaginya dengan Anda semua.

Giacomo memodifikasi sirkuit sehingga transformator yang disadap tengah tidak diperlukan. PCB satu sisi dan bisa menjadi solusi yang lebih terjangkau bagi yang tidak bisa membuat dua sisi di rumah (agak sulit).

Langkah 5: Perangkat Lunak

Perangkat lunak
Perangkat lunak

Saya seorang insinyur perangkat lunak berdasarkan perdagangan jadi bagian ini adalah yang paling detail.

Summery: Saat Arduino pertama kali mem-boot, metode setup() dipanggil. Di sana saya mengatur beberapa variabel dan lokasi output untuk digunakan nanti. zeroCrossInterupt() dipanggil/ dijalankan setiap kali AC melintasi dari tegangan positif ke negatif. Ini akan mengatur bendera zeroCross untuk setiap saluran dan memulai penghitung waktu. Metode loop() dipanggil terus menerus selamanya. Untuk mengaktifkan output, TRIAC hanya perlu dipicu selama 10 mikrodetik. Jika saatnya untuk memicu dia TRIAC dan zeroCross telah terjadi output akan menyala sampai akhir fase AC.

Ada beberapa contoh online yang saya gunakan untuk memulai proyek ini. Hal utama yang tidak dapat saya temukan adalah memiliki beberapa keluaran TRIAC. Lainnya menggunakan fungsi penundaan untuk PWM output, tapi itu tidak akan bekerja dalam kasus saya karena ATMEGA harus mendengarkan DMX sepanjang waktu. Saya memecahkan ini dengan menggerakkan TRIAC pada banyak ms setelah zero-cross. Dengan menekan TRIAC lebih dekat ke zero-cross, semakin banyak gelombang sin yang dihasilkan.

Inilah yang tampak seperti gelombang sin setengah 120VAC pada osiloskop, di atas.

ISP814 terhubung ke interupsi 1. Jadi ketika menerima sinyal bahwa AC bertransisi dari positif ke negatif atau sebaliknya, ia menetapkan zeroCross untuk setiap saluran ke true dan memulai stopwatch.

Dalam metode loop(), ia memeriksa setiap saluran apakah zeroCross benar dan waktu untuk mengaktifkannya telah berlalu, ia akan mengirimkan pulsa ke TRIAC selama 10 mikrodetik. Ini cukup untuk menghidupkan TRIAC. Setelah TRIAC dihidupkan, TRIAC akan tetap menyala hingga zeroCross. Lampu akan berkedip ketika DMX sekitar 3% jadi saya menambahkan pemotongan di sana untuk mencegahnya. Hal ini menyebabkan Arduino menjadi terlalu lambat, dan pulsa beberapa kali akan memicu gelombang dosa berikutnya, bukan 4% terakhir dari gelombang.

Juga di loop() saya mengatur nilai PWM dari LED status. LED ini dapat menggunakan PWM internal yang dihasilkan oleh Arduino karena kita tidak perlu khawatir tentang zeroCross AC. Setelah PWM diatur, Arduino akan melanjutkan pada kecerahan itu sampai diberitahukan sebaliknya.

Seperti disebutkan di komentar atas untuk menggunakan interupsi DMX pada pin 2 dan berjalan pada 20MHz, Anda harus mengedit beberapa file aplikasi Arduino. Di HardwareSerial.cpp sepotong kode harus dihapus, ini memungkinkan kita untuk menulis panggilan interupsi kita sendiri. Metode ISR ini ada di bagian bawah kode untuk menangani interupsi DMX. Jika Anda akan menggunakan Arduino sebagai programmer ISP, pastikan untuk mengembalikan perubahan Anda ke HardwareSerial.cpp jika tidak, ATMEGA328 di papan roti tidak akan dapat dijangkau. Perubahan kedua adalah yang lebih mudah. File boards.txt harus diubah ke kecepatan clock 20MHz yang baru.

kecerahan[ch]=peta(DmxRxField[ch], 0, 265, 8000, 0);

Kecerahan dipetakan ke 8000 karena itu adalah jumlah mikrodetik 1/2 gelombang sinus AC pada 60hz. Jadi pada kecerahan penuh 256 DMX program akan membiarkan 1/2 gelombang sinus AC ON selama 8000us. Saya datang dengan 8000 melalui menebak dan memeriksa. Melakukan matematika 1000000us/60hz/2 = 8333 sehingga mungkin menjadi angka yang lebih baik, tetapi memiliki 333us ekstra di atas kepala memungkinkan TRIAC untuk membuka dan setiap jitter dalam program mungkin merupakan ide yang bagus.

Pada Arduino 1.5.3 mereka memindahkan lokasi file HardwareSerial.cpp. Sekarang /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp Anda perlu mengomentari keseluruhan ini jika blok dimulai dengan baris 39: #if didefinisikan(USART_RX_vect)

Jika tidak, Anda akan mendapatkan kesalahan ini: core/core.a(HardwareSerial0.cpp.o): Dalam fungsi `_vector_18':

Langkah 6: Mengemasnya

Mengemasnya
Mengemasnya
Mengemasnya
Mengemasnya
Mengemasnya
Mengemasnya

Saya mengambil kotak proyek abu-abu di Menards di bagian listrik mereka. Saya menggunakan gergaji bolak-balik untuk memotong lubang colokan listrik. Kasingnya memiliki c-clamp teater yang terpasang di bagian atas untuk tujuan menggantung. Lampu status untuk setiap input dan output untuk membantu mendiagnosis jika ada masalah. Pembuat label digunakan untuk menjelaskan berbagai port pada perangkat. Angka di sebelah setiap colokan mewakili nomor saluran DMX. Saya menempelkan papan sirkuit dan transformator dengan lem panas. LED terjebak di tempat dengan pemegang led.

Direkomendasikan: