Pessoal estou com problemas ao receber o sinal (codigo) de um controle IR e retransmitir outro codigo IR. "Controle Universal".
O Arduino recebe normalmente o codigo relacionado ao controle 1 mas não envia o outro codigo relacionado ao controle 2.
Ficando assim:
0
Could not decode message
Raw (66): -7650 900 -1000 950 -950 950 -950 950 -950 950 -2700 950 -950 950 -2700 950 -950 950 -2750 900 -2700 950 -2700 1000 -2700 950 -950 900 -2750 950 -950 950 -2700 1000 -900 1000 -900 950 -1000 900 -2750 900 -2750 950 -950 950 -950 950 -950 950 -2700 1000 -2650 950 -2750 900 -1000 900 -1000 950 -2700 900 -2750 950 -2700 950
Se eu retirar do void Setup o comando irrecv.enableIRIn(); ele funciona transmitindo o codigo correto (controle 2). Mas ele não recebe mais os sinais (controle 1)
AF518E7
Decoded NEC: AF518E7 (32 bits)
Raw (68): 20768 8950 -4450 550 -550 550 -550 600 -550 550 -550 550 -1650 600 -500 600 -1650 550 -550 550 -1700 550 -1650 550 -1650 600 -1650 550 -550 600 -1650 550 -550 550 -1650 600 -500 600 -550 550 -550 550 -1700 550 -1650 600 -500 600 -550 550 -550 550 -1650 600 -1650 550 -1650 600 -550 550 -550 550 -1650 600 -1650 550 -1650 550
A parte eletronica esta correto. É algo no codigo que nao esta desabilitando o receptor na hora de transmitir.
Segue o codigo abaixo. Alguem pode me ajudar? TKS
#include <IRremote.h>
int RECV_PIN = 12;
IRrecv irrecv(RECV_PIN);
decode_results results;
IRsend irsend;
void setup()
{
irrecv.enableIRIn(); -------SE RETIRAR FUNCIONA A TRANSMISSAO CORRETAMENTE MAS NAO RECEBE MAIS.
Serial.begin(9600);
}
void loop() {
while(irrecv.decode(&results))
{
long int decCode = results.value;
Serial.println(results.value);
irrecv.resume();
if (results.value == 16736925) {
for (int i = 0; i < 4; i++) {
irsend.sendNEC(0xAF518E7, 32);
delay(400);
irrecv.enableIRIn();
}
}
}
}
Tags:
Sim, funciona! Quando tira este comando do void setup do arduino que eu transmito. Porem este mesmo arduino nao recebe mais.
Mas ai eu faço uma rotina para enviar atravez da serial o comando ai ele envia normalmente o codigo. Vejo o codigo no segundo arduino!
Eu sei q é necessario pausar o receptor quando vai transmitir. Parece q é isso q ele nao esta fazendo
kra, testa esse codigo e acompanha o Serial dos dois arduino...
#include <IRremote.h>
int RECV_PIN = 12;
IRrecv irrecv(RECV_PIN);
decode_results results;
IRsend irsend;
void setup()
{
irrecv.enableIRIn();
Serial.begin(9600);
}
long int decCode = 0;
void loop() {
if(irrecv.decode(&results)) {
decCode = results.value;
Serial.println(decCode, HEX);
irrecv.resume();
}
if (decCode == 0xFF629D) {
Serial.println("Codigo Recebido");
Serial.println("Modo de Transmissao");
for (int i = 0; i < 4; i++) {
irsend.sendNEC(0xAF518E7, 32);
Serial.print("Enviado: ");
Serial.println(i+1);
delay(50);
}
Serial.println("Receptor ativado");
irrecv.enableIRIn();
decCode = 0;
}
}
Entao, ficou assim:
1° arduino
FF629D
Codigo Recebido
Modo de Transmissao
Enviado: 1
Enviado: 2
Enviado: 3
Enviado: 4
Receptor ativado
2°Arduino
FF629D
Decoded NEC: FF629D (32 bits)
Raw (68): 6588 9200 -4550 550 -600 600 -550 600 -550 550 -550 650 -500 650 -500 550 -600 600 -550 600 -1650 650 -1650 550 -1750 600 -1650 600 -1700 550 -1700 650 -1650 600 -1700 500 -600 600 -1700 550 -1700 600 -550 550 -600 600 -550 600 -1650 600 -550 600 -1650 600 -550 600 -550 550 -1750 600 -1650 600 -1700 550 -550 650 -1650 550
0
Could not decode message
Raw (66): -7600 950 -950 950 -900 1000 -950 950 -950 950 -2700 1000 -900 1000 -2650 1000 -900 950 -2700 1000 -2700 950 -2700 950 -2700 950 -950 1000 -2650 1000 -950 950 -2700 950 -950 900 -950 1000 -900 950 -2750 950 -2700 1000 -900 950 -950 950 -950 950 -2750 950 -2700 950 -2650 1000 -950 950 -900 1000 -2700 950 -2700 1000 -2650 1000
up!!
UP!!!!!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por