Problema ao enviar e receber sinal Infra Vermelho (IR)

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();

}
}
}
}

Exibições: 1328

Responder esta

Respostas a este tópico

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!!!!!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço