Informasi Umum Dari AC Light Dimmer Module
AC Dimmer dirancang untuk mengontrol tegangan arus bolak-balik, yang dapat mentransfer arus hingga 600V / 16А. Dalam kebanyakan kasus, Dimmer digunakan untuk menyalakan / mematikan daya untuk lampu atau elemen pemanas, juga dapat digunakan pada kipas, pompa, pembersih udara, dll.
Akhir-akhir ini, Dimmer telah menjadi keputusan yang sering digunakan untuk sistem smart home. Misalnya, saat Anda perlu mengubah kecerahan cahaya dengan baik. Lampu perlahan-lahan MENYALA atau MATI, menciptakan suasana yang nyaman. Peredup bekerja paling efektif dengan lampu filamen. Ini kurang stabil dengan lampu LED yang dapat diredupkan dengan kecerahan rendah, tetapi dengan kecerahan sedang dan tinggi akan berfungsi dengan baik. Perhatikan bahwa lampu luminescent (lampu pelepasan gas) tidak mendukung peredupan.
Bagian daya dimmer diisolasi dari bagian kontrol, untuk mengecualikan kemungkinan gangguan arus tinggi ke mikrokontroler. Level logika toleran terhadap 5V dan 3.3V, oleh karena itu dapat dihubungkan ke mikrokontroler dengan logika level 5V dan 3.3V. Di Arduino, peredup dikontrol dengan pustaka RBDdimmer.h, yang menggunakan interupsi eksternal dan interupsi waktu proses. Ini menyederhanakan penulisan kode dan memberikan lebih banyak waktu pemrosesan untuk kode utama. Itulah mengapa Anda dapat mengontrol beberapa Dimmer dari satu mikrokontroler.
Anda dapat mendownload perpustakaan RBDDimmer.h dan beberapa contoh di GitHub. Kami terus memperbarui perpustakaan kami, jadi kami menyarankan untuk memeriksa pembaruan situs web atau berlangganan buletin kami.
Dimmer terhubung ke pengontrol Arduino melalui dua pin digital. Pertama (zero-crossing detector) untuk mengontrol lewatnya Phase Null dari AC, yang digunakan untuk memulai sinyal interupsi. Kedua (DIM / PSM) untuk mengontrol arus (redup).
Teori Dasar
Peredupan dapat dilakukan dengan Pulse Skip Modulation:
Metode 1 - Satu atau lebih siklus (sinyal gelombang sinus) ditransfer ke beban, sementara mengikuti satu atau beberapa siklus diblokir.
Metode 2 - Transfer parsial dari setiap gelombang sinus ke beban.
Metode 3 - Pembangkitan sinyal sinus penuh termodulasi dengan frekuensi berbeda hingga beberapa ratus hertz. Metode ini membutuhkan generator AC bertenaga khusus dengan modulasi berbeda.
Metode 1 dan 2 adalah yang paling mudah untuk dieksekusi dengan bantuan kode Dimmer dan program: dalam kedua kasus, ada kebutuhan sirkuit yang mendeteksi persimpangan nol dan dapat mengontrol triac.
Library AC Light Dimmer in Github
Note:
/************** * RobotDyn * Dimmer Library * ************** * * The following sketch is meant to define the dimming value through the serial port of the controller, * using USE_SERIAL.begin * void printSpace() function is used for adding of space after functional data * void loop() serial port evaluator, used to register and define values in dimmer.setPower(outVal); * * * ---------------------- OUTPUT & INPUT Pin table --------------------- * +---------------+-------------------------+-------------------------+ * | Board | INPUT Pin | OUTPUT Pin | * | | Zero-Cross | | * +---------------+-------------------------+-------------------------+ * | Lenardo | D7 (NOT CHANGABLE) | D0-D6, D8-D13 | * +---------------+-------------------------+-------------------------+ * | Mega | D2 (NOT CHANGABLE) | D0-D1, D3-D70 | * +---------------+-------------------------+-------------------------+ * | Uno | D2 (NOT CHANGABLE) | D0-D1, D3-D20 | * +---------------+-------------------------+-------------------------+ * | ESP8266 | D1(IO5), D2(IO4), | D0(IO16), D1(IO5), | * | | D5(IO14), D6(IO12), | D2(IO4), D5(IO14), | * | | D7(IO13), D8(IO15), | D6(IO12), D7(IO13), | * | | | D8(IO15) | * +---------------+-------------------------+-------------------------+ * | ESP32 | 4(GPI36), 6(GPI34), | 8(GPO32), 9(GP033), | * | | 5(GPI39), 7(GPI35), | 10(GPIO25), 11(GPIO26), | * | | 8(GPO32), 9(GP033), | 12(GPIO27), 13(GPIO14), | * | | 10(GPI025), 11(GPIO26), | 14(GPIO12), 16(GPIO13), | * | | 12(GPIO27), 13(GPIO14), | 23(GPIO15), 24(GPIO2), | * | | 14(GPIO12), 16(GPIO13), | 25(GPIO0), 26(GPIO4), | * | | 21(GPIO7), 23(GPIO15), | 27(GPIO16), 28(GPIO17), | * | | 24(GPIO2), 25(GPIO0), | 29(GPIO5), 30(GPIO18), | * | | 26(GPIO4), 27(GPIO16), | 31(GPIO19), 33(GPIO21), | * | | 28(GPIO17), 29(GPIO5), | 34(GPIO3), 35(GPIO1), | * | | 30(GPIO18), 31(GPIO19), | 36(GPIO22), 37(GPIO23), | * | | 33(GPIO21), 35(GPIO1), | | * | | 36(GPIO22), 37(GPIO23), | | * +---------------+-------------------------+-------------------------+ * | Arduino M0 | D7 (NOT CHANGABLE) | D0-D6, D8-D13 | * | Arduino Zero | | | * +---------------+-------------------------+-------------------------+ * | Arduino Due | D0-D53 | D0-D53 | * +---------------+-------------------------+-------------------------+ * | STM32 | PA0-PA15,PB0-PB15 | PA0-PA15,PB0-PB15 | * | Black Pill | PC13-PC15 | PC13-PC15 | * | BluePill | | | * | Etc... | | | * +---------------+-------------------------+-------------------------+ */ #include <RBDdimmer.h>// //#define USE_SERIAL SerialUSB //Serial for boards whith USB serial port #define USE_SERIAL Serial #define outputPin 7 #define zerocross 2 // for boards with CHANGEBLE input pins //dimmerLamp dimmer(outputPin, zerocross); //initialase port for dimmer for ESP8266, ESP32, Arduino due boards dimmerLamp dimmer(outputPin); //initialase port for dimmer for MEGA, Leonardo, UNO, Arduino M0, Arduino Zero int outVal = 0; void setup() { USE_SERIAL.begin(9600); dimmer.begin(NORMAL_MODE, ON); //dimmer initialisation: name.begin(MODE, STATE) USE_SERIAL.println("Dimmer Program is starting..."); USE_SERIAL.println("Set value"); } void printSpace(int val) { if ((val / 100) == 0) USE_SERIAL.print(" "); if ((val / 10) == 0) USE_SERIAL.print(" "); } void loop() { int preVal = outVal; if (USE_SERIAL.available()) { int buf = USE_SERIAL.parseInt(); if (buf != 0) outVal = buf; delay(200); } dimmer.setPower(outVal); // setPower(0-100%); if (preVal != outVal) { USE_SERIAL.print("lampValue -> "); printSpace(dimmer.getPower()); USE_SERIAL.print(dimmer.getPower()); USE_SERIAL.println("%"); } delay(50); }
0 Comments