/*
* Firing setiap zero crossing.
* Sekadar untuk pengujian sinkronisasi dengan ZCD.
*
*/
const int PIN_ZCD = 2; // Pin interrupt 2 atau 3
const int PIN_GATE_TRIAC = 3;
void setup() {
pinMode(PIN_GATE_TRIAC, OUTPUT);
digitalWrite(PIN_GATE_TRIAC, LOW);
//Pengawalan interrupt
attachInterrupt(digitalPinToInterrupt(PIN_ZCD), zeroCrossISR, RISING);
}
void loop() {
// Semua pekerjaan ada di blok kode interrupt, jaga sependek mungkin.
}
void zeroCrossISR() {
digitalWrite(PIN_GATE_TRIAC, HIGH);
delayMicroseconds(1000); // Sesuaikan agar cukup waktu untuk arus bisa memicu Triac.
digitalWrite(PIN_GATE_TRIAC, LOW);
}
Comments
0 B
|👍
/👎