Advertisement
GuimedeJr

rgb_controller

Dec 5th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <IRremote.h>
  2. #include <AlaLedRgb.h>
  3.  
  4. //Pinos
  5. #define RECEPTOR_CR  7    // Recece dados do controle remoto
  6. #define LED_POWER   12    // Led de indicacao de On - Off
  7. #define RED 11
  8. #define GREEN 9
  9. #define BLUE 10
  10.  
  11.  
  12. //Config Sensores
  13. IRrecv receiver(RECEPTOR_CR);
  14. decode_results results;
  15.  
  16. // Btns decodificados do Controle Remoto
  17. #define btn_power 0xF124B0B6
  18. #define btn_red 0xE23B4151
  19. #define btn_green 0xCE5541E4
  20. #define btn_blue 0x79FB9E54
  21. #define btn_white 0xC0C52AFF
  22.  
  23. #define btn_1_flash 0x207BEF0F
  24.  
  25.  
  26. // Variaveis de Toggle
  27. boolean is_power = false;
  28. boolean cor_estatica = false;
  29. boolean flash_leds = false;
  30. boolean chave_flash = false;
  31.  
  32. // Variaveis de Tempo
  33. unsigned long tempoAnteriorFlash = 0; // Armazena o último momento em que o Flash foi atualizado
  34. const long PERIODO_FLASH = 300;
  35. unsigned long tempoAtualFlash;
  36.  
  37. void setup() {
  38.  
  39.   Serial.begin(9600);
  40.   Serial.println("Controlador Testado!");
  41.  
  42.   //Pinos
  43.   pinMode(LED_POWER, OUTPUT);
  44.   pinMode(RED, OUTPUT);
  45.   pinMode(GREEN, OUTPUT);
  46.   pinMode(BLUE, OUTPUT);
  47.  
  48.   //Config Sensores
  49.   receiver.enableIRIn();
  50.  
  51.  
  52. }
  53.  
  54. void loop() {
  55.  
  56.   if (receiver.decode(&results)) {
  57.  
  58.     unsigned int value = results.value;
  59.  
  60.     Serial.print("Valor lido : ");
  61.     Serial.println(results.value, HEX);
  62.  
  63.     switch (value) {
  64.  
  65.       case btn_power:
  66.         desligar();
  67.         if (is_power) {
  68.           digitalWrite(LED_POWER, HIGH);
  69.           is_power = false;
  70.           cor_estatica = true;
  71.           chave_flash = true;
  72.         } else {
  73.           digitalWrite(LED_POWER, LOW);
  74.           is_power = true;
  75.           cor_estatica = false;
  76.           chave_flash = false;
  77.           desligar();
  78.         }
  79.         break;
  80.  
  81.       case btn_red:
  82.         desligar();
  83.         if (cor_estatica) {
  84.           Serial.println("vermelho");
  85.           setColor(255, 0, 0);
  86.         }
  87.         break;
  88.  
  89.       case btn_green:
  90.         desligar();
  91.         if (cor_estatica) {
  92.           Serial.println("verde");
  93.           setColor(0, 255, 0);
  94.         }
  95.         break;
  96.  
  97.       case btn_blue:
  98.         desligar();
  99.         if (cor_estatica) {
  100.           Serial.println("azul");
  101.           setColor(0, 0, 255);
  102.         }
  103.         break;
  104.  
  105.       case btn_white:
  106.         desligar();
  107.         if (cor_estatica) {
  108.           Serial.println("amarelo");
  109.           setColor(255, 255, 255);
  110.         }
  111.         break;
  112.  
  113.       case btn_1_flash:
  114.         int r, g, b;
  115.         if (chave_flash) {
  116.  
  117.           do {
  118.  
  119.             unsigned long tempoAtualFlash = millis();
  120.             if (tempoAtualFlash - tempoAnteriorFlash >= PERIODO_FLASH) {
  121.  
  122.               tempoAnteriorFlash = tempoAtualFlash;
  123.  
  124.               if (!flash_leds) {
  125.                 Serial.println("AAA");
  126.                 flash_leds = true;
  127.                 r = 255;
  128.                 g = 0;
  129.                 b = 255;
  130.               }
  131.               else {
  132.                 Serial.println("BBB");
  133.                 flash_leds = false;
  134.                 r = 127;
  135.                 g = 255;
  136.                 b = 0;
  137.               }
  138.               setColor(r, g, b);
  139.               receiver.resume();
  140.               unsigned int value2 = results.value;
  141.               Serial.println(value2);
  142.               continue;
  143.             }while(1==1) // essa é uma gambiarra provisoria para validar o funcionamento do blink
  144.  
  145.           }
  146.         }  
  147.             break;
  148.    
  149.  
  150.     }
  151.  
  152.     //Serial.println(value);
  153.     receiver.resume();
  154.  
  155.   }
  156.  
  157. }
  158.  
  159. //Imprime a cor selecionada
  160. void setColor(int vermelho, int verde, int azul) {
  161.   analogWrite(RED, vermelho);
  162.   analogWrite(GREEN, verde);
  163.   analogWrite(BLUE, azul);
  164. }
  165.  
  166. void ligar() {
  167.  
  168.   setColor(255, 0, 0);
  169.   delay(1000);
  170.   setColor(0, 0, 0);
  171.  
  172.   setColor(0, 255, 0);
  173.   delay(1000);
  174.   setColor(0, 0, 0);
  175.  
  176.   setColor(0, 0, 255);
  177.   delay(1000);
  178.   setColor(0, 0, 0);
  179.  
  180. }
  181.  
  182. void desligar() {
  183.   setColor(0, 0, 0);
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement