Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

Jumat, 08 Desember 2023

Dimmer Arus AC - Mendeteksi Zero Cross Menggunakan ESP8266

 


DISCLAIMER : Bermain dengan listrik PLN 220 volt adalah berbahaya, selalu gunakan sarung tangan kain untuk menghindari terjadinya sengatan listrik


Gambar diatas adalah perubahan sinyal yang ingin kita capai untuk mendeteksi yang dinamakan Zero crossing dari gelombang sinusoidal listrik AC.  Perhatikan gambar rangkaian berikut dan akan saya jelaskan prinsip kerjanya.



  1. Resistor 47K berjumlah 2 buah sebagai pembatas arus sehingga dapat bekerja pada tegangan AC yang dapat ditolelir oleh dioda bridge
  2. Dioda bridge berfungsi untuk menjadi rectifier merubah sinus menjadi full wave rectified AC dimana saat sinus berada di tegangan negatif akan dibalik menjadi positif
  3. Optocoupler yang dipilihkan bisa berjenis 4N25 / PC817 yang kemudian akan mendeteksi ketika sinyal sinus berada disekitar 0 volt yang menyebabkan led internalnya OFF
  4. Resistor pull up 10K akan menyebabkan kondisi logic ZCD = 0 saat LED ON dan ketika LED OFF (pada optocoupler) maka akan menyebabkan pulse pada output ZCD yang menuju microcontroller.


- Interupt pada ESP8266 


ESP 8266 memiliki kecepatan prosesor yang cukup tinggi bila dibandingkan seri arduino, sehingga  portnya kebanyakan dapat digunakan sebagai input interrupt. Jika menggunakan arduino uno berbasis mega328 maka pin interruptnya hanya ada di pin I/O nomer 2. 

Untuk belajar konsep interrupt dapat dibaca pada tulisan saya sebelumnya disini.

Ada yang spesial pada interrupt di ESP8266 dimana function untuk melakukan interrupt harus disediakan di RAM, sehingga jika menggunakan contoh pada arduino akan terjadi overflow dan ram akan error. Untuk itu dibutuhkan penambahan ini :


ICHACE_RAM_ATTR void perintah_zcd()
{

// masukkan perintah eksekusi interupt jika memakai sketch jadul  
    
}

IRAM_ATTR void perintah_zcd()
{

// masukkan perintah eksekusi interupt jika sketch 3.o keatas  
    
}


Jadi script contoh yang lengkap untuk pendeteksi Zero Crossing sebagai berikut:


#define zcd_pin 3 //sesuaikan dengan pin esp kamu


int x = 0;

void setup() {
  Serial.begin(9600);
  pinMode(zcd_pin, INPUT_PULLUP);
  attachInterrupt(zcd_pin, deteksi, FALLING); // attach Interrupt 
  
}

void loop() {

 
}

ICHACE_RAM_ATTR void deteksi()
{
   x++;
   Serial.print("ZCD terdeteksi ke: ");
   Serial.println(x);
 
}

Sambungkan rangkaian pendeteksi ZCD ke pin ESP8266 dan upload script diatas dan lihatlah pada serial monitor kamu.
Share:

0 komentar:

Posting Komentar

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (12) antares (8) arduino (26) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (25) euro2020 (13) gcc (1) iklan (1) infrared (2) Input Output (3) iot (58) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (7) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (7) radio (26) raspberry pi (4) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) transistor (2) troubleshoot (3) tulisan (93) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika