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:
up!!
Tá, o irRecev tá declarado o pino que é o pino 12, mas e qual pino ele uza pra enviar? faz um if se ele receber ele ativa o irsend e envia, nao entendi muito bem esse codigo nao mas sei que tá facil de achar o erro. :D
Para enviar ele usa o Pin D3 que ja vem configurado na biblioteca. Entao aparentemente ele nao precisa ser configurado. Como seria este If, nao entendi.
É um projeto para controlar o aparelho de TV que possuo.
Eu estou querendo fazer com que o arduino receba os sinais de um controle remoto qualquer e envie para a TV os códigos originais para controla-la.
Por exemplo: Quero trocar o canal da TV. Eu vou usar o outro controle remoto (qualquer), apertando a tecla na qual eu esta configurando no Sketch para enviar o código referente à troca de canal da TV
if (results.value == 16736925) se receber esse codigo do controle qualquer
{
for (int i = 0; i < 4; i++) {
irsend.sendNEC(0xAF518E7, 32); o arduino envia este codigo referente ao da TV
delay(400);
irrecv.enableIRIn();
}
up!!
tira a rotina de dentro do laço while...
void loop() {
if(irrecv.decode(&results)) {
long int decCode = results.value;
Serial.println(results.value); if (results.value == 16736925) {
for (int i = 0; i < 4; i++) {
irsend.sendNEC(0xAF518E7, 32);
delay(400);
}
irrecv.enableIRIn();
}
}
irrecv.resume();
}
Ola Flavio, ja tirei e nada. Não funciona do mesmo jeito!
up!
testa aew...
#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);
irrecv.resume();
}
if (decCode == 16736925) {
for (int i = 0; i < 4; i++) {
irsend.sendNEC(0xAF518E7, 32);
delay(400);
}
irrecv.enableIRIn();
decCode = 0;
}
}
Nada Flavio, esta do mesmo jeito!
Olha como o codigo fica:
Este é o codigo que o Arduino esta transmitindo
0
Could not decode message
Raw (66): -7650 900 -1000 950 -900 1000 -950 950 -900 1000 -2700 950 -950 950 -2700 950 -950 950 -2750 900 -2750 900 -2750 950 -2700 950 -950 950 -2700 950 -950 950 -2700 1000 -950 900 -950 1000 -950 950 -2700 950 -2700 950 -950 950 -950 950 -950 950 -2700 950 -2700 950 -2700 950 -1000 950 -950 950 -2700 950 -2700 950 -2700 950
Teria que transmitir este codigo:
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
vc esta recebendo estes valores aonde?
Tenho um outro arduino aqui ligado e coloquei ele para receber, naquele exemplo IRrecvDump da biblioteca IRremot.
qnd tira o primeiro irrecv.enableIRIn(); , funciona ?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por