Ligar e desligar led com controle usando mesmo botão

Pessoal,

 Estou tentando ligar 4 leds por IR, mas queria fazer isso usando o botão 1 do controle para acender e apagar o led 1, o botão 2 para acender e apagar o led 2 e assim para os 4.

 A programação a baixo faz isso só com um led, alguem pode me ajudar a ajustar a programação para 4 leds?

#include <IRremote.h>
#include <IRremoteInt.h>

int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;

#define BT_LIGA 0xFFA25D  //Botao Liga

#define Controle_Rele 7   //Controla Relé

int Controle_Rele_State = LOW;  //Relé começa fechado

long bt = 0; //Ultimo botao precionado
unsigned long startMilis = 0; //Contado para blink sem delay

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();

  pinMode(Controle_Rele, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {
    irrecv.resume();

    Serial.println(results.value, HEX); //Aqui voce descobre qual o botao do seu controle

    //Apenas para filtrar os botoes apertados, no meu caso para filtrar outros controles =)
    if(results.value == BT_LIGA)
    {
      startMilis = millis(); //Apertou um botao, reseta o contador
      bt = results.value; //Salva ultimo botao apertado
      mod(1);
    }
  }


}

void mod(int x)
{
  unsigned long currentMillis = millis();

  if(x == 1)
  {
   Controle_Rele_State=!Controle_Rele_State;
   
   digitalWrite(Controle_Rele, Controle_Rele_State);
  }
  
}

Exibições: 2425

Responder esta

Respostas a este tópico

boa tarde amigo da uma olhada nesse código ai ok. 

/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;
boolean ligado=false;

void setup()
{
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
Serial.println("RECEBENDO DADOS...") ;
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(13,OUTPUT);
}

void loop() {
while (irrecv.decode(&results)) {
Serial.println(results.value, DEC);
irrecv.resume(); // Receive the next value

if(results.value==551505585 && ligado==false){
digitalWrite(13, HIGH);
delay(10);
digitalWrite(9, HIGH);
delay(10);
ligado=true;
}
else if(results.value==551521905 && ligado==true){
digitalWrite(13, LOW);
delay(10);
digitalWrite(9, LOW);
delay(10);
ligado=false;

}

}// Fim do while para Verificação

}// Fim do programa

Valeu pela ajuda, obrigado, mudei algumas coisas e consegui fazer como queria.

Repeti o cod do controle no false e true, assim ele acende e apaga com o mesmo botão

fico feliz por vc ter conseguido! se eu puder ajudar em mais alguma coisa é só postar ai ok. vlw.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço