测试程序功能:
当交流电每个周期过零时,模块的OUT脚就输出一个上升沿脉冲,触发ARDUNIO产生一次中断,中断程序就计数一次。每50次,即1秒,PIN13上LED闪一下。
程序如下:
const byte ledPin = 13;
const byte interruptPin = 2;
volatile byte state = LOW;
unsigned int i=0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), blink, CHANGE);
}
void loop() {
digitalWrite(ledPin, state);
}
void blink() {
i=i+1;
if (i>=50) { state = !state; i=0;}
}
|