Skip to main content

Cara menggunakan Modul Dimmer AC dengan Arduino

Jadi mari kita lihat Dimmer secara umum:
Dimmer - perangkat elektronik yang dirancang untuk mengubah daya listrik (power regulator). Biasanya digunakan untuk mengatur kecerahan cahaya yang dipancarkan oleh lampu pijar atau LED.

Biasanya dimmer ditemukan sebagai saklar lampu, hanya saja tidak dengan tombol hidup dan mati. Dan dengan tombol penyesuaian kecerahan, dapat digunakan untuk menambah dan mengurangi kecerahan bola lampu, misalnya.

Tetapi penting untuk dipahami bahwa semua ini hanya akan bekerja dengan lampu pijar, tidak akan bekerja dengan lampu hemat energi.

Menyesuaikan kecerahan itu bagus, tetapi Anda harus terus-menerus mendekati sakelar dan menyalakan kecerahan. Tetapi untuk mengatasi masalah ini, ada dimmer digital yang akan dikendalikan oleh mikrokontroler dari kejauhan.

Sebenarnya modul ini dirancang untuk ini.

Modul Peredupan Cahaya AC ini dari RobotDyn dan mereka memiliki skema modul ini di situs web, yang akan saya berikan:

Skema:
Pinout:
Ketika saya memesan modul ini, saya pikir semuanya sederhana, saya akan menghubungkan plus dan minus dari Arduino dan kami akan memberikan sinyal ke cahaya untuk mengubah kecerahan. Tapi ternyata, semuanya jauh lebih rumit.

Modul ini memiliki 4 pin yang terhubung ke Arduino:

Vcc ~ +5v

Gnd ~ -5v

PWM ~ PWM

Z-C ~ Pendeteksi Zero-Cross

Pin Zero-Cross adalah pin interupsi. Pada akhirnya, saya menemukan sketsa yang berfungsi menampilkan karya dari dimmer, dengan mulus menyalakan dan mematikan bola lampu. sebenarnya dari contoh ini, Anda dapat melangkah lebih jauh dan melompat melakukan segalanya untuk diri sendiri.


#include  <TimerOne.h>          // Avaiable from http://www.arduino.cc/playground/Code/Timer1


volatile int i=0;               // Variable to use as a counter volatile as it is in an interrupt


volatile boolean zero_cross=0;  // Boolean to store a "switch" to tell us if we have crossed zero


int AC_pin = 3;                // Output to Opto Triac


int dim = 0;                    // Dimming level (0-128)  0 = on, 128 = 0ff


int inc=1;                      // counting up or down, 1=up, -1=down




int freqStep = 75;    // This is the delay-per-brightness step in microseconds.


                      // For 60 Hz it should be 65


// It is calculated based on the frequency of your voltage supply (50Hz or 60Hz)


// and the number of brightness steps you want.


//


// Realize that there are 2 zerocrossing per cycle. This means


// zero crossing happens at 120Hz for a 60Hz supply or 100Hz for a 50Hz supply.




// To calculate freqStep divide the length of one full half-wave of the power


// cycle (in microseconds) by the number of brightness steps.


//


// (120 Hz=8333uS) / 128 brightness steps = 65 uS / brightness step


// (100Hz=10000uS) / 128 steps = 75uS/step




void setup() {                                      // Begin setup


  pinMode(AC_pin, OUTPUT);                          // Set the Triac pin as output


  attachInterrupt(0, zero_cross_detect, RISING);    // Attach an Interupt to Pin 2 (interupt 0) for Zero Cross Detection


  Timer1.initialize(freqStep);                      // Initialize TimerOne library for the freq we need


  Timer1.attachInterrupt(dim_check, freqStep);     


  // Use the TimerOne Library to attach an interrupt


  // to the function we use to check to see if it is


  // the right time to fire the triac.  This function


  // will now run every freqStep in microseconds.                                           


}




void zero_cross_detect() {   


  zero_cross = true;               // set the boolean to true to tell our dimming function that a zero cross has occured


  i=0;


  digitalWrite(AC_pin, LOW);       // turn off TRIAC (and AC)


}                                




// Turn on the TRIAC at the appropriate time


void dim_check() {                  


  if(zero_cross == true) {             


    if(i>=dim) {                    


      digitalWrite(AC_pin, HIGH); // turn on light      


      i=0;  // reset time step counter                        


      zero_cross = false; //reset zero cross detection


    }


    else {


      i++; // increment time step counter                    


    }                               


  }                                 


}                                  




void loop() {                       


  dim+=inc;


  if((dim>=128) || (dim<=0))


    inc*=-1;


  delay(18);


}


Diagram koneksi:

Modul Dimmer Cahaya AC Arduino
+5 VCC
GND GND
pin 3 PWM
pin 2 Z-C


Jika Anda tahu bagaimana pin interupsi bekerja dan Anda telah memenangkan modul ini, silakan tulis di komentar.

Popular posts from this blog

Tutorial ESP8266 (ESP-01): PT1 upload sketch arduino ke ESP8266-01

Dari sekian banyak varian ESP8266, dalam seri tulisan ini akan dibahas mengenai ESP-01, yang sebenarnya juga terdiri dari dua versi, yang terbaru adalah versi pemutakhiran dengan peningkatan dari kapasitas RAM hingga 1MB (dari yang sebelumnya hanya setengahnya, 0.5MB) ESP-01 hanya memiliki 8 pin kaki yang diilustrasikan sebagaimana gambar berikut VCC Terhubung dengan catu daya 3.3V GPIO0 dan GPIO2 adalah port general purpose. GPIO0 dapat digunakan untuk menentukan mode operasi terhadap modul (mode pemrograman atau normal). Untuk mode normal GPIO0 harus terhubung ke 3.3V, namun jika ingin melakukan flashing (mode pemrograman) maka GPIO0 harus digroundkan. U0RXD(GPIO2) : Port receiver ntuk komunikasi serial U0TXD (GPIO1_: Port transceiver untuk komunikasi serial CH_PD: Chip Enable. Harus bernilai 3.3V untuk operasi normal EXT_RSTB: harus bernilai 3.3V untuk operasi normal dan 0V untuk reset GND Ground #NOTE: diperhatikan adalah tegangan kerja modul ini berada pada 3.3 V yang merupak...

Menambahkan Board ESP8226 ke Arduino IDE

Ketika kamu pertama Install Arduino IDE tidak akan langsung ada pilihan  Board ESP8266  di menu Tools,  Melainkan harus kita add sendiri ke Arduino IDE nya. Ada 2 Cara untuk Menambahkan Board ESP8266 ke Arduino IDE. Salah satu caranya adalah seperti yang sudah kamu banyak temukan di Google, yaitu dengan: 1. Pada  Arduino IDE  masuk ke menu  File , terus pilih  Preferences . 2. Lalu pada  Additional Board Manager URLs: , masukan link  http://arduino.esp8266.com/stable/package_esp8266com_index.json lalu klik  Ok. 3. Lalu ke menu  Tools , klik  Board , lalu klik  Boards Manager… 4. di  Filter your search…  atau dikolom pencarian masukan  esp , klik  esp8266  by  ESP8266 Community , klik  Install. 5. Tunggu sampai proses  Install  selesai, lalu tekan  Close. cara kedua cek di sini