Advertisement
babyyoda_

speedControl

Feb 16th, 2021
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <IRremote.h>
  2. #define RECV_PIN 7
  3. IRrecv irrecv(RECV_PIN);
  4. decode_results results;
  5. unsigned long key_value = 0;
  6.  
  7. //#include "TimerOne.h"
  8. char serialData = 0;
  9. int speed = 0;
  10. int buzzer = 13;
  11.  
  12. const byte ZCDinterruptPin = 2;
  13.  
  14.  
  15. void setup()
  16. {
  17.   irrecv.enableIRIn();
  18.   irrecv.blink13(false);
  19.   Serial.begin(9600);
  20.   pinMode(13, OUTPUT);
  21. //  Timer1.initialize(500000);         // Micro Seconds
  22.   pinMode(2, INPUT);
  23.   pinMode(A0, OUTPUT);
  24.  
  25. }
  26.  
  27. void callback()
  28. {
  29.   delayMicroseconds(speed); // read AD0
  30.   digitalWrite(A0, HIGH);
  31.   delayMicroseconds(50);  //delay 50 uSec on output pulse to turn on triac
  32.   digitalWrite(A0, LOW);
  33. }
  34.  
  35. void loop()
  36. {
  37.   if (irrecv.decode(&results)) {
  38.     if (results.value == 0XFFFFFFFF)
  39.       results.value = key_value;
  40.  
  41.     if ((results.value == 0x88C000C) || (results.value == 0x88C0084) || (results.value == 0x9718DE1F) ||        // LOW PLASMA
  42.         (results.value == 0x4392537E) || (results.value == 0xA7CEC72B) || (results.value == 0xFB766165) ||
  43.         (results.value == 0x9EFF2F3F)) {
  44.         beep();
  45.         speed = 2500;
  46.         attachInterrupt(digitalPinToInterrupt(ZCDinterruptPin), callback, RISING); // attach Interrupt at PIN2
  47.     }
  48.     if ((results.value == 0x8810089)  || (results.value == 0x8810) ||         // MID JET COOL
  49.         (results.value == 0x3A398D8A) || (results.value == 0x71199AC5) ||
  50.         (results.value == 0xEE419856) || (results.value == 0x76105F79)) {
  51.         beep();
  52.         speed = 4866;
  53.         attachInterrupt(digitalPinToInterrupt(ZCDinterruptPin), callback, RISING); // attach Interrupt at PIN2
  54.     }
  55.     if ((results.value == 0x8808350) || (results.value == 0x880830B) || (results.value == 0x880832D) ||       // HIGH FAN SPEED
  56.         (results.value == 0x8178C8D1) || (results.value == 0x1308451C) || (results.value == 0xA11244F4) ||
  57.         (results.value == 0xD0AE2562) || (results.value == 0x2F0AD5BB)) {
  58.         beep();
  59.         speed = 6000;
  60.         attachInterrupt(digitalPinToInterrupt(ZCDinterruptPin), callback, RISING); // attach Interrupt at PIN2
  61.     }
  62.     if ((results.value == 0x88C0051) || (results.value == 0x3393ACC8) || (results.value == 0x1035C9DA) ||       // POWER OFF
  63.         (results.value == 0x993AE700) || (results.value == 0x88C0)) {
  64.         beep();
  65.         detachInterrupt(digitalPinToInterrupt(ZCDinterruptPin));
  66.     }
  67.  
  68.     key_value = results.value;
  69.     irrecv.resume();
  70.   }
  71. }
  72.  
  73.  
  74. void beep(){
  75.   digitalWrite(13, HIGH);
  76.   delay(100);
  77.   digitalWrite(13, LOW);
  78. }
  79.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement