AC Power control con Arduino

Lewis Loflin nos enseña en el video abajo como controlar una alimentación AC con un Arduino.

En el vídeo de arriba y el código de abajo tenemos una mirada en profundidad en el hardware para el uso de Arduino interrumpe para controlar la alimentación de CA a través de un triac. El uso de zero-crossing detector Arduino detecta el pulso luego calcular un retraso para controlar la salida de potencia a una carga.

arduino_power

/*
Purpose: to detect zero crossing pulse at INT0 digital pin 2,
which after delay switches on a triac.
Power output to triac activated by external switch.
*/

#define triacPulse 5
#define SW 4
#define aconLed 12

int val;

void setup() {
pinMode(2, INPUT);
digitalWrite(2, HIGH); // pull up
pinMode(triacPulse, OUTPUT);
pinMode(SW, INPUT);
digitalWrite(SW, HIGH);
pinMode(aconLed, OUTPUT);
digitalWrite(aconLed, LOW);
}

void loop() {
// check for SW closed
if (!digitalRead(SW)) {
// enable power
attachInterrupt(0, acon, FALLING);
// HV indicator on
digitalWrite(aconLed, HIGH);
} // end if
else if (digitalRead(SW)) {
detachInterrupt(0); // disable power
// HV indicator off
digitalWrite(aconLed, LOW);
} // else
} // end loop

// begin ac int routine
// delay() will not work!
void acon()
{
delayMicroseconds((analogRead(0) * 6) + 1000); // read AD1
digitalWrite(triacPulse, HIGH);
delayMicroseconds(200);
// delay 200 uSec on output pulse to turn on triac
digitalWrite(triacPulse, LOW);
}

Source: http://www.bristolwatch.com/arduino/arduino1.htm

Leave a Reply

Your email address will not be published. Required fields are marked *