Pada artikel ini saya akan berbicara tentang proyek dimmer empat saluran yang kuat untuk strip dan lampu LED (hingga 200 watt total daya, 50,100 watt per saluran) dengan frekuensi tinggi regulasi PWM (1 kilohertz dengan kedalaman warna 10 bit), untuk pencahayaan berkualitas tinggi . Selain itu, ia memiliki input untuk sensor cahaya, fungsi umpan balik (mengeluarkan informasi pengontrol pada tegangan input, tegangan pada input pengukuran, dan sebagainya) dan bahkan isolasi galvanik dari port kontrol serial.

Kebetulan saya memutuskan untuk mengubah profil dan sibuk dengan mikrokontroler dan otomatisasi, dan setelah beberapa bulan saya menerima tawaran yang menggiurkan untuk membuat "rumah pintar" di Republik Dominika, sehingga hampir semua aspek kehidupan sebuah vila yang cukup besar dengan tiga besar dikelola dan otomatis. bangunan, dari pencahayaan dan iklim, hingga robot taman dan sistem irigasi. Karena saya sudah bosan dengan salju dan salju untuk waktu yang lama, tidak mungkin untuk menolak tawaran seperti itu, terlebih lagi karena mereka banyak membantu saya dalam bergerak dan beradaptasi.
Tentu saja, salah satu tugas paling penting adalah mengendalikan pencahayaan, baik di banyak kamar maupun di luar. Untuk menghemat energi yang mahal di sini, strip LED dan lampu 12 volt akan digunakan hampir di mana-mana, yang harus dikontrol menggunakan dimmer. Model dimmer yang ada tidak begitu memuaskan dalam semua hal (frekuensi regulasi yang cukup tinggi, karena tidak adanya kerlipan; daya, untuk mengendalikan strip panjang yang terang atau lampu / lampu sorot; protokol pertukaran tertutup, dan sebagainya). Jadi saya memutuskan untuk membuat dimmer saya.
Titik yang sangat sakit pada tahap desain adalah pilihan untuk mendapatkan daya tegangan rendah dari 110 volt arus bolak-balik. Bahkan opsi eksotis dianggap dengan step-down transformerless segera hingga 12 volt, tetapi karena pertimbangan keselamatan listrik dan api itu ditolak. Catu daya siap pakai 110-> 12 tidak begitu mahal ($ 20 untuk 120 watt dan $ 40 untuk 200), meskipun cukup keseluruhan. Tapi, untungnya, ada banyak ruang untuk peralatan, jadi saya memilih opsi ini.
Rangkaian ini ternyata relatif sederhana (kecuali untuk node isolasi galvanik dari port serial pada empat optocouplers) - mikrokontroler STM32F030F4P6, dua driver MOSFET ADP3624 dan transistor kunci IRLB8748, dipilih dengan margin besar (dengan beban 100 watt per saluran - mereka nyaris hangat) , ditambah modul step-down berdenyut Cina yang siap pakai di 3,3 volt. Driver yang dipilih memungkinkan Anda untuk mengontrol frekuensi hingga megahertz, yang memberikan frekuensi tegangan output dalam kilohertz, dengan langkah PWM satu mikrodetik. Dalam praktiknya, bahkan mode dengan frekuensi PWM delapan kilohertz dan langkah 125 nanodetik telah diuji, tetapi dalam praktiknya, frekuensi penyesuaian yang demikian tinggi mengancam beberapa ketidakstabilan pada keluaran - transistor mungkin tidak punya waktu untuk menutup dengan begitu cepat dan kualitas penyesuaian akan "mengambang".

