Advertisement
LeventeDaradici

IR remote contolled relays - Arduino

Aug 1st, 2021
441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.63 KB | None | 0 0
  1. #include "IRremote.h"
  2. #include <LiquidCrystal_I2C.h>
  3.  
  4. int receiver = 11;
  5.  
  6. bool isOn1 = false;
  7. bool isOn2 = false;
  8. bool isOn3 = false;
  9. bool isOn4 = false;
  10.  
  11.  
  12. /*-----( Declare objects )-----*/
  13. IRrecv irrecv(receiver);     // create instance of 'irrecv'
  14. decode_results results;      // create instance of 'decode_results'
  15.  
  16. LiquidCrystal_I2C lcd(0x27,20,4);
  17.  
  18. void setup()
  19. {
  20.   lcd.init();
  21.   lcd.backlight();
  22.   lcd.setCursor(0,0);
  23.   lcd.print("Daradici Levente");
  24.   lcd.setCursor(7,1);
  25.  
  26.   lcd.setCursor(0,1);
  27.   lcd.print("       & Andras");
  28.   delay(3000);
  29.   lcd.clear();
  30.   lcd.setCursor(0,0);
  31.   lcd.print("Infrared remote");
  32.   lcd.setCursor(4,1);
  33.   lcd.print("Arduino");
  34.   delay(3000);
  35.   lcd.clear();
  36.   lcd.setCursor(1,0);
  37.   lcd.print("Press a button");
  38.   Serial.begin(9600);
  39.   Serial.println("IR Receiver Button Decode");
  40.   irrecv.enableIRIn(); // Start the receiver
  41.   pinMode(13, OUTPUT);
  42.  
  43.   pinMode(2, OUTPUT);
  44.   pinMode(3, OUTPUT);
  45.   pinMode(4, OUTPUT);
  46.   pinMode(5, OUTPUT);
  47.  
  48.   digitalWrite(2, HIGH);
  49.   digitalWrite(3, HIGH);
  50.   digitalWrite(4, HIGH);
  51.   digitalWrite(5, HIGH);
  52. }/*--(end setup )---*/
  53.  
  54.  
  55. void loop()  
  56. {
  57.   if (irrecv.decode(&results)) // have we received an IR signal?
  58.  
  59.   {
  60.     translateIR();
  61.     irrecv.resume(); // receive the next value
  62.   }  
  63. }
  64.  
  65. /*-----( Function )-----*/
  66. void translateIR() // takes action based on IR code received
  67.  
  68. // describing Remote IR codes
  69.  
  70. {
  71.  
  72.   switch(results.value)
  73.  
  74.   {
  75.  
  76.   case 0xFFA25D: Serial.println(" 1"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" 1");   if(isOn1){digitalWrite(2, HIGH); isOn1 = false;}else{digitalWrite(2, LOW); isOn1 = true;}   break;
  77.   case 0xFF629D: Serial.println(" 2"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" 2");   if(isOn2){digitalWrite(3, HIGH); isOn2 = false;}else{digitalWrite(3, LOW); isOn2 = true;}   break;
  78.   case 0xFFE21D: Serial.println(" 3"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" 3");   if(isOn3){digitalWrite(4, HIGH); isOn3 = false;}else{digitalWrite(4, LOW); isOn3 = true;}   break;
  79.   case 0xFF22DD: Serial.println(" 4"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" 4");   if(isOn4){digitalWrite(5, HIGH); isOn4 = false;}else{digitalWrite(5, LOW); isOn4 = true;}   break;
  80.   case 0xFF02FD: Serial.println(" 5"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" 5");   break;
  81.   case 0xFFC23D: Serial.println(" 6"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" 6");   break;
  82.   case 0xFFE01F: Serial.println(" 7"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" 7");   break;
  83.   case 0xFFA857: Serial.println(" 8"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" 8");   break;
  84.   case 0xFF906F: Serial.println(" 9"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" 9");   break;
  85.   case 0xFF6897: Serial.println(" *"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" *");   break;
  86.   case 0xFF9867: Serial.println(" 0"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" 0");   break;
  87.   case 0xFFB04F: Serial.println(" #"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(7, 1); lcd.print(" #");   break;
  88.   case 0xFF18E7: Serial.println(" UP"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(6, 1); lcd.print(" Up");   break;
  89.   case 0xFF10EF: Serial.println(" LEFT"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(5, 1); lcd.print(" Left");   break;
  90.   case 0xFF38C7: Serial.println(" -OK-"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(6, 1); lcd.print(" Ok");   break;
  91.   case 0xFF5AA5: Serial.println(" RIGHT"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(4, 1); lcd.print(" Right");   break;
  92.   case 0xFF4AB5: Serial.println(" DOWN"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(5, 1); lcd.print(" Down");   break;
  93.   //case 0xFFFFFFFF: Serial.println(" REPEAT"); lcd.clear(); lcd.setCursor(1, 0); lcd.print("Button pressed"); lcd.setCursor(2, 1); lcd.print(" Repeat");   break;  
  94.  
  95.   default:
  96.     Serial.println(results.value, HEX);
  97.     Serial.println(" other button   ");
  98.   }// End Case
  99.  
  100.   delay(500);
  101.  
  102.  
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement