segunda-feira, 29 de setembro de 2025

 Projeto Sensor Infravermelho



#include <Servo.h>

#include <IRremote.h>                       // Biblioteca IRemote

#define SERVO 3
Servo ServoPortao;
int pos;


const byte RECV_PIN = 2;                          // Arduino pino D11 conectado no Receptor IR
//IRrecv irrecv(RECV_PIN);                    // criando a instância
//decode_results results; // declarando os resultados
int led1=4;
int led2=5;
int led3=6;
int led4=7;
int led5=8;
int led6=9;

bool LED1=false;
bool LED2=false;
bool LED3=false;
bool LED4=false;
bool LED5=false;
bool LED6=false;



 
void setup()
{
  Serial.begin(9600); // Monitor velocidade 9600 bps
  
  ServoPortao.attach(SERVO);
  ServoPortao.write(0);
    
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  
  IrReceiver.begin(RECV_PIN,ENABLE_LED_FEEDBACK);
}


void loop(){
//decodes the infrared input
if (IrReceiver.decode()){
unsigned int value =IrReceiver.decodedIRData.command ;
Serial.println(value);
//laço de escolha de caso, quando botão controle pressionado
switch (value){
case 16: //botao 0 pressionado
LED1 = !LED1;// alterna o estado do LED 0-1
    digitalWrite(led1, LED1);
break;
case 17: //botao 1 pressionado
LED2 = !LED2;// alterna o estado do LED 0-1
    digitalWrite(led2, LED2);
break;

  case 18: //botao 2 pressionado
LED3 = !LED3; // alterna o estado do LED 0-1
    digitalWrite(led3, LED3);
break;
  case 20: //botao 3 pressionado
LED4 = !LED4;// alterna o estado do LED 0-1
    digitalWrite(led4, LED4);
break;
  case 21: //botao 4 pressionado
LED5 = !LED5;// alterna o estado do LED 0-1
    digitalWrite(led5, LED5);
break;
  case 22: //botao 5 pressionado
LED6 = !LED6;// alterna o estado do LED 0-1
    digitalWrite(led6, LED6);
break;
  case 0: //botao Power pressionado apaga todos os leds.
  digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  digitalWrite(led5,LOW);   
  digitalWrite(led6,LOW);   
break; 
  case 8:
 
  for(pos=0;pos<90;pos++)
  {
  ServoPortao.write(pos);
    delay(15);
  }
break;
  case 10:
  for(pos=90;pos>0;pos--)
  {
  ServoPortao.write(pos);
    delay(15);
  }
  break;
IrReceiver.resume(); 
}
delay(1000);
}/*#include <IRremote.h>
const byte receptor=2;
void setup(){
  Serial.begin(9600);
  IrReceiver.begin(receptor,ENABLE_LED_FEEDBACK);
}

void loop (){
  if (IrReceiver.decode()){
    unsigned int value=IrReceiver.decodedIRData.command;
Serial.print("Codigo: ");
Serial.println(value);
}
IrReceiver.resume();
delay(1000);
}*/

Nenhum comentário:

Postar um comentário