Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <IRremote.h>
- #include <AlaLedRgb.h>
- //Pinos
- #define RECEPTOR_CR 7 // Recece dados do controle remoto
- #define LED_POWER 12 // Led de indicacao de On - Off
- #define RED 11
- #define GREEN 9
- #define BLUE 10
- //Config Sensores
- IRrecv receiver(RECEPTOR_CR);
- decode_results results;
- // Btns decodificados do Controle Remoto
- #define btn_power 0xF124B0B6
- #define btn_red 0xE23B4151
- #define btn_green 0xCE5541E4
- #define btn_blue 0x79FB9E54
- #define btn_white 0xC0C52AFF
- #define btn_1_flash 0x207BEF0F
- // Variaveis de Toggle
- boolean is_power = false;
- boolean cor_estatica = false;
- boolean flash_leds = false;
- boolean chave_flash = false;
- // Variaveis de Tempo
- unsigned long tempoAnteriorFlash = 0; // Armazena o último momento em que o Flash foi atualizado
- const long PERIODO_FLASH = 300;
- unsigned long tempoAtualFlash;
- void setup() {
- Serial.begin(9600);
- Serial.println("Controlador Testado!");
- //Pinos
- pinMode(LED_POWER, OUTPUT);
- pinMode(RED, OUTPUT);
- pinMode(GREEN, OUTPUT);
- pinMode(BLUE, OUTPUT);
- //Config Sensores
- receiver.enableIRIn();
- }
- void loop() {
- if (receiver.decode(&results)) {
- unsigned int value = results.value;
- Serial.print("Valor lido : ");
- Serial.println(results.value, HEX);
- switch (value) {
- case btn_power:
- desligar();
- if (is_power) {
- digitalWrite(LED_POWER, HIGH);
- is_power = false;
- cor_estatica = true;
- chave_flash = true;
- } else {
- digitalWrite(LED_POWER, LOW);
- is_power = true;
- cor_estatica = false;
- chave_flash = false;
- desligar();
- }
- break;
- case btn_red:
- desligar();
- if (cor_estatica) {
- Serial.println("vermelho");
- setColor(255, 0, 0);
- }
- break;
- case btn_green:
- desligar();
- if (cor_estatica) {
- Serial.println("verde");
- setColor(0, 255, 0);
- }
- break;
- case btn_blue:
- desligar();
- if (cor_estatica) {
- Serial.println("azul");
- setColor(0, 0, 255);
- }
- break;
- case btn_white:
- desligar();
- if (cor_estatica) {
- Serial.println("amarelo");
- setColor(255, 255, 255);
- }
- break;
- case btn_1_flash:
- int r, g, b;
- if (chave_flash) {
- do {
- unsigned long tempoAtualFlash = millis();
- if (tempoAtualFlash - tempoAnteriorFlash >= PERIODO_FLASH) {
- tempoAnteriorFlash = tempoAtualFlash;
- if (!flash_leds) {
- Serial.println("AAA");
- flash_leds = true;
- r = 255;
- g = 0;
- b = 255;
- }
- else {
- Serial.println("BBB");
- flash_leds = false;
- r = 127;
- g = 255;
- b = 0;
- }
- setColor(r, g, b);
- receiver.resume();
- unsigned int value2 = results.value;
- Serial.println(value2);
- continue;
- }while(1==1) // essa é uma gambiarra provisoria para validar o funcionamento do blink
- }
- }
- break;
- }
- //Serial.println(value);
- receiver.resume();
- }
- }
- //Imprime a cor selecionada
- void setColor(int vermelho, int verde, int azul) {
- analogWrite(RED, vermelho);
- analogWrite(GREEN, verde);
- analogWrite(BLUE, azul);
- }
- void ligar() {
- setColor(255, 0, 0);
- delay(1000);
- setColor(0, 0, 0);
- setColor(0, 255, 0);
- delay(1000);
- setColor(0, 0, 0);
- setColor(0, 0, 255);
- delay(1000);
- setColor(0, 0, 0);
- }
- void desligar() {
- setColor(0, 0, 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement