[RESOLVIDO] Regulagem receptor IR

Boa tarde. Estou tentando trabalhar com um controle remoto + receptor IR, porém o receptor parece n conseguir enviar corretamente as informações da tecla pressionada para o Arduino. Meu receptor é um KY-022 e estou testando com um controle de TV e de MP3 de carro.

Segue o código usado:

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

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

Já verifiquei as conexões e estão corretas. Tanto é que DE VEZ EM QUANDO o receptor resolve enviar algum dado. Alguém saberia me dizer se é necessário regular alguma coisa para funcionar normalmente?

Outra coisa que reparei é que o código exibido para uma mesma tecla varia muito... segue o que apareceu nas vezes em que aperto "0":

FCABFFBF
49B0F625
FDAC0152
4CB0FADC
FDAC0152
71B851EC
FDAC0152
6FB84EC6
32D19EA3
6FB84EC6
49B0F625
FEAC02E5
AAAEACC8
FDAC0152
FDAC0152
FCABFFBF
ED0E5738
FEAC02E5
FEAC02E5
6ADBBDCE
FDAC0152
70B8505B
FEAC02E5
4CB0FADC
FDAC0152
49B0F625

As vezes aparecem 4 linhas de uma vez só... Como eu sei qual o código da tecla 0?

Usar esse codigo para obter o valor do botao, ele vai le fornecer so numeros e sempre constantes

#include <IRremote.h> //ADICIONA A BIBLIOTECA IR 

int receiver = A0; //DEFINE O PINO ANAÓGICO 0 COMO ENTRADA DOS SINAIS IR 
IRrecv irrecv(receiver); 
decode_results results; 
void setup() 
{ 
  Serial.begin(9600); //INICIA COMUNICAÇÃO SERIAL 
  irrecv.enableIRIn(); // INICIA O RECEPTOR 
} 
void loop() 
{ 
if (irrecv.decode(&results)) // DECODIFICA O SINAL DO RECEPTOR 
{ 
Serial.println(results.value, DEC); //IMPRIME NA PORTA SERIAL OS VALORES OBTIDOS 
    
    
  switch(results.value) 
  {} 
  delay(500); 
  irrecv.resume(); // RECEBE O PRÓXIMO VALOR 
  } 
}

foi o que eu usei no robô controlado por controle IR e ele funciona muito bem

Consegui utilizar o receptor sem maiores problemas. Porém, hoje, quando fui ligar, inverti os pólos + e - sem querer. Será que queimou? Como faço para testar caso eu n tenha um multímetro?

Porém, hoje, quando fui ligar, inverti os pólos + e - sem querer. Será que queimou? Como faço para testar caso eu n tenha um multímetro?

Estas te a referir ao quê ? A alimentaçao do arduino ou do IR?

Alimentação do IR. O Arduino está alimentado pela porta USB. O IR deu uma esquentadinha, foi aí que reparei que havia invertido os polos.

Entao a forma mais facil é veres se com o programa carregado se continua a ler os codigo IR como de antes. Se nao ler é porque provalvelmente o danificaste. :smiley:

É, provavelmente estragou então... Vem um LED vermelho com ele para indicar que está recebendo sinal do controle, mas não liga quando aperto as teclas. Amanhã vou ver se encontro algum receptor IR para comprar aqui em minha cidade. Será que os de TV funcionam?

Dos tempos que reparava Tv's os receptores de IR eram quase todos a mesma coisa.Podem variar no encapsolamento mas internamente todos eles sao 99% das vezes compativeis. Se tiveres uma placa de Tv avariada arranca o e testa.
De salientar que o pin out pode variar.

Arrumei esse da direita

Vou testar mais a noite. Será que não é necessário ter aquela "capa" da metal por cima?

Nao deve fazer diferença

Funcionou certinho. Obrigado pessoal!