Pengkabelan papan untuk arus tinggi semacam itu merupakan tantangan yang agak sulit bagi saya, saya belum pernah mengalami tugas seperti itu sebelumnya. Diputuskan untuk membuatnya selebar mungkin (sebuah konduktor dengan lebar setidaknya 10 mm pada lapisan 70 mikron tembaga), dan jika ini tidak memungkinkan, gunakan lapisan kedua, gabungkan dengan sejumlah besar vias. Saya melepaskan topeng dari konduktor yang bermuatan tinggi sehingga, jika perlu, bus tembaga dapat diterapkan di atas (tapi ini tidak diperlukan, bahkan dengan beban maksimum 200 watt - papan memanas hingga hampir 40 derajat dalam wadah tertutup).
Protokol pertukaran, karena kurangnya memori flash, dipilih sangat sederhana, perintah dikirim baris demi baris, dalam bentuk teks "0: 512" (saluran nol, PWM 512), data output ditransmisikan dengan cara yang sama (tegangan, data dari photoresistor pertama, data dari photoresistor kedua, tegangan input pada input ADC3, tegangan input pada input ADC5, tegangan controller, suhu chip). Akan lebih tepat untuk menggunakan protokol MQTT, tapi saya takut itu tidak akan masuk ke dalam flash (kilobyte ruang kosong tetap keluar dari 16).
β
Kode sumber di githubDimmer dim-flash melalui port kontrol yang sama (Anda perlu menerapkan unit ke pin ke-4, kemudian ke pulsa ke-5, setelah itu mikrokontroler dapat dimuat menggunakan protokol serial standar STM32. Untuk mengontrol dimmer yang sudah di-flash, tiga kabel sudah cukup, + 3,3 / + 5V pada pin pertama, data pada ketiga, pada keenam - bumi. Pengaturan port kontrol dalam firmware adalah 38400 baud, 8n1.
Tentu saja, versi pertama dari dimmer itu bukannya tanpa cacat. Ternyata satu kapasitor 470 mikrofarad per 12 volt tidak cukup, terlalu panas dengan beban yang berat (terutama jika kabel ke catu daya tipis untuk arus seperti itu), kita perlu menambahkan beberapa yang lebih kuat (sesuai dengan arus maksimum yang diizinkan). Modul daya Cina juga ternyata menjadi solusi yang gagal, salah satu modul gagal selama tes tanpa alasan yang jelas sama sekali, saya akan menggantinya dengan konverter pada TPS62177, selain itu saya juga akan menambahkan konverter opsional lain pada AP1501 (24-> 12), untuk kasus catu daya dimmer dari 24 volt. Nah, Anda akan memerlukan rangkaian kontrol untuk kipas 120-mm untuk catu daya (dalam kasus di mana beban mendekati maksimum), dengan kontrol termal dan dapat disesuaikan tanpa batas. Saya juga memutuskan untuk mengganti isolasi galvanik kompleks dari port kontrol dengan chip SI8641.
Ada masalah di bagian perangkat lunak - kadang-kadang membaca dari port serial hang, memblokir kontrol (pengalaman dengan STM32 belum terlalu besar bagi saya), dan protokolnya ternyata terlalu bodoh, mungkin saya akan mencoba memasukkan MQTT yang normal di sana.
Berikut ini adalah contoh penggunaan dimmer di bangku tes (pintu depan saya), bersama dengan sensor jarak IR (warna dan kecerahan strip RGBW dapat disesuaikan, tergantung pada jarak, melalui openhab):
Pada artikel berikutnya saya akan berbicara tentang unit switching empat-channel dari beban AC delapan kilowatt dengan relay bistable (untuk mengurangi energi yang dikonsumsi dengan sia-sia) dengan mengukur konsumsi saat ini pada setiap saluran.
Baiklah, saya akan selesai dengan nada positif. Ternyata, di Republik Dominika, 99% isopropil atau etil alkohol tidak dapat ditemukan untuk papan sirkuit cuci (dan juga bensin murni). Anda dapat menemukan 70% campuran jelas tidak dengan air suling, meninggalkan noda. Dan Anda masih dapat dengan mudah menemukan 99,6% metil (saya tidak tahu mengapa mereka menjualnya sama sekali, bahkan menakutkan untuk menggunakannya sebagai pelarut - Anda dapat bernapas berpasangan). Saya memutuskan untuk mencoba membilas papan peredup pertama dengan air suling, yang saya beli di toko peralatan rumah tangga. Untungnya, saya tidak menyadari ide memeriksa kualitas distilat untuk rasa. Tapi papan sirkuit dan wastafel galvanis benar-benar tidak suka ketika saya menuangkannya dengan elektrolit baterai (botol air berdiri di rak dengan itu, jelas saya mengambil yang salah ketika saya menaruhnya di keranjang) ...