Advertisement
babyyoda_

SpeedControlSerial

Feb 17th, 2021
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define Relay 8
  2.  
  3. #include<Timer1.h>
  4.  
  5. #include <IRremote.h>
  6. int RECV_PIN = 7;
  7. IRrecv irrecv(RECV_PIN);
  8. unsigned long key_value = 0;
  9. decode_results results;
  10.  
  11. #define buzzer 13
  12. int fanval[5] = {85,40,10};
  13. int timeval;
  14. bool interruptState = false;
  15. boolean  fan;
  16. char data = 0;
  17.  
  18. void setup()
  19. {
  20.   Serial.begin(9600);
  21.   irrecv.enableIRIn();
  22.   irrecv.blink13(false);
  23.  
  24.   pinMode(A0, OUTPUT);
  25.   pinMode(2, INPUT);
  26.   pinMode(Relay, OUTPUT);
  27.  
  28.   pinMode(buzzer, OUTPUT);
  29.   digitalWrite(buzzer, LOW);
  30.  
  31.   digitalWrite(buzzer, HIGH);
  32.   delay(150);
  33.   digitalWrite(buzzer, LOW);
  34.   fan = false;
  35. }
  36.  
  37. void dimmer()
  38. {
  39.   long int dimval;
  40.   dimval = timeval * 75;
  41.   startTimer1(dimval);
  42. }
  43.  
  44. ISR(timer1Event)
  45. {
  46.   //resetTimer1();
  47.  
  48.   pauseTimer1();
  49.   digitalWrite(A0,HIGH);
  50.   delayMicroseconds(100);
  51.   digitalWrite(A0,LOW);
  52.  
  53.  
  54. }
  55.  
  56. void ping()
  57. {
  58.   digitalWrite(buzzer, HIGH);
  59.   delay(100);
  60.   digitalWrite(buzzer, LOW);
  61. }
  62.  
  63.  
  64.  
  65. void loop()
  66. {
  67.   if (Serial.available() > 0);
  68.   {
  69.     data = Serial.read();
  70.     if(data == '1'){
  71.       digitalWrite(Relay, LOW);
  72.       ping();
  73.       //TODO
  74.       digitalWrite(Relay, LOW);
  75.       detachInterrupt(0);
  76.       interruptState = false;
  77.     }
  78. ////////////////////////////////////////////////////////////////////////////////////////////////////////
  79.     if(data == '2'){
  80.       ping();
  81.       digitalWrite(Relay, HIGH);
  82.       timeval = fanval[0];                
  83.       if(interruptState == false){
  84.         attachInterrupt(0,dimmer,FALLING);
  85.         interruptState = true;
  86.       }
  87.     }
  88. ////////////////////////////////////////////////////////////////////////////////////////////////////////
  89.     if(data == '3'){
  90.       ping();
  91.       digitalWrite(Relay, HIGH);
  92.       timeval = fanval[1];
  93.       if(interruptState == false){
  94.         attachInterrupt(0,dimmer,FALLING);
  95.         interruptState = true;
  96.       }
  97.     }
  98. ////////////////////////////////////////////////////////////////////////////////////////////////////////
  99.     if(data == '4'){
  100.       ping();
  101.       digitalWrite(Relay, HIGH);
  102.       timeval = fanval[2];
  103.       if(interruptState == false){
  104.         attachInterrupt(0,dimmer,FALLING);
  105.         interruptState = true;
  106.       }
  107.     }
  108. ////////////////////////////////////////////////////////////////////////////////////////////////////////    
  109.   }
  110.   delay(10);
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement