DISCLAIMER : Bermain dengan listrik PLN 220 volt adalah berbahaya, selalu gunakan sarung tangan kain untuk menghindari terjadinya sengatan listrik
Untuk memperlancar pemahaman pada topik kali ini, diharapkan membaca dulu :
- Triac sebagai switch disini
- Zero Crossing Detector ESP8266 disini
Rangkaian yang akan saya gunakan sudah banyak beredar di berbagai sumber di internet, terdiri dari optotriac MOC3021, Triac BTXX dan beberapa resistor pembatas arus. Rangkaian pda umumnya seperti ini :
Script yang akan kita gunakan kali ini cukup sederhana saja, hanya akan memberikan delay beberapa waktu saat zero crossing terdeteksi lalu memutus triacs. Jika delay firing OFF nya lama maka lampu akan terang dan jika cepat saja maka akan menyebabkan triac hidup lebih sebentar dalam 1 periode sinus AC nya.
#include<NoDelay.h> #define zcd_pin 3 //sesuaikan dengan pin zcd kamu #define triac_pin 4 //sesuaikan dengan pin triac kamu noDelay delaytime(500);//ubah waktu perubahan kecerahan int x,y = 0; bool naik = true; void setup() { pinMode(zcd_pin, INPUT_PULLUP); pinMode(triac_pin, OUTPUT); attachInterrupt(zcd_pin, deteksi, FALLING); // attach Interrupt } void loop() { if(delaytime.update())//buat tambah variabel x { if(naik) x+=10; else x=-10; if(x>=100) naik = false; else (x <=0 ) naik = true; y= map(x,0,100, 200,7200); // merubah x ke range y } } ICHACE_RAM_ATTR void deteksi() { delayMicroseconds(y); digitalWrite(triac_pin, HIGH); delayMicroseconds(50); //delay 50 uSec on output pulse to turn on triac digitalWrite(triac_pin, LOW); }
Dan efek apakah yang muncul pada lampu? Silahkan ubah-ubah angka yang ada pada script untuk membuat pembaca lebih mengerti maksud dari script diatas.
Jika pembaca sering main di blog ini, maka membuat otomasi lampu IOT seperti gambar diatas akan menjadi sangat mudah seperti yang saya rangkum disini.
SELAMAT BELAJAR.