Controle remoto IR com Arduino: veja como usar
Existem várias maneiras práticas e baratas de controlar uma placa Arduino à distância, e uma delas é usando infravermelho. Usar o controle remoto IR com Arduino permite que você acione os mais variados equipamentos.
Hoje vou apresentar um outro método para controle remoto das portas do Arduino Uno R3, desta vez usando um Kit Controle Remoto IR, mostrado na foto abaixo:
O kit é composto por 1 módulo receptor IR, 1 led infravermelho, 1 cabo de conexão e 1 controle remoto (com bateria CR2025).
No exemplo de hoje, vou focar na recepção do sinal do controle remoto, acendendo e apagando leds, conforme a sequência abaixo:
Tecla 1: Acende led vermelho
Tecla 2: Apaga led vermelho
Tecla 4: Acende led verde
Tecla 5: Apaga led verde
Tecla 9: Apaga os 2 leds
Entendendo o principio de funcionamento do receptor IR, fica fácil controlar qualquer porta do Arduino e partir para o acionamento de relés, motores e outros dispositivos.
Atualizado: Veja também neste outro artigo como utilizar o controle remoto IR para controlar um módulo relé 4 canais.
Circuito Arduino e módulo IR infravermelho
A ligação do módulo receptor IR segue o esquema mostrado na imagem abaixo, à esquerda, que consiste na ligação dos pinos do módulo à porta 11 do Arduino (sinal), 5v e GND. Na imagem da direita, podemos ver o módulo em funcionamento, com um led que pisca quando o módulo está recebendo sinais infravermelhos:
Para o circuito, vamos utilizar 2 leds, 2 resistores de 330 ohms e o receptor IR, tomando o cuidado de observar a ligação correta dos pinos do módulo, evitando a queima do componente:
Criei um programa que faz a leitura do sinal IR recebido, e com base no valor lido, aciona as portas 5 e 7, onde estão ligados os leds. Esse programa também apresenta no monitor serial os valores lidos pelo receptor IR:
Desta forma consigo descobrir os valores, em hexadecimal, do sinal recebido por todas as teclas do controle remoto. No programa, usei os valores FF30CF (Tecla 1), FF18E7 (tecla 2), FF10EF (tecla 4), FF38C7 (tecla 5), e FF52AD (tecla 9).
Finalmente, no loop, eu testo o valor recebido pelo receptor IR, e com alguns comandos IF eu verifico qual tecla foi acionada, acendendo e apagando o led correspondente. Usei a tecla 9 para apagar os 2 leds de uma só vez.
Programa controle remoto IR com Arduino
Para este programa, vamos utilizar a biblioteca IRremote, que voce pode baixar clicando aqui:
// Programa : Teste Controle Remoto IR // Autor : Arduino e Cia #include <IRremote.h> int RECV_PIN = 11; float armazenavalor; int pinoledvermelho = 5; int pinoledverde = 7; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { pinMode(pinoledvermelho, OUTPUT); pinMode(pinoledverde, OUTPUT); Serial.begin(9600); irrecv.enableIRIn(); // Inicializa o receptor IR } void loop() { if (irrecv.decode(&results)) { Serial.print("Valor lido : "); Serial.println(results.value, HEX); armazenavalor = (results.value); if (armazenavalor == 0xFF30CF) //Verifica se a tecla 1 foi acionada { digitalWrite(pinoledvermelho, HIGH); //Acende o led vermelho } if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada { digitalWrite(pinoledvermelho, LOW); //Apaga o led vermelho } if (armazenavalor == 0xFF10EF) //Verifica se a tecla 4 foi acionada { digitalWrite(pinoledverde, HIGH); //Acende o led verde } if (armazenavalor == 0xFF38C7) //Verifica se a tecla 5 foi acionada { digitalWrite(pinoledverde, LOW); //Apaga o led verde } if (armazenavalor == 0xFF52AD) //Verifica se a tecla 9 foi acionada { digitalWrite(pinoledvermelho, LOW); //Apaga todos os leds digitalWrite(pinoledverde, LOW); } irrecv.resume(); //Le o próximo valor } }
Aponte o controle remoto para o receptor e divirta-se! 🙂
Qual o alcance?
Bom dia. Consegui testar até uns 6 metros, mas as condições vão depender de luminosidade, do próprio controle remoto, das baterias, etc.
como conpro esse kit ?
Boa tarde ! Tem na FilipeFlop, não só esse kit, como também relés, shields, motores e outros sensores que eu menciono aqui no site : http://www.filipeflop.com
Abraço !
Caro colega busquei esse kit no site que você propôs http://www.filipeflop.com, mas não consegui encontra-lo você poderia me mandar o link exato por favor, estou tentando trabalhar com mecanismos que tenham essa abordagem.
Bom dia,
Já está disponível no site, nesse link :
http://www.filipeflop.com/pd-6b86d-kit-controle-remoto-ir.html
Abraço e obrigado !
por que voces nao tentam desenvolver seus propios hardwares???
IRrecv irrecv(RECV_PIN); ta dando erro alguem sabe pq? meu arduino uno ja testei algumas versão sempre da esse erro.
Bom dia Josias, qual biblioteca você usou ?
o Meu tambem deu erro como faço para adicionar a biblioteca?
Boa noite Ricardo, baixe a biblioteca, descompacte e coloque a pasta da biblioteca dentro da pasta LIBRARIES da IDE do Arduino. Abraço !
Verifique se voce não tem uma pasta de BIBLIOTECA SECUNDARIA como exemplo: c:Arquivos de ProgramasArduinolibraries e uma outra em c:UsuáriosSeuloginDocumentosArduinolibraries <- CASO TIVER, ATUALIZE AS DUAS!
Excelente tutorial. Tentei varias vezes executar o meu no Arduíno Mega mais simplesmente não funcionou, quando troquei por um Arduíno Uno funcionou perfeitamente.
Boa noite Alex ! Muito obrigado pelo retorno. Vou testar aqui com o meu Arduino Mega e verificar por que não funciona. Grande abraço !
No meu mega funcionou de primeira
No meu Mega também não funcionou. O código, a porta, a biblioteca e as conexões estão OK. Mas o serial não exibe as teclas apertadas, mesmo o led do receptor piscando ao pressionar. As vezes eu não aperto anda e o arduino vai mostrando como se eu tivesse pressionado
poderia disponibilizar o codigo que usou para fazer a leitura do sinal IR recebido e que depois apresenta no monitor serial os valores lidos pelo receptor IR.
Otimo projeto !!!!
Boa noite Ricardo ! Você pode usar o programa deste artigo mesmo. Carregue o programa no Arduino, abra o Serial Monitor e acione o controle remoto para ver os códigos que estão sendo recebidos pelo Arduino. Qualquer outra dúvida, é só falar. Abraço e obrigado !
Boa noite, quando eu aciono as teclas do controle no serial só aparece umas sequencias de quadrados em vez de aparecer o código hexadecimal, pode me ajudar por favor.
Boa noite,
Parece que é uma configuração incorreta do serial monitor. Você setou como 9600, para ficar compatível com o programa?
Abraço!
Adilson
Como faço para ligar e desligar uma lampada de 220V usando esta biblioteca, eu tentei fazer com a biblioteca NECIRrcv, mas esta dando varios erros.
Boa tarde Alex. Você está usando algum tipo de módulo relé ? Por favor dê uma olhada neste artigo :
http://www.arduinoecia.com.br/2013/10/modulo-rele-4-canais-e-controle-remoto.html
Talvez te ajude. Se a configuração que você está usando for diferente, volte aqui que eu tento te ajudar. Abraço !
como utilizo a biblioteca?
Boa noite Ricardo, baixe a biblioteca, descompacte e coloque a pasta da biblioteca dentro da pasta LIBRARIES da IDE do Arduino. Abraço !
sua biblioteca esta em arquivo rar entao nao consigo adiciona-la no arduino como faço?
Boa tarde Ricardo, você vai precisar de um programa que leia arquivo no formato RAR, como o Winrar, que você pode baixar aqui :
http://www.baixaki.com.br/download/winrar.htm
boa tarde nao estou conseguindo realizar o projeto gem como me ajudar
Ola,
Estou com problema no meu codigo, Voces poderiam me ajudar? Comprei o Controle Remoto IR.
Para testar, li os numeros que correspondiam a cada botao, como vcs descreveram acima.
Peguei o valor de uma tecla, no caso o botao "2".
Se o usuario apertasse o botao 2, o robo comecaria a andar, conforme a minha programacao. Mas isso nao ocorre, o Monitor mostra "FFFFFFF" infinitas vezes, sendo que eu apertei so uma.
#include
int RECV_PIN = 11;
float armazenavalor;
IRrecv irrecv(RECV_PIN);
decode_results results;
int ENA=5;//connected to Arduino's port 5(output pwm)
int IN1=2;//connected to Arduino's port 2
int IN2=3;//connected to Arduino's port 3
int ENB=6;//connected to Arduino's port 6(output pwm)
int IN3=4;//connected to Arduino's port 4
int IN4=7;//connected to Arduino's port 7
void setup()
{
pinMode(ENA,OUTPUT);//output
pinMode(ENB,OUTPUT);
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
//Serial.begin(9600);
//irrecv.enableIRIn(); // Inicializa o receptor IR
}
void loop()
{
if(irrecv.decode(&results))
{
Serial.print("Valor lido : ");
Serial.println(results.value, HEX);
armazenavalor = (results.value);
}
if( armazenavalor == 'FF18E7'){
analogWrite(ENA, 255);
analogWrite(ENB, 255);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
delay(3000);
analogWrite(ENA, 255);
analogWrite(ENB, 255);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
delay(3000);
analogWrite(ENA, 255);
analogWrite(ENB, 0);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
delay(3000);
analogWrite(ENA, 0);
analogWrite(ENB, 255);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
delay(4000);
digitalWrite(IN1,LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
delay(2000);
}
Boa tarde. Você tentou com o código deste artigo ? Está normal ?
nobre colega, acontece que se voce manter a tecla do controle pressionado ele vai gerarar o codigo da tecla em seguida o FFFFF que é um codigo de repeticao da tecla voce tem que filtrar esse codigo e tambem fazer um algoritimo para descosidera o tempo de repetição da tecla. para que com isso a tecla funcione como um pushbutton
Segui esse tutorial, os leds acenderam e tudo mais, porem ele nao printar os valores lidos não. Copiei e montei exatamento como descrito. Alguem sabe o que poderia fazer isso?
Boa tarde Samuel.
Ele não está apresentando nada no serial monitor ? Ou apenas os valores lidos do controle remoto não aparecem ?
Abraço.
qria saber o pq do 0x no " if (armazenavalor == 0xFF30CF)"??? tipo o codigo da tecla 1 do meu controle eh FE01BF40 entaum no meu codigo dve ficar :if (armazenavalor == 0xFE01BF40) ???
Boa tarde,
O "0x" é usado na representação hexadecimal. O seu código fica exatamente como você mostrou : if (armazenavalor == 0xFE01BF40)
Abraço !
vlw vou testar ake , so q inves d ligar led vou ligar 2 reles .
Legal !
Eu tenho um artigo falando sobre o controle remoto IR com reles :
http://www.arduinoecia.com.br/2013/10/modulo-rele-4-canais-e-controle-remoto.html
E também outros artigos sobre relés, se você não estiver usando módulo. Faça uma procura no meu site, por favor, creio que vá encontrar material para o que precisa.
Abraço !
haha eu ja tinha lido esse axei mto massa
meu codigo ta dando erro estou tentando fazer um buzer apitar qndo um rele acende so q n esta compilando olha ake meu codigo
#include
int RECV_PIN = 11;
float armazenavalor;
int RELE1 = 5;
int RELE2 = 7;
const int buzzer = 9;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(RELE1, OUTPUT);
pinMode(RELE2, OUTPUT);
pinMode(buzzer,OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Inicializa o receptor IR
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.print("Valor lido : ");
Serial.println(results.value, HEX);
armazenavalor = (results.value);
if (armazenavalor == 0x2FD807F) //Verifica se a tecla 1 foi pressionada
{
digitalWrite(RELE1, HIGH); //liga rele1
tone(buzzer,1500);
noTone(buzzer);
}
if (armazenavalor == 0x2FD40BF) //Verifica se a tecla 2 foi pressionada
{
digitalWrite(RELE1, LOW); //desliga rele1
}
if (armazenavalor == 0x2FD20DF) //Verifica se a tecla 4 foi pressionada
{
digitalWrite(RELE2, HIGH); //Liga rele2
tone(buzzer,1500);
noTone(buzzer);
}
if (armazenavalor == 0x2FDA05F) // Verifica se a tecla 5 foi pressionada
{
digitalWrite(RELE2, LOW); //desliga rele2
}
if (armazenavalor == 0x2FD48B7) // Verifica se a tecla 9 foi pressionada
{
digitalWrite(RELE1, LOW); //desliga tdos reles
digitalWrite(RELE2, LOW);
}
irrecv.resume(); //Le o próximo valor
}
}
Bom dia,
Eu tentei compilar aqui e também deu erro. Aparentemente é algum conflito entre a biblioteca do IR e a Tone, que estão usando uma mesma interrupção.
Provavelmente será necessário mexer na biblioteca, se for só um parâmetro, ou então trocar para uma biblioteca como a bassdll :
http://github.com/drewcrawford/bassdll/
Ainda não tive oportunidade de mexer com essa biblioteca, mas vou fazer alguns testes, porque eu também tentei usar o Tone com alguns outros componentes e tive o mesmo erro.
Abraço !
Boa tarde Gvt !
Fiz os testes com uma biblioteca nova, a NewTone, e não tive problemas de conflito. Basta incluir a biblioteca no programa, e trocar as instruções Tone por NewTone, e notone por noNewTone. Aqui compilou direitinho. A biblioteca pode ser baixada nesse link :
https://code.google.com/p/arduino-new-tone/downloads/list
Depois me avise se funcionou, por favor.
#include
#include
int RECV_PIN = 11;
float armazenavalor;
int RELE1 = 5;
int RELE2 = 7;
const int buzzer = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(RELE1, OUTPUT);
pinMode(RELE2, OUTPUT);
pinMode(buzzer,OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Inicializa o receptor IR
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.print("Valor lido : ");
Serial.println(results.value, HEX);
armazenavalor = (results.value);
if (armazenavalor == 0x2FD807F) //Verifica se a tecla 1 foi pressionada
{
digitalWrite(RELE1, HIGH); //liga rele1
NewTone(buzzer,1500);
noNewTone(buzzer);
}
if (armazenavalor == 0x2FD40BF) //Verifica se a tecla 2 foi pressionada
{
digitalWrite(RELE1, LOW); //desliga rele1
}
if (armazenavalor == 0x2FD20DF) //Verifica se a tecla 4 foi pressionada
{
digitalWrite(RELE2, HIGH); //Liga rele2
NewTone(buzzer,1500);
noNewTone(buzzer);
}
if (armazenavalor == 0x2FDA05F) // Verifica se a tecla 5 foi pressionada
{
digitalWrite(RELE2, LOW); //desliga rele2
}
if (armazenavalor == 0x2FD48B7) // Verifica se a tecla 9 foi pressionada
{
digitalWrite(RELE1, LOW); //desliga tdos reles
digitalWrite(RELE2, LOW);
}
irrecv.resume(); //Le o próximo valor
}
}
deu erro tb deu isso ake " 'NewTone' was not declared in this scope
'noNewTone' was not declared in this scope "
mas se n ta d boa soh qria dar uma enfeitada no meu projeto rsrsrs
Oi gtv !
Olha, eu acho que na hora de copiar e colar uma parte do codigo "sumiu". rs. Esse erro é provavelmente falta da biblioteca, você a instalou ?
E os dois includes no começo do programa ficam assim (sem os espaço entre as chaves) :
#include < IRremote.h >
#include < NewTone.h >
Abraço !
car meu IDE travou…fui mexer nele hj e n consigo digitar ou editar nenhum codigo.a tela de ediçao fica cinza =(((( ja reinstalei o IDE mas nd mudou
Humm… tentou instalar em outra pasta ?
Voces sao d+ ! obrigado por compartilhar.
Nós é que agradecemos. Abraço !
Oi pessoal…
estou com problemas ao programar um trabalho que efectuei com arduino uno..
Portanto, ele funciona, com este que menciono mais em baixo.. pressiono o botão 1.ele liga e desliga no 4…
Mas a minha dificuldade é desligar o sinal automaticamente..
Se alguém puder ajudar, sff.,obrg
#include // aqui estou chamando a biblioteca do sensor IR
int RECV_PIN = 2; // Diz que o receptor IR esta conectado no pino 2
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600); // Abre a porta serial.
pinMode(13, OUTPUT); // define a porta 3 que vai enviar o sinal de on/off para o rele
irrecv.enableIRIn(); // Inicia o receptor IR.
}
void loop(){
if (irrecv.decode(&results)) {
Serial.println(results.value, DEC); // Envia o codigo do botão pressionado para a porta serial.
irrecv.resume();
}
if (results.value == 16724175){ digitalWrite(13,HIGH);} // Se o receptor IR receber o codigo "16724175" ira Acionar o rele do pino 3.
if (results.value == 16716015){ digitalWrite(13,LOW);} // Se o receptor IR receber o codigo "16716015" ira Desligar o rele do pino 3.
}
Oi Sérgio,
Em que momento você precisa que ele desligue automaticamente ? E depois de quanto tempo ?
Abraço !
oi !!
Em milésimos de segundo….
Este projeto serve para abrir uma porta de entrada do prédio com o telecomando..
É só para dar o sinal…
Agradecia , obg..
Abraço
Boas..
O momento que preciso que ele desligue, é logo a seguir ao pressionar o botão 16724175…em milésimos de segundo..Abraço
Ufa. .Já consegui .
Obrig na mesma..
Foi com esta programação…
#include // aqui estou chamando a biblioteca do sensor IR
int RECV_PIN = 2; // Diz que o receptor IR esta conectado no pino 2
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600); // Abre a porta serial.
pinMode(13, OUTPUT); // define a porta 3 que vai enviar o sinal de on/off para o rele
irrecv.enableIRIn(); // Inicia o receptor IR.
}
void loop(){
if (irrecv.decode(&results)) {
Serial.println(results.value, DEC); // Envia o codigo do botão pressionado para a porta serial.
irrecv.resume();
}
if (results.value == 16724175){ digitalWrite(13,HIGH);} // Se o receptor IR receber o codigo "16724175" ira Acionar o rele do pino 3.
delay(2);
digitalWrite(13,LOW); // Se o receptor IR receber o codigo "16716015" ira Desligar o rele do pino 3.
}
Bons dias , estou com um problema.
Depois de ter inserido a programação ficou funcionando perfeitamente, só ficou faltando um promenor..
Então quando aciono o botão tenho que estar ai a uns 60 centímetros para que de o sinal…
E eu queria que o sinal fosse efetuado a uma distancia de 3 metros, do telecomando ao recetor de infravermelho..
Será possível ???
Boa noite Sergio,
Realmente o alcance desse tipo de controle não é muito grande. Aqui nos meus testes eu consegui acionar o sensor à uma distância máxima de 2 metros, e ainda assim com algumas falhas.
Talvez seja necessária a montagem de algum outro tipo de circuito, mas eu ainda não tenho esse esquema disponível aqui no site.
Abraço !
Funciona com qualquer controle remoto?
Boa noite Daniel,
Com alguns controles mais simples, sim. Com o Arduino você pode montar circuitos para "aprender" os códigos de algum controle remoto, e depois usar esses códigos para acionar as portas do Arduino.
Abraço !
ola,
eu queria accionar um relé carregando na tecla 1 do comando, (por exemplo), e desligar o mesmo relé se carregar novamente na mesma tecla, (basicamente a cada toque na tecla corresponde a uma mudança de estado do relé). Aqui têm exemplos em que liga numa tecla, e desliga noutra:
if (armazenavalor == 0x2FD807F) //Verifica se a tecla 1 foi pressionada
{
digitalWrite(RELE1, HIGH); //liga rele1
}
if (armazenavalor == 0x2FD40BF) //Verifica se a tecla 2 foi pressionada
{
digitalWrite(RELE1, LOW); //desliga rele1
}
no entanto não vejo com ligar e desligar na mesma tecla!
Alguém pode ajudar?
Bom dia,
Nesse artigo eu falo sobre acionamento de relés utilizando apenas um push-button para ligar e desligar uma lâmpada. Você pode usar o mesmo princípio para montar o seu projeto :
http://www.arduinoecia.com.br/2013/08/ligando-uma-lampada-com-rele-e-push.html
Abraço !
Olá amigo, excelente artigo, parabéns.
Recentemente adquiri um kit iniciante e pretendo usar seus exemplos em meus estudo, por isso, desde já, quero agradecer sua ajuda.
Mas adiantando um pouco, gostaria de saber se você tem algum exemplo que use o led infravermelho para ENVIO do sinal. Quero montar um circuito que "aprenda" alguns sinais de meus controles remotos e assim montar um "controle universal".
Mais uma vez, agradeço pela ajuda.
Boa tarde Magrão !
Muito obrigado. Fique à vontade para entrar em contato se precisar de algo.
Eu não tenho esse exemplo, mas já vi alguma coisa parecida. O único problema de montar alguma coisa assim é que não são todos os controles que funcionam com esses módulos do Arduino. Alguns controles, pelo que eu pesquisei, enviam dados numa frequência bem mais alta ou bem mais baixa do que o módulo consegue reconhecer, e isso causa alguns problemas. Tem também algumas questões de codificação.
Mas é um projeto interessante. Pretendo escrever sobre isso.
Abraço !
Estou com 2 pequenos problemas…
Usei como base o código disponibilizado por vocês, porém, eu resolvi testar outras aplicações, tentei por enquanto fazer só um led piscar, para isso utilizei um laço while para criar a repetição, logo depois do if, mas o while só repete determinadas vezes, por maior que seja o número, uma hora ele vai se interromper… Queria saber qual laço eu teria que usar e qual a condição para ele se tornar, digamos, "infinito". Meu outro problema é que, após dar o comando para o led piscar, não consigo fazer com que ele pare de piscar, ou seja, depois que eu aperto o botão ele não para mais, mesmo eu tendo colocado um botão especifico para isso (assim como ligar e desligar o led), percebi que isso não funciona. vocês poderiam me ajudar quanto a esses 2 pequenos problemas, sei que não é nada complicado, porém, não estou conseguindo raciocinar como isso deveria ser feito, eu tenho em mente que eu teria que criar um laço, e dentro desse laço estabelecer a condição para cada comando, mas não estou conseguindo fazer :/. Abaixo está o código que eu alterei, vocês poderiam mandar um código? se possivel, claro, ou então dizer qual laço devo usar e quais as condições para isto? preciso ao menos de uma luz kkkkk
Desde já, agradeço.
E parabéns pelo site, vocês conseguem passar o conteúdo de forma bem didática, de modo que, quem está começando, assim como eu, consegue aumentar o conhecimento mais facilmente, com uma forma muito didática.
O código está abaixo:
#include // incluindo a biblioteca do infravermelho
const int RECEBE_PINO = 2; // pino 6 no arduino
int ledverde = 7;// led no pino 10
int ledamarelo = 6;
int ledvermelho = 5;
int i= 0;
IRrecv ir_recebe(RECEBE_PINO); // declarando a variável do sensor
decode_results codigo_recebido; // resultado
void setup()
{
Serial.begin(9600); //mostra o resultado no computador
ir_recebe.enableIRIn(); // inicia a recepção
pinMode(ledverde, OUTPUT); //defini led como saída
pinMode(ledamarelo, OUTPUT);
pinMode(ledvermelho, OUTPUT);
}
void loop() {
if (ir_recebe.decode(&codigo_recebido)) {//verifica se um codigo foi recebido
if (codigo_recebido.value != 0 ){
Serial.println(codigo_recebido.value, HEX); //mostra no serial o resultado
}
//tem que colocar o 0x antes do numero hexadecimal, pois só assim para poder comparar no if
//liga led verde
if ((codigo_recebido.value == 0x61F418E7) || (codigo_recebido.value == 0x213C4CB3)){
while (i<999999999){
digitalWrite(ledverde, HIGH);
delay(100);
digitalWrite (ledverde, LOW);
delay(100);
i++;
}
}
}
ir_recebe.resume(); // recebe o próximo código
delay(200);
}
Boa noite,
Você consegue um esquema do circuito que você montou ? Gostaria de tentar reproduzir aqui, aí já faço um teste com o seu programa.
Se puder me mandar, utilize o formulário de contato do lado direito da página, e eu respondo logo em seguida com o meu email.
Abraço !
amigo não funcionou nada :/ nem aparece nada no serial monitor sabe oque pode ser?
Boa tarde Paulo,
Sabe me dizer se o controle remoto IR está emitindo sinal ? Você consegue ver isso usando a câmera fotográfica do celular, por exemplo.
Abraço !
estou com problema na hora do codigo me ajudem por favor
IRrecvDump:14: error: variable or field 'dump' declared void
IRrecvDump:14: error: 'decode_results' was not declared in this scope
IRrecvDump:14: error: 'results' was not declared in this scope
IRrecvDump:17: error: variable or field 'dump' declared void
IRrecvDump:17: error: 'decode_results' was not declared in this scope
IRrecvDump:17: error: 'results' was not declared in this scope
IRrecvDump:14: error: 'IRrecv' does not name a type
IRrecvDump:16: error: 'decode_results' does not name a type
IRrecvDump.ino: In function 'void setup()':
IRrecvDump:21: error: 'irrecv' was not declared in this scope
IRrecvDump.ino: At global scope:
IRrecvDump:29: error: variable or field 'dump' declared void
IRrecvDump:29: error: 'decode_results' was not declared in this scope
IRrecvDump:29: error: 'results' was not declared in this scope
Bom dia,
Isso está parecendo falta de biblioteca. Você instalou ?
Abraço.
Boa noite,. Tenho um arduino Mega e estou usando a versão 1.0.5 do arduino. Baixei a biblioteca, extrai ela na pasta libraries da IDE, consigo compilar normalmente, mas quando abro a serial para ver os valores encontrados, não importa que tecla eu aperte ou controle que eu use, o valor lido é sempre 0. Vc sabe me dizer o que pode estar acontecendo?
Boa noite Jony,
Você está usando o mesmo controle remoto que eu usei no post ? Eu testei com um controle remoto de TV e ele também dá uns valores estranhos, deve ser algum tipo de codificação, frequencia, etc.
Abraço.
Olá amigo, você tem que ver quais são os códigos que seu controle dá e mudar no programa. Para mim funcionou uma beleza. Parabéns autor. Eu usei um IR Receiver de uma TV antiga.
Boa noite Renato,
Excelente informação. 🙂
Valeu. Abraço !
Boa noite, ótimo tutorial !!! Será que vocês podem me ajudar ? Estou com o seguinte problema: eu tento compilar o código de exemplo que vem junto com a biblioteca e sempre dá erro, já instalei versões mais antigas da IDE do Arduino mas não resolve, aparece sempre esse erro: This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"
C:UsersAvellDocumentsArduinoArduino IDEArduinolibrariesRobotIRremoteIRremoteTools.cpp:5: error: 'TKD2' was not declared in this scope
E o código seria esse:
#include
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
}
}
A biblioteca está na pasta correta e mesmo assim dá esse erro !
Obrigado desde já.
Boa noite Marcus,
Aqui compilou normal… Isso tá muito com cara de erro na biblioteca ou na IDE, apesar de você já ter conferido isso.
Dê uma olhada nesse link, quem sabe te ajude.
https://github.com/shirriff/Arduino-IRremote/issues/53
Abraço !
tenta isso.
Abra o software do arduino vai sketch -> import library-> add library e acha onde está a sua biblioteca (mesmo que já esteja na pasta correta).
Funcionou aqui.
o meu deu esse erro
C:Program Files (x86)ArduinolibrariesRobotIRremoteIRremoteTools.cpp:5: error: 'TKD2' was not declared in this scope
Boa noite,
Que biblioteca você está usando ?
Abraço !
tenta isso.
Abra o software do arduino vai sketch -> import library-> add library e acha onde está a sua biblioteca (mesmo que já esteja na pasta correta).
Funcionou aqui.
boa tarde, partindo deste principio seria possivel emular as teclas do teclado no controle remoto tipo programar o arduino para ao receber o codigo de uma determinada tecla no controle remoto ele manda essa informação para o pc emulando o teclado, para que o pc entenda como se fosse pressionada uma determinada tecla do teclado? pois estou vendo a possibilidade de substituir os botoes de uma junkbox por um controle remoto. seria possivel fazer esta façanha com o arduino?
Boa noite Jardel,
Seria possível sim. No Arduino Uno eu sei que é possível emular um teclado, mas ainda não tive a oportunidade de testar.
Já com o Arduino Leonardo, eu tenho um post falando sobre isso, dê uma olhada, pois acho que tem o que você precisa :
http://www.arduinoecia.com.br/2014/05/arduino-leonardo-teclado-mouse.html
Abraço !
consegui com o Uno. Obrigado
/*
UTILIZAÇÃO DE UM CONTROLE IR PARA, ATRAVES DAS TECLAS, EMULAR AS FUNÇOES DO TECLADO
NO PC USANDO A PORTA SERIAL.
jardel Sousa Gomes 09/12/2014
======================================================
*/
#include // incluindo a biblioteca do infravermelho
const int Rec_Pin = 11; // pino 6 no arduino receptor IR
int led = 13;// led no pino 13
IRrecv ir_recebe(Rec_Pin); // declarando a variável do sensor IR
decode_results codigo_recebido; // decodifica resultado
void setup(){
Serial.begin(9600); //inicia comunicação serial
ir_recebe.enableIRIn(); // inicia a recepção
pinMode(led, OUTPUT); //defini led como saída
}
void loop() {
if (ir_recebe.decode(&codigo_recebido)) {//verifica se um codigo foi recebido
if (codigo_recebido.value != 0 ){
digitalWrite(led,true);//acende led para indicar decodificação
switch (codigo_recebido.value) {//verifica qual tecla do controle IR foi pressionada e envia
//a seuquencia de codigo relacionada a tecla a ser emulada no PC.
case 0xff629d:// tecla "cima"
tecla(0);
break;
case 0xffa857: // tecla "baixo"
tecla(1);
break;
case 0xff22dd: // tecla "esquerda" [esc]left.
tecla(2);
break;
case 0xffc23d:// tecla "direita" [esc]right.
tecla(3);
break;
case 0xff02fd: // tecla "ok" [esc]enter.
tecla(4);
break;
}
delay(50);
}
digitalWrite(led,false);//apaga led
ir_recebe.resume(); // recebe o próximo código
}
}
void tecla(int n){//funcão envia sequencia de caracteres
char* mstring[]={
"up","down","left","right","enter" };
Serial.write(27);
Serial.write(mstring[n]);
Serial.write(46);
}
Amigo, gostei muito do seu tutorial porém estou tentando fazê-lo funcionar e quando aciono qualquer tecla do controle remoto só aparece a mensagem "Valor lido : 0", já tentei de tudo mas nada dá certo, meu arduino é o Uno e estou utilizando o Tsop2380 ( as ligações do mesmo seria : out, 5v e gnd ), poderia me dar alguma idéia onde posso estar errando?
Bom dia,
Não estou encontrando informações sobre o TSOP2380. Você pode me passar algum link desse módulo, ou onde você adquiriu ?
Abraço !
Boa Noite,
Preciso fazer a leitura de alguns sinais infravermelhos, todavia nao acho em site algum algo de como fazer. O que eu quero é basicamente o codigo hexadecimal emitido por um controle qualquer.
Numa outra pergunta acima, o sr.(a) respondeu que seria apenas copiar o programa no arduino e clicar em "Serial Monitor". Qual programa é esse? É a programação ora descrita para acender e apagar os leds?
Aguardo ansiosamente pela resposta
Grato
Boa noite,
Você quer fazer a leitura de outros tipos de controle remoto, certo ?
Não são todos que vão funcionar com esse módulo do Arduino, já que muitos controles tem códigos "proprietários" que você não conseguirá ler. Um exemplo de controle muito difícil de ler são esses de ar condicionado, por exemplo.
Com relação ao programa, é esse do post, sobre acender e apagar leds com o Arduino. O Serial monitor é um recurso presente dentro da IDE (ambiente de programação) do Arduino que permite que a placa envie dados para o computador e você consiga ler isso de uma forma bem simples.
Abraço !
Galera como faço acender e apagar as luzes pelo mesmo botão do controle remoto?
Boa tarde,
Tente as informações deste post, tem o que você precisa: http://www.arduinoecia.com.br/2013/10/modulo-rele-4-canais-e-controle-remoto.html
Abraço !
Boa tarde. Recentemente ao incluir a biblioteca IRremote e usá-la, aconteceu que o código não compilou. Pelo erro que aconteceu, acredito que alguma função ou até mesmo a biblioteca entra em conflito com alguma outra biblioteca padrão das versões atuais do Arduino por possuir o mesmo nome. Em versões antigas do IDE o código compila normalmente, mas quando atualizei para a versão atual, a biblioteca mostra-se como "dupla" na janela de erros. Alguém sabe como corrigir este erro?
Obrigado, Ricardo.
Boa noite Ricardo,
Grandes chances de ser isso mesmo. Dentro da IDE 1.6.4, por exemplo, tem uma biblioteca chamada RobotIRremote, e dentro dela um IRremote.h, igualzinho ao da biblioteca IRremote que eu mostro neste post.
Retire a biblioteca RobotIRremote da pasta libraries e faça um teste.
Abraço!
Estou com um problema! Qualquer tecla pressionada ele só lê FFFFFFFFFF
Alguem pode ajudar???
Boa noite,
Quando você mantém a tecla pressionada, ele realmente mostra o FFFF…. Mas se ele só reconhece esse valor, pode ser sinal de que o receptor está com problemas, já peguei defeitos assim.
Abraço!
Amigo copiei seu program // Programa : Relé 4 Canais com controle IR
Atendeu minha necessidade, mas eu queria usar 4 saidas do Arduino só funcionou duas as saidas do pino 2 e do pino 3, as saidas dos pinos 4 e 5 não funcionaram, dai realizei um teste nas saidas 4 e 5, removi toda a programação que havia do pino 2 e 3 dai funcionou, Mas gostaria de usar as 4 saidas vc sabe me informar o que acontece. Desde ja´agradeço a atenção OTIMO ESSE CANAL INFORMAÇÃO SEU.
Segue meu e-mail [email protected]
Oi Gilvan,
Obrigado, eu precisaria dar uma olhada no código para ver o que acontece. Nesse post do Relé 4 canais, você montou igual e não funcionou ?
Abraço!
boa tarde, o valor hexadecimal varia de controle para controle? Se sim voce poderia mandar o código que usou para descobrir?Grata.
Boa noite,
Varia sim. Você pode usar o próprio programa desse post, que vai te mostrar no serial monitor o código Hexa da tecla que vc pressionou. 🙂
Abraço!
Eu gostaria de controlar somente um relê, mas não somente por controle remoto. Gostaria de usar um botao(com funcionamento similar a um pushbutton) para acender e apagar a luz, mas quando eu quisesse pudesse utilizar um controle remoto. Vocês poderiam ao menos me dizer como seria mais ou menos a programação?
Obrigado e parabéns pelo site completíssimo.
Oi Dani,
Não é complicado não. Vamos pegar como exemplo essa linha do programa:
if (armazenavalor == 0xFF30CF) //Verifica se a tecla 1 foi acionada
O que vc vai fazer é acrescentar o teste do estado do botão, fica mais ou menos assim:
estado = digitalRead(pino_botao)
if (armazenavalor == 0xFF30CF) && (estado = 1)
//Comando para acionar o relé
Abraço!
Pq no Serial Monitor aparece somente 'Valor lido: 0' e não aparece em HEXA?
Bom dia,
Você está utilizando o controle remoto que acompanha o módulo ou algum outro ?
Abraço!
Na verdade estou usando um módulo que retirei de um DVD, e o controle é de uma TV.
olá mais uma vez estou com um pequena duvida
como faço para que o arduino reconheca a tecla do controle pressionada e enviar sempre o codigo da tecla. pois quando aperto a tecla ele envia o codigo corretamente, mas quando aperto e mantenho pressionada ele envia o codigo da tecla e depois fica enviando ffffff e eu queria que ele repetisse o codigo correto.
Oi Jardel,
Nesse caso você vai ter que armazenar o valor da tecla que foi lida, e caso o valor seguinte seja fffff, você repete o valor dessa primeira tecla que foi armazenada.
Não testei isso em um código, mas a ideia é mais ou menos essa. 🙂
Abraço!
obrigado, deu certo.
/*
UTILIZAÇÃO DE UM CONTROLE IR PARA, ATRAVES DAS TECLAS, EMULAR AS FUNÇOES DO TECLADO
NO PC USANDO A FUNÇÃO KEYBOAD.
jardel Sousa Gomes 07/03/2016
======================================================
*/
#include // incluindo a biblioteca do infravermelho
const char* nome;
const int Rec_Pin = 11; // pino 6 no arduino receptor IR
int led = 13;// led no pino 13
IRrecv ir_recebe(Rec_Pin); // declarando a variável do sensor IR
decode_results codigo_recebido; // decodifica resultado
decode_results memory; // memoria de reultado
//===================================================
void setup(){
Keyboard.begin();//inicia emulação de teclado
Serial.begin(9600); //inicia comunicação serial
ir_recebe.enableIRIn(); // inicia a recepção
ir_recebe.blink13(true);
pinMode(led, OUTPUT); //defini led como saída
}
//===================================================
void loop() {
if (ir_recebe.decode(&codigo_recebido)) {//verifica se um codigo foi recebido
digitalWrite(led,true);//acende led para indicar decodificação
if (codigo_recebido.value !=0){
if(codigo_recebido.value !=0xffffffff){
memory.value=codigo_recebido.value;
}
else{
memory.value=memory.value;
}
switch(memory.value){//analisa qual tecla foi pressionada e execulta o comando
case 0xff28d7://tecla [cima]
nome="cima";
tecla(218);
break;
case 0xff30cf://tecla [baixo]
nome="baixo";
tecla(217);
break;
case 0xff48b7://tecla [esquerda]
nome="esquerda";
tecla(216);
break;
case 0xff8877://tecla [direita]
nome="direita";
tecla(215);
break;
case 0xff08f7://tecla [ok]
nome="ok";
tecla(176);
break;
case 0xff9867://tecla [mute]
nome="mute";
break;
case 0xffb04f://tecla [play]
nome="play";
break;
case 0xff906f://tecla [osd]
nome="osd";
break;
case 0xff50af://tecla [vol +]
nome="vol +";
break;
case 0xff609f://tecla [vol -]
nome="vol -";
break;
case 0xff00ff://tecla [setup]
nome="setup";
break;
case 0xff697://tecla [menu]
nome="menu";
break;
case 0xffa857://tecla [rotate]
nome="rotate";
break;
case 0xff10ef://tecla [av]
nome="av";
break;
case 0xff20df://tecla [hdmi]
nome="hdmi";
break;
case 0xff708f://tecla [return]
nome="return";
break;
default:
nome="não especificada!";
break;
}
Serial.print(memory.value,HEX);
Serial.print(" – ");
Serial.println(nome);
}
digitalWrite(led,false);//apaga led
delay(100);
ir_recebe.resume(); // recebe o próximo código
}
}
void tecla(int key){// funçao tecla
Keyboard.press(key);
Keyboard.releaseAll();
digitalWrite(led,HIGH);
delay(250);
digitalWrite(led,LOW);
}
Olá,
Como posso arrumar este erro:
Arduino: 1.6.8 (Windows 7), Placa:"Arduino/Genuino Uno"
C:Program FilesArduinolibrariesRobotIRremotesrcIRremoteTools.cpp:5:16: error: 'TKD2' was not declared in this scope
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
^
Foram encontradas múltiplas bibliotecas para "IRremote.h"
Usado: C:Program FilesArduinolibrariesRobotIRremote
Não usado: C:Program FilesArduinolibrariesArduino-IRremote-master
exit status 1
Error compiling for board Arduino/Genuino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Boa noite,
A sua IDE está com conflito de bibliotecas. Tente remover a biblioteca da pasta RobotIRremote e usar apenas a que está indicada no post.
Abraço!
Ola, qnd configuro o valor hex do controle ele nem sempre da o mesmo valor,com isso faz com que para acionar o led tenho que apertar o botao umas 3 vezes, as vezes de primeira , pq sera?
Estou tendo um problema com o sensor e o controle. Fiz uma variação do código postado pra fazer acionamento de relés mas quando aperto os botões no controle nada aparece no monitor serial. Existe algum conflito com essa biblioteca?
fica o código que usei:
#include
float OneButton = 0xFF6897;
float TwoButton = 0xFF9867;
int RECV_PIN = 11;
int LED_PIN = 10;
float armazenavalor;
int PORTA_RELE1 = 5;
int PORTA_RELE2 = 7;
int stateRele1 = -1;
int stateRele2 = -1;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
pinMode(PORTA_RELE1, OUTPUT);
pinMode(PORTA_RELE2, OUTPUT);
irrecv.enableIRIn();
Serial.begin(9600);
digitalWrite(PORTA_RELE1, HIGH);
delay(1000);
digitalWrite(PORTA_RELE1, LOW);
delay(1000);
digitalWrite(PORTA_RELE2, HIGH);
delay(1000);
digitalWrite(PORTA_RELE2, LOW);
delay(1000);
}
void loop() {
if(irrecv.decode(&results))
{
Serial.print("valor lido:");
Serial.println(results.value, HEX);
armazenavalor = (results.value);
if(armazenavalor == OneButton)
{
stateRele1 = -stateRele1;
if(stateRele1 == 1){
digitalWrite(PORTA_RELE1, HIGH);
} else{digitalWrite(PORTA_RELE1, LOW);}
}
if(armazenavalor == TwoButton)
{
stateRele2 = -stateRele2;
if(stateRele1 == 1){
digitalWrite(PORTA_RELE2, HIGH);
} else{digitalWrite(PORTA_RELE2, LOW);}
}
}
delay(200);
irrecv.resume();
}
No meu aparece o seguinte erro na hora de compilar ?
Arduino: 1.6.8 (Windows 7), Placa:"Arduino Nano, ATmega328"
Opções de compilação alteradas, recompilando tudo
C:Program Files (x86)ArduinolibrariesRobotIRremotesrcIRremoteTools.cpp:5:16: error: 'TKD2' was not declared in this scope
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
^
Foram encontradas múltiplas bibliotecas para "IRremote.h"
Usado: C:Program Files (x86)ArduinolibrariesRobotIRremote
Não usado: C:Program Files (x86)ArduinolibrariesIPREMOTE
exit status 1
Error compiling for board Arduino Nano.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Olá, meu teste também apresentou o mesmo problem, e o que fiz para resolver, seguindo uma orientação deste site que relatou a possibilidade de conflitos de biblioteca, foi remover a biblioteca RobotIRremote do diretório onde o software(ide)do Arduido foi instalado.
No meu caso, retirei do local C:Program Files (x86)Arduinolibraries.
Abraço
ola tb estou como um problema com os codigos posso cololacar qualauer um dos botoes mas ele le tdos qualquer um ke aperte alguem pode me ajudar
É possível utilizar dois módulos Infravermelho, para controlar diferentes placares, na mesma placa arduino?
Boa noite Mario,
É possível sim. Abraço!
Olá, boa noite.
Não manjo nada do assunto e nem sei se tem algo a ver com o tópico.
Eu preciso de um sistema que troque os canais do meu decodificador a cada "N" segundos.
Você faz esse sistema?
Pessoal, imagine que não tenho o controle remoto apropriado para arduino, existe a possibilidade de eu usar um controle normal de tv, sky, etc para adaptar, estou elaborando uma pcb e tenho receio do usuário quebrar o controle e seria bom ter a possibilidade da placa " aprender e se adaptar " ao controle remoto comum. O que a placa pcb precisaria de ter e quais seriam as configurações no arduino, gentileza me ajudar… eu apenas imagino não sou engenheiro.
( me parece que em 2014 o sr já respondeu algumas perguntas nesse tópico sobre isso… conseguiu desenvolver ? ) Favor quando replicar, me avisar no [email protected]
O problema esta na biblioteca usada. Quando faz-se o download, ele traz a versão 2.2, que é imcompativel, porem deve ser usada a versao 1.0.
Depois de modificada a biblioteca, funcionou 100% para mim.
Abraço aos colegas,
Roberto
Está me dando este erro… sou novato e não percebo alguem me ajuda?
C:Program Files (x86)ArduinolibrariesRobotIRremotesrcIRremoteTools.cpp:5:16: error: 'TKD2' was not declared in this scope
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
^
exit status 1
Erro ao compilar para a placa Arduino/Genuino Uno.
Amigo em "int RECV_PIN" vc tem q colocar o pino de entrada.
deve ficar "int RECV_PIN = 11"
Olá amigo, estou tendo um problema aqui, eu fiz a ligação nos pinos do receptor mas ele fica com a luz vermelha constantemente ligada e quando pressiono alguma tecla não aparece nada no serial monitor.
Oi Kalel,
Por favor verifique a pinagem do receptor, pois alguns vem com os pinos em posição inversa, talvez seja esse o problema.
Abraço!
Adilson
Pelo jeito essa biblioteca não faz uso de interrupção, assim sendo, precisa deixar o código fluindo para conseguir decodificar o comando. Talvez isso ajude: http://www.techhelpblog.com/2014/01/22/arduinoir-remote-library-modification-include-interrupt/
Este módulo receptor pega sinal de um controle normal? Gostaria de acionar alguns servos quando ligar o Home Theater, para descer as caixas de som, eu consigo fazer isso com esse receptor? Ou seja, programar para quando ligar o Home as Caixas descerem, e quando desligar elas subirem?
Obrigado
Boa noite, eu consigo utilizar esse receptor para pegar o sinal de um controle comum? Quero utilizar o mesmo para ativar servos que vão descer caixas de som do Home Theater quando ligar, e subir quando desligar.
Obrigado
Sim. Você só precisa fazer a leitura do valor do botão do controle da TV no Monitor Serial.
Não consigo que o botão retorne o mesmo valor em hexa, cada vez ele retorna um valor, quando não FFFFFFF, sabe o porquê? Obrigado…
Só queria agradecer o Arduino & Cia!!
Fiz o projeto de automação residencial em uma maquete, seguindo o passo a passo, adicionei na programação mais dois if, pq coloquei um servo motor,(portão da casa) assim os if para acionar o servo ainda ajustei o delay,para dar certo os codigos dos botoes em hexa.
vlw Galera
Show de bola!!! 🙂
Abraço e obrigado!
Adilson
Fiz um projeto de automação residencial em uma maquete, seguindo passo a passo. Apenas adicionei na programação mais dois (if) para acionar um servo motor(para o portão da casa) indo para cima e para baixo, a biblioteca do servo, e ajustei o delay para acertar os códigos no controle.
Queria agradecer a galera do Arduino & Cia que a postagem de vcs nos ajudou muito!!!
Oi Victo!
Muito legal! Bom poder ajudar. 🙂
Abraço!
Adilson
Ola! Comprei esse modulo de controle remoto IR e consegui identificar as teclas. Contudo, parou de aparecer a identificação das teclas na Serial Monitor. Alguma sugestão do que possa ter acontecido?
Bom dia Vitor,
Você chegou a tentar com outro controle, só pra ver se o sensor ir detecta alguma coisa?
Abraço!
Adilson
Olá pessoal,
Montei meu módulo IR com leitura dos valores no Monitor, mas testei o controle do kit e com um controle da TV, uma mesma tecla gera números diferentes. Existe um número padrão, mas várias vezes aparece um nunúme diferente fazendo com que para acionar um relé eu tenho que apertar umas 3 vezes a tecla configurada. Alguém sabe porque isso ocorre???
Ola meu amigo gostaria de colocar 2 IR , mais 1 led IR fica muito fraco , como ligo eles 2 da maneira correta ? Obrigado
Olá, A biblioteca já lê o sensor com INPUT_PULLUP ? ou seja, não e necessário inserir um resistor ? obrigado.
alguem sabe como posso fazer para receber o codigo IR e enviar outro codigo IR pre defeinido
Boa tarde. Meu receptor de IR não lê sinal de nenhum controle. Será que queimei?
Bom dia,
É provável. Recomendo que você teste com outro módulo.
Abraço!
Adilson
No post não explicaste a utilização do led
Oi Feliz!
Como assim? :/
Abraço!
Adilson
onde voce usa o led que acompanha o kit? Nao vi ele instalado na placa receptora
Oi Antonio,
Esse é um led IR para transmissão. Eu realmente não usei ele no circuito ou na placa. Somente a parte de recepção.
Abraço!
Adilson
Boa Noite
Estou com um problema, usei exatamente a mesma programação, e quando aperto uma tecla que esta sem função o sistema “dispara” a leitura desta mesma tecla e consequentemente não consigo executar mais nenhuma função.
Oi João,
Acho que faltam alguns delays nesse programa… tenta adicionar uma linha depois de irrecv.resume(); //Le o próximo valor (linha 50)
Adicione delay(100) e veja se funciona, por favor.
Abraço!
Adilson
boa noite,
como faço para enviar esse codigo em HEX? que comando devo usar para utilizar o led infravermelho?
Ótimo conteúdo.
No exemplo acima é para acender e apagar leds, no caso se fosse para controlar um rádio que não tem controle remoto de fabrica (nem sensor de infravermelho), como fazeria essa ligação no rádio.
Espero ter sido claro com minha dúvida.
Agradeço desde já.
ja tentei de tudo e não consigo fazer o receptor ler o controle remoto, toda hora tenho que ficar desplugando da porta, e cada conexão é um numero diferente