Advertisement
skaramicke

IRlight

Nov 16th, 2015
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.24 KB | None | 0 0
  1. #include <IRremote.h>
  2. int power;
  3. int brightness;
  4. int target;
  5. int saved_target;
  6.  
  7. int previous_value;
  8.  
  9. int out=9; //connect your LED to pin 9
  10. int steps=5; //dimmer steps, vary those to increase/decrease the steps between full brightness and turned off
  11. int RECV_PIN = 11; //data out of IR receiver connects to pin 11
  12.  
  13. int toggle_1 = 2137;
  14. int toggle_2 = 89;
  15. int brighter_1 = 2136;
  16. int brighter_2 = 88;
  17. int darker_1 = 2161;
  18. int darker_2 = 113;
  19.  
  20. IRrecv irrecv(RECV_PIN);
  21.  
  22. decode_results results;
  23.  
  24. void setup(){
  25.       Serial.begin(9600);
  26.       irrecv.enableIRIn(); // start the receiver
  27.       previous_value = 0;
  28.       power = 0;
  29.       target = 0;
  30.       saved_target = 0;
  31.       brightness = 0;
  32.       pinMode(out,OUTPUT);
  33.       digitalWrite(out, brightness);
  34. }
  35.  
  36. void loop() {
  37.       if (irrecv.decode(&results)) {
  38.             Serial.println(results.value);
  39.      
  40.             if (results.value == toggle_1 || results.value == toggle_2) {
  41.                   if (results.value != previous_value) {
  42.                         if (power == 0) {
  43.                               Serial.println("- on");
  44.                           if (saved_target <= 5) {
  45.                                     saved_target = 255;
  46.                               }
  47.                               power = 1;
  48.                         }
  49.                         else {
  50.                               Serial.println("- off");
  51.                               power = 0;
  52.                         }
  53.                   }
  54.             }
  55.      
  56.             previous_value = results.value;
  57.  
  58.             if (power == 1) {
  59.                   if ((results.value == brighter_1 || results.value == brighter_2) && brightness < 255) {
  60.                         Serial.println("brighter");
  61.                         saved_target += steps;
  62.                         if (saved_target > 255) {
  63.                               saved_target = 255;
  64.                         }
  65.                   }
  66.                  
  67.                   if ((results.value == darker_1 || results.value == darker_2) && brightness > 0) {
  68.                         Serial.println("darker");
  69.                         saved_target -= steps;
  70.                         if (saved_target < 0) {
  71.                               saved_target = 0;
  72.                         }
  73.                   }
  74.            
  75.             }
  76.            
  77.             irrecv.resume();
  78.       }
  79.      
  80.       if (power == 1) {
  81.             target = saved_target;
  82.       }
  83.       else {
  84.             target = 0;
  85.       }
  86.      
  87.       if (brightness < target) {
  88.             Serial.print("fading up from ");
  89.             Serial.print(brightness);
  90.             Serial.print(" towards ");
  91.             Serial.print(target);
  92.             brightness += steps;
  93.             if (brightness > target) {
  94.                   brightness = target;
  95.             }
  96.             digitalWrite(out, brightness);
  97.       }
  98.       else if (brightness > target) {
  99.             Serial.print("fading down from ");
  100.             Serial.print(brightness);
  101.             Serial.print(" towards ");
  102.             Serial.print(target);
  103.             brightness -= steps;
  104.             if (brightness < target) {
  105.                   brightness = target;
  106.             }
  107.             digitalWrite(out, brightness);
  108.       }
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement