Garagistas,
Estou com alguns problemas ao montar arduinos que recebem códigos infravermelhos. Os sinais tem uma taxa de erros de recebimento muito alta. Já montei outros projetos que recebem sinal razoavelmente bem, mas ainda apresentam taxa de erro média e sensibilidade média.
Não consigo entender como o receptor é tão pouco sensível ao receber um sinal. Os meus aparelhos da sala, basta apenas um reflexo do sinal do controle na parede por exemplo que já funciona, enquanto o arduino as vezes preciso me levantar e ter linha visada perfeita para funcionar, e quando funciona...
Para tentar descobrir a origem do problema, estou usando esse código super simplificado que indica o protocolo e o código recebido. Carreguei o sketch em um duemillanove e liguei um dos receptores, mas o resultado foi pior ainda... Não conseguiu decodificar nada, a não ser as repetições FFFFFFFF do protocolo NEC
Eis o código:
#include <IRremote.h>
#include <IRremoteInt.h>
const int RECV_PIN = 6;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
irrecv.blink13(true);
Serial.println("init");
}
void loop() {
if (irrecv.decode(&results)) {
if (results.decode_type == NEC) {
Serial.print("NEC: ");
} else if (results.decode_type == SONY) {
Serial.print("SONY: ");
} else if (results.decode_type == RC5) {
Serial.print("RC5: ");
} else if (results.decode_type == RC6) {
Serial.print("RC6: ");
} else if (results.decode_type == UNKNOWN) {
Serial.print("UNKNOWN: ");
}
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}
O que recebo na serial é isso:
init
UNKNOWN: 6BA470EF
NEC: FFFFFFFF
UNKNOWN: 4CB0FADD
NEC: FFFFFFFF
UNKNOWN: 24AE7D4F
NEC: FFFFFFFF
NEC: FFFFFFFF
NEC: FFFFFFFF
UNKNOWN: C503CECF
UNKNOWN: 25AE7EE0
UNKNOWN: 71ED18FC
UNKNOWN: DCB07354
UNKNOWN: A57305FD
NEC: FFFFFFFF
NEC: FFFFFFFF
UNKNOWN: 892614D9
NEC: FFFFFFFF
NEC: FFFFFFFF
UNKNOWN: 61AEB848
NEC: FFFFFFFF
NEC: FFFFFFFF
UNKNOWN: 60CFF56D
O protocolo desse controle em particular é NEC em todas as teclas, muitos dos "UNKNOWN" eram a mesma tecla pressionada várias vezes, porém teve um código totalmente diferente e aparentemente desconhecido.
O controle remoto não tem defeitos, pois uso o mesmo controle em outro aparelho e funciona perfeitamente
Eu tenho o palpite de que o problema pode ser esse componente de recepção que uso. Se não me engano é o TSOP1738.
O curioso é que no passado os meus projetos funcionavam muito bem e ultimamente tem dado muitos problemas.
Segue imagem:
Grato
Tags: alta, arduino, erro, erros, infrared, infravermelho, ir, receive, taxa
Permalink Responder até Fellipe Couto em 27 julho 2012 at 15:29
Eu ia dizer exatamente pra vc tentar com outro receptor...
Permalink Responder até Marcos Paulo Braga Estrela em 27 julho 2012 at 16:57
Olá arthur,
Como você está alimentando o arduino? Pelo porta usb mesmo? A pouco tempo eu estava fazendo testes com um receptor de IR, e o mesmo apresentava bastante interferência que eu não sabia de onde. Quando alimentei o arduino com uma fonte externa as interferências sumiram. Tenta isso e vê se consegue algum resultado...
Permalink Responder até Arthur em 27 julho 2012 at 21:05
Eu liguei agora uma fonte de 12V na entrada mas não mudou absolutamente nada. O curioso é que como esse código mostra qualquer coisa que recebe, ele me parece que detecta de fato com facilidade que houve uma transmissão infravermelha, até com um alcance e angulo muito superiores, mas o problema é que ele 99,9% das vezes erra o código mesmo nas melhores situações de recebimento. Vocês que tiverem projetos com receptores infravermelhos que funcionem bem, poderiam me mandar fotos ou modelos de receptores bons?
Em paralelo a isso, no passado eu tinha criado um tópico aqui sobre Capturar sinal "RAW" Infravermelho, apesar de várias respostas que tive, eu jamais consegui obter o resultado desejado (controles de ar-condicionado nunca funcionaram com o arduino). É bem provável que a origem do meu insucesso venha do receptor que eu uso, não é?
Permalink Responder até Arthur em 1 agosto 2012 at 9:10
Pessoal, vocês poderiam dizer quais são os sensores infravermelhos que vocês usam?
Permalink Responder até Fellipe Couto em 1 agosto 2012 at 9:36
Sempre usei desses comuns, pretinhos. :)
http://www.soldafria.com.br/receptor-infravermelho-irm2638-p-3402.html
Ou recebe o sinal, ou não recebe. Nunca vi receber sinal errado.
Abraços!
Permalink Responder até fabio henrique em 3 agosto 2012 at 10:00
já olhou o datasheet do receptor? qual a modulação que ele aceita? no datasheet tambem pede pra usar um resistor mais um capacitor para minimizar interferencia.
Aqui há uma explicação para o provavel ocorrido, arduino post.
O mesmo assunto aqui.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
Por: R$ 29,00
Ou em até 6x de
R$ 5,18
Por: R$ 150,00
Ou em até 18x de
R$ 10,00
Por: R$ 195,00
Ou em até 18x de
R$ 13,00
(ADS1102C) - 100MHz - 2 Canais
Por: R$ 1920,00
Ou em até 18x de
R$ 127,96
© 2013 Criado por Marcelo Rodrigues.