C Program IR Remote

How to write a C Program IR Remote in C programming Language ?


  1. #include <IRremote.h>
  2. int timing = 5;
  3. int mode = 0;
  4. int rp = 6;
  5. int rv = 0;
  6. int gp = 10;
  7. int gv = 0;
  8. int bp = 9;
  9. int bv = 0;
  10. int RECV_PIN = 11;
  11. int resetpin = 8;
  12. IRrecv irrecv(RECV_PIN);
  13. decode_results results;
  14.  
  15. void setup() {
  16.   irrecv.enableIRIn();
  17. }
  18.  
  19. void loop() {
  20.   if (mode == 1) {
  21.     fading();
  22.   }
  23.   if (mode == 0){
  24.     if (irrecv.decode(&results)){
  25.       if (results.value == 1) {
  26.         if (rv == 0) {
  27.           rv = 255;
  28.         }
  29.         else {
  30.           rv = 0;
  31.         }
  32.       }
  33.       if (results.value == 2) {
  34.         if (gv == 0) {
  35.           gv = 255;
  36.         }
  37.         else {
  38.           gv = 0;
  39.         }
  40.       }
  41.       if (results.value == 3) {
  42.         if (bv == 0) {
  43.           bv = 255;
  44.         }
  45.         else {
  46.           bv = 0;
  47.         }
  48.       }
  49.       if (results.value == 9767) {
  50.         mode = 1;
  51.         rv = 0;
  52.         bv = 0;
  53.         gv = 0;
  54.       }
  55.       irrecv.resume();
  56.       analogWrite(rp, rv);
  57.       analogWrite(bp, bv);
  58.       analogWrite(gp, gv);
  59.     }
  60.   }
  61. }
  62.  
  63. void fading() {
  64.   if (mode == 1) {
  65.     if (rv == 0 && bv == 0 && gv ==0){
  66.       for (rv == 0; rv <= 254; rv++){
  67.         analogWrite(rp, rv);
  68.         delay(timing);
  69.       }
  70.     }
  71.   }
  72.   if (mode == 1) {
  73.     if (rv == 255 && bv == 0 && gv ==0){
  74.       for (bv == 0; bv <= 254; bv++){
  75.         analogWrite(bp, bv);
  76.         delay(timing);
  77.       }
  78.     }
  79.   }
  80.   if (mode == 1) {
  81.     if (rv == 255 && bv == 255 && gv ==0){
  82.       for (rv == 255; rv >= 1; rv--){
  83.         analogWrite(rp, rv);
  84.         delay(timing);
  85.       }
  86.     }
  87.   }
  88.   if (mode == 1) {
  89.     if (rv == 0 && bv == 255 && gv ==0){
  90.       for (gv == 0; gv <= 254; gv++){
  91.         analogWrite(gp, gv);
  92.         delay(timing);
  93.       }
  94.     }
  95.   }
  96.   if (mode == 1) {
  97.     if (rv == 0 && bv == 255 && gv ==255){
  98.       for (bv == 255; bv >= 1; bv--){
  99.         analogWrite(bp, bv);
  100.         delay(timing);
  101.       }
  102.     }
  103.   }
  104.   if (mode == 1) {
  105.     if (rv == 0 && bv == 0 && gv ==255){
  106.       for (rv == 0; rv <=254; rv++){
  107.         analogWrite(rp, rv);
  108.         delay(timing);
  109.       }
  110.     }
  111.   }
  112.   if (mode == 1) {
  113.     if (rv == 255 && bv == 0 && gv ==255){
  114.       for (bv == 0; bv <=254; bv++){
  115.         analogWrite(bp, bv);
  116.         delay(timing);
  117.       }
  118.     }
  119.   }
  120.   if (mode == 1) {
  121.     if (rv == 255 && bv == 255 && gv ==255){
  122.       for (bv == 255; bv >= 1; bv--){
  123.         rv--;
  124.         gv--;
  125.         analogWrite(rp, rv);
  126.         analogWrite(bp, bv);
  127.         analogWrite(gp, gv);
  128.         delay(timing);
  129.       }
  130.     }
  131.   }
  132. }
  133.  
  134. void ircheck() {
  135.   if (irrecv.decode(&results)) {
  136.     if (results.value == 9767) {
  137.       mode = 0;
  138.       irrecv.resume();
  139.       pinMode(8, OUTPUT);
  140.     }
  141.   }
  142. }


Learn More :