Advertisement
babyyoda_

speedControl2

Feb 16th, 2021
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <IRremote.h>
  2. #include<EEPROM.h>
  3. #include<Timer1.h>
  4.  
  5. #define RECV_PIN 7
  6. IRrecv irrecv(RECV_PIN);
  7. decode_results results;
  8. unsigned long key_value = 0;
  9. #define motor A0
  10. #define buzzer 13
  11. volatile char i,oldval;
  12.  
  13. int fanval[5] = {75,70,40,30,20};
  14. int timeval;
  15.  
  16. boolean fan;
  17.  
  18. void setup()
  19. {
  20.     pinMode(motor,OUTPUT);
  21.     pinMode(2,INPUT);
  22.    
  23.     pinMode(buzzer,OUTPUT); digitalWrite(buzzer,LOW);
  24.     digitalWrite(buzzer,HIGH); delay(500); digitalWrite(buzzer,LOW);
  25.     pinMode(2,INPUT);
  26.     i = EEPROM.read(0);
  27.     irrecv.enableIRIn();
  28.     fan=false;
  29.     //attachInterrupt(0,dimmer,RISING);
  30. }
  31.  
  32. void dimmer()
  33. {
  34.   long int dimval;
  35.   dimval = timeval*75;
  36.   //dimval = dimval /1000;
  37.   startTimer1(dimval);
  38. }
  39.  
  40. ISR(timer1Event)
  41. {
  42.   //resetTimer1();
  43.   pauseTimer1();
  44.   digitalWrite(motor,HIGH);
  45.   delayMicroseconds(100);
  46.   digitalWrite(motor,LOW);
  47. }
  48.  
  49.  
  50. void ping()
  51. {
  52.     digitalWrite(buzzer,HIGH);
  53.     delay(100);
  54.     digitalWrite(buzzer,LOW);
  55. }
  56.  
  57.  
  58.  
  59. void loop()
  60. {
  61.    if(irrecv.decode(&results))
  62.    {
  63.     if (results.value == 0XFFFFFFFF)
  64.       results.value = key_value;
  65. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////        
  66.     if ((results.value == 0x8800325) || (results.value == 0x8800347) || (results.value == 0xD5A9E4D6) ||        // ON
  67.         (results.value == 0x8800) || (results.value == 0x69324D85) || (results.value == 0x8800303))  {
  68.       ping();
  69.       fan=true;
  70.       timeval = fanval[i];
  71.       if(fan)
  72.         attachInterrupt(0,dimmer,FALLING);
  73.     }
  74. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
  75.     if ((results.value == 0x88C0051) || (results.value == 0x3393ACC8) || (results.value == 0x1035C9DA) ||       // OFF
  76.         (results.value == 0x993AE700) || (results.value == 0x88C0)) {
  77.       ping();
  78.       fan=false;
  79.       detachInterrupt(0);
  80.     }
  81. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
  82.     if ((results.value == 0x88C000C) || (results.value == 0x88C0084) || (results.value == 0x9718DE1F) ||      // PLAMA
  83.         (results.value == 0x4392537E) || (results.value == 0xA7CEC72B) || (results.value == 0xFB766165) ||
  84.         (results.value == 0x9EFF2F3F)) {
  85.       ping();
  86.       fan=!fan;
  87.       if(fan)
  88.       {
  89.         timeval = fanval[i];
  90.         attachInterrupt(0,dimmer,FALLING);
  91.       }
  92.       else
  93.         detachInterrupt(0);
  94.         EEPROM.write(0,i);
  95.     }
  96. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////      
  97.     if ((results.value == 0x8810089)  || (results.value == 0x8810) ||                                 // JET COOL
  98.         (results.value == 0x3A398D8A) || (results.value == 0x71199AC5) ||
  99.         (results.value == 0xEE419856) || (results.value == 0x76105F79)) {
  100.       if(fan&&i<4)
  101.       {
  102.         ping();
  103.         i++;
  104.         if(i>=4)
  105.         {
  106.           ping();
  107.           ping();
  108.           i=4;
  109.         }
  110.         timeval = fanval[i];
  111.         EEPROM.write(0,i);
  112.        }
  113.     }
  114. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
  115.     if ((results.value == 0x8808350) || (results.value == 0x880830B) || (results.value == 0x880832D) ||           // FAN SPEED
  116.         (results.value == 0x8178C8D1) || (results.value == 0x1308451C) || (results.value == 0xA11244F4) ||
  117.         (results.value == 0xD0AE2562) || (results.value == 0x2F0AD5BB)) {
  118.       if(fan&&i!=0)
  119.       {
  120.         ping();
  121.         i--;
  122.         if(i<=0)
  123.         {
  124.           ping();
  125.           ping();
  126.           i=0;
  127.         }
  128.         timeval = fanval[i];
  129.         EEPROM.write(0,i);
  130.       }
  131.     }
  132. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
  133.     irrecv.resume(); // Receive the next value
  134.     key_value = results.value;
  135.   }
  136.   delay(10);
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement