Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <IRremote.h>
- #define triacPulse A0
- #define ZCD 2 // Zero Cross Detector
- #define RECV_PIN 7 // IR Pin
- IRrecv irrecv(RECV_PIN);
- decode_results results;
- unsigned long key_value = 0;
- const byte ZCDinterruptPin = 2;
- int x = 0;
- void setup() {
- Serial.begin(9600);
- irrecv.enableIRIn();
- irrecv.blink13(false);
- pinMode(ZCD, INPUT_PULLUP);
- pinMode(triacPulse, OUTPUT);
- }
- void loop() {
- if (irrecv.decode(&results)) {
- if (results.value == 0XFFFFFFFF)
- results.value = key_value;
- if (results.value == 0x88C000C) { // LOW
- detachInterrupt(digitalPinToInterrupt(ZCDinterruptPin));
- motorLOW();
- }
- if (results.value == 0x88C0084) { // MED
- detachInterrupt(digitalPinToInterrupt(ZCDinterruptPin));
- motorMED();
- }
- if (results.value == 0x880834F) { // HIGH
- detachInterrupt(digitalPinToInterrupt(ZCDinterruptPin));
- motorHIGH();
- }
- key_value = results.value;
- irrecv.resume();
- }
- }
- void motorLOW(){
- attachInterrupt(digitalPinToInterrupt(ZCDinterruptPin), acon, FALLING); // attach Interrupt at PIN2
- x = 6600; // LOW
- }
- void motorMED(){
- attachInterrupt(digitalPinToInterrupt(ZCDinterruptPin), acon, FALLING); // attach Interrupt at PIN2
- x = 4866; // MED
- }
- void motorHIGH(){
- attachInterrupt(digitalPinToInterrupt(ZCDinterruptPin), acon, FALLING); // attach Interrupt at PIN2
- x = 2533; // HIGH
- }
- void acon()
- {
- // detachInterrupt(digitalPinToInterrupt(ZCDinterruptPin));
- delayMicroseconds(x); // read AD0
- digitalWrite(triacPulse, HIGH);
- delayMicroseconds(50); //delay 50 uSec on output pulse to turn on triac
- digitalWrite(triacPulse, LOW);
- detachInterrupt(digitalPinToInterrupt(ZCDinterruptPin));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement