Arduino, Internet das Coisas e Computação vestível

[Voltar]

[Avançar]

12.2. Acende e apaga LEDs pelo controle


Acende e apaga LEDs pelo controle remoto

O projeto usa Arduino Uno R3, Display LCD 16x2 (+ resistores de 200Ω), Controle Remoto Ir e Módulo Sensor Receptor IR (ou Sensor Receptor IR e resistor de 10 kΩ) e resistores de 120Ω para acender e apagar LEDs.

1) Esquema com Controle Remoto Ir + Módulo Sensor Receptor IR

2) Esquema com Controle Remoto Ir, Sensor Receptor IR e resistor de 10 kΩ.


// Projeto: Acende e apaga LEDs pelo controle remoto  
// Autor: André Silveira
// Data: 22/09/2019

#include <LiquidCrystal.h>  			// Biblioteca LiquidCrystal
#include <IRremote.h>                		// Biblioteca IRemote

int PINO_REC = 10;                         		// Declara pino conectado ao Receptor IR

IRrecv irrecv(PINO_REC);                  		// Criando instância de objeto IRrecv
decode_results results;                    		// declarando os results

int Pino_Vermelho = 4;              	   		// Pino da cor vermelho do LED
int Pino_Verde = 5;                 	   		// Pino da cor verde do LED
int Pino_Azul = 6;                		   	// Pino da cor azul do LED

// Inicializa instancia de classe do LiquidCrystal
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);

void setup() {
  
      Serial.begin(9600);                         
      Serial.println("Aperte uma tecla");      
      irrecv.enableIRIn();                        	// Inicializa a recepção de códigos

      pinMode(Pino_Vermelho, OUTPUT);                     
      pinMode(Pino_Azul, OUTPUT);                        
      pinMode(Pino_Verde, OUTPUT); 

      lcd.begin(2,16);
      ligaled(0,0,0,"Aperte uma tecla");
  
}
 
void loop() {

 // --- Se alguma tecla foi apertada imprime o código Hexadecimal --- //
 
      results.value = 0;                      		
      if (irrecv.decode(&results))  {
          Serial.print(" > Apertou: "); 		
          Serial.print(results.value, HEX); 	// imprime o HEX Code
          irrecv.resume();                    		// reinicializa o receptor
      }

// --- Se alguma tecla for apertada testa o código Hexadecimal --- //
  
      switch (results.value) {
          case 0xFD30CF:
                Serial.print(" > Ligou Led Branco");
                Serial.println("");        
                ligaled(255,255,255,"Ligou Led");
                break;
          case 0xFD08F7: 
                Serial.print(" > Ligou Led Vermelho");                                       
                Serial.println("");
                ligaled(255, 0, 0,"Cor vermelha");
                break;
          case 0xFD8877: 
                Serial.print(" > Ligou Led Verde");                                       
                Serial.println("");
                ligaled(0, 255, 0,"Cor verde");
                break;        
          case 0xFD48B7: 
                Serial.print(" > Ligou Led Azul");                                       
                Serial.println("");
                ligaled(0, 0, 255,"Cor azul");
                break; 
          case 0xFD28D7: 
                Serial.print(" > Desligou Led");                                       
                Serial.println("");
                ligaled(0, 0, 0,"Desligou Led");
                break;         
          case 0: // --- Tecla não digitada       
                break; 
        default:
                Serial.print(" > Tecla invalida");  
                Serial.println("");        
                lcd.clear();
                lcd.setCursor(0,0);
                lcd.print("0 1 2 3 4");
                lcd.setCursor(0,1);
                lcd.print("Tecla errada");
                delay(400);
                break;
  	}
  	delay(100); 
            
}

// --- Função que liga ou desliga os Leds --- //  

void ligaled(int r, int g, int b, String mensagem) {   
 
    analogWrite(Pino_Vermelho, r);  
    analogWrite(Pino_Verde, g);  
    analogWrite(Pino_Azul, b); 

    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("0 1 2 3 4");
    lcd.setCursor(0,1);
    lcd.print(mensagem);
}

 

[Voltar]

[Avançar]