Boa tarde a Todos.

Pessoal estamos tentando fazer uns testes para ligar, desligar e trocar de canal com a tv panassonic e samssung e philips.

Mais nenhuma foi com sucesso segui todos os protocolos que manda o tutorial 

http://www.righto.com/2009/08/multi-protocol-infrared-remote-librar...

http://as3breeze.com/arduino-sending-samsung-ir-codes/

Mais nada ele recebe o comando do controle como desconhecido mais, e ai tento mandar como Raw e ele não faz nada com as tv´s .

segue uma imagen com as ligações que fiz aqui com os leds.

Alguém poderia me dar uma ajuda ae e conferir se tem allgo errado nos meus testes.

Obrigado

Exibições: 9194

Anexos

Responder esta

Respostas a este tópico

Sim amigo...

Seu RawCode está errado, não pode conter numeros negativos e cada sinal precisa estar separado por virgulas

unsigned int rawCodes[100] ={6394,3500,1650,500,400,500,1200,500,350,500,400,500,350,500,350,500,350,500,350,550,350,500,350,500,350,500,350,500,400,500,1200,500,350,500,400,500,350,500,350,500,350,500,400,500,350,500,350,500,350,500,1250,500,350,500,350,500,350,550,350,500,350,500,350,500,350,550,350,500,1200,500,350,500,1250,500,1200,500,1250,500,1200,500,400,500,350};

Lembrando que o primeiro sinal capturado pelo IRdump deve ser desconsiderado...  não sei se já fez isto, se não fez deverá retirar o primeiro valor ( 6394 ) deixando assim.

unsigned int rawCodes[100] ={3500,1650,500,400,500,1200,500,350,500,400,500,350,500,350,500,350,500,350,550,350,500,350,500,350,500,350,500,400,500,1200,500,350,500,400,500,350,500,350,500,350,500,400,500,350,500,350,500,350,500,1250,500,350,500,350,500,350,550,350,500,350,500,350,500,350,550,350,500,1200,500,350,500,1250,500,1200,500,1250,500,1200,500,400,500,350};

Faça o teste com a sua TV Philips enviando o sinal decodificado ao inves do RAW, pois a Philips geralmente trabalha com RC5 ou RC6, fica bem mais fácil.

Primeira coisa que precisa fazer é verificar se o LED está enviando o sinal, para depois iniciar a programação dos códigos específicos para o seu aparelho.

Faça como já foi indicado, envie um sinal para o LED e visualize por uma camera..  verá o LED piscando através dela.

Veja no seu controle remoto normal, como o LED pisca vendo pela camera quando aperta algum botão...   no Arduino o LED deverá piscar da mesma forma.

Após estiver piscando, ai sim capture o DECODED ou RAW , formate corretamente e envie.

Para testar o LED, pode utilizar o próprio código que passou..

Somente descomente ( \\ ) o

 irsend.sendSony(0xa90, 12);

e comente o \\ irsend.sendRaw(rawCodes, 100, 38);

Este comando da Sony já deverá piscar o LED.

ok led testado e está ok.

mais mesmo com o codigo sem os negativos ele não liga a tv. Panasonic

O codigo capturado pelo controle remoto é.

pawer on / off
100BCBD
Decoded PANASONIC - Address: 4004 Value: 100BCBD (48 bits)
Raw (100): -6394 3500 -1650 500 -400 500 -1200 500 -350 500 -400 500 -350 500 -350 500 -350 500 -350 550 -350 500 -350 500 -350 500 -350 500 -400 500 -1200 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -1250 500 -350 500 -350 500 -350 550 -350 500 -350 500 -350 500 -350 550 -350 500 -1200 500 -350 500 -1250 500 -1200 500 -1250 500 -1200 500 -400 500 -350 500 -1200 500 -350 550 -1200 500 -1200 500 -1250 500 -1200 500 -400 500 -1200 500

E testei esse código agora.

//
// Demo of IRremote send() function on an Arduino Mega
// board.
//
// Derived from IRsendDemo from Ken Shirriff's IRremote library
// version 0.1 July, 2009
// Copyright 2009 by KenShirriff
//
// davekw7x
//
// For Mega boards, connect the IR led to Arduino pin 9
// through a suitable resistor.
//
#include <IRremote.h>

IRsend irsend;
unsigned int rawCodes[100] = {'3500,1650,500,400,500,1200,500,350,500,400,500,350,500,350,500,350,500,350,550,350,500,350,500,350,500,350,500,400,500,1200,500,350,500,400,500,350,500,350,500,350,500,400,500,350,500,350,500,350,500,1250,500,350,500,350,500,350,550,350,500,350,500,350,500,350,550,350,500,1200,500,350,500,1250,500,1200,500,1250,500,1200,500,400,500,350'};

void setup()
{
Serial.begin(9600);
pinMode(9,OUTPUT); // The library initializes pin 3 as an output
digitalWrite(9, LOW);// Since our LED is connected to pin 9, we initialize it here
}
int n = 0;
void loop() {
Serial.println(n++);

for (int i = 0; i < 3; i++) { // Send a burst of three commands
//irsend.sendSony(0xa90, 12); // Sony TV power code
irsend.sendRaw(rawCodes, 100, 38);
delay(40);
}

delay(5000); // Repeat every second
}

Amigo retira as aspas simples que está colocando no inicio e no final do array

{ ' ' };  Retire as ' ' aspas simples

O Buffer de memoria do IRremote é de 100 posições com isso quando o RAW chega a 100 pode ser que o sinal seja maior, mais o sistema só capturou as 100 posições porque é o seu limite.

Por isso é melhor enviar pelo Decoded.

Faça o teste com uma TV Philips que é mais simples para ver se está correta a sua ligação.

Você viu se o LED está piscando ?

sim o led está piscando como vc me falou anteriormente, só não liga a tv.

como ficaria meu codigo usando o que foi capturado do controle remoto

pawer on / off
100BCBD
Decoded PANASONIC - Address: 4004 Value: 100BCBD (48 bits)
Raw (100): -6394 3500 -1650 500 -400 500 -1200 500 -350 500 -400 500 -350 500 -350 500 -350 500 -350 550 -350 500 -350 500 -350 500 -350 500 -400 500 -1200 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -1250 500 -350 500 -350 500 -350 550 -350 500 -350 500 -350 500 -350 550 -350 500 -1200 500 -350 500 -1250 500 -1200 500 -1250 500 -1200 500 -400 500 -350 500 -1200 500 -350 550 -1200 500 -1200 500 -1250 500 -1200 500 -400 500 -1200 500

sobe o canal
1002C2D
Decoded PANASONIC - Address: 4004 Value: 1002C2D (48 bits)
Raw (100): 740 3500 -1650 500 -350 500 -1200 550 -350 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -1250 500 -350 500 -350 500 -350 500 -350 550 -350 500 -350 500 -350 500 -350 550 -350 500 -1200 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 500 -1200 500 -350 500 -1250 500 -1200 500 -350 500 -400 500 -350 500 -350 500 -1250 500 -350 500 -1200 500 -1250 500 -350 500 -1250 500

Desce o canal
100ACAD
Decoded PANASONIC - Address: 4004 Value: 100ACAD (48 bits)
Raw (100): -10760 3500 -1650 500 -350 500 -1250 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -350 550 -350 500 -350 500 -350 500 -1250 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 500 -350 500 -1200 500 -400 500 -350 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -1250 500 -350 500 -1200 500 -400 500 -1200 500 -1250 500 -350 500 -350 500 -1250 450 -400 500 -1200 500 -350 500 -1250 500 -1200 500 -400 450 -1250 500

sobe volume
1000405
Decoded PANASONIC - Address: 4004 Value: 1000405 (48 bits)
Raw (100): -30756 3450 -1700 500 -350 500 -1200 500 -350 550 -350 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 500 -350 500 -1200 500 -400 500 -350 500 -350 500 -350 500 -350 550 -350 500 -350 500 -350 500 -350 500 -1250 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -1250 500 -350 500 -350 500 -350 500 -350 550 -350 500 -350 500 -350 500 -1250 500 -350 500 -1200 500

desce volume
1008485
Decoded PANASONIC - Address: 4004 Value: 1008485 (48 bits)
Raw (100): 4656 3500 -1650 500 -350 500 -1250 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -1250 500 -350 500 -350 500 -400 450 -400 500 -350 500 -350 500 -400 450 -400 500 -350 500 -1200 500 -400 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -1250 500 -350 500 -350 500 -400 500 -350 500 -1200 500 -400 450 -400 500 -1200 500 -350 500 -400 450 -400 450 -400 500 -1250 450 -400 450 -1250 500

Modelo que peguei na internet

#include <IRremote.h> // use the library

IRsend irsend;

#define PanasonicAddress 0x4004 // Panasonic address (Pre data)
#define PanasonicPower 0x100BCBD // Panasonic Power button

// Power ON / OFF
unsigned int powerOn[100] = {'-6394 3500 -1650 500 -400 500 -1200 500 -350 500 -400 500 -350 500 -350 500 -350 500 -350 550 -350 500 -350 500 -350 500 -350 500 -400 500 -1200 500 -350 500 -400 500 -350 500 -350 500 -350 500 -400 500 -350 500 -350 500 -350 500 -1250 500 -350 500 -350 500 -350 550 -350 500 -350 500 -350 500 -350 550 -350 500 -1200 500 -350 500 -1250 500 -1200 500 -1250 500 -1200 500 -400 500 -350 500 -1200 500 -350 550 -1200 500 -1200 500 -1250 500 -1200 500 -400 500 -1200 500'};
// mudo o volume
unsigned int powerOnb[68] = {'1486 4550 -4400 600 -1650 550 -1650 550 -1700 550 -550 550 -600 550 -550 550 -550 600 -550 550 -1650 550 -1700 550 -1650 550 -600 600 -500 600 -550 550 -500 650 -500 600 -1650 550 -1650 600 -1650 550 -600 600 -500 650 -450 650 -450 650 -500 600 -500 600 -500 650 -500 650 -1550 600 -1650 550 -1650 600 -1650 550 -1700 550'};

#define PanasonicAddress 0x4004 // Panasonic address (Pre data)
#define PanasonicPower 0x100BCBD // Panasonic Power button

void setup()
{
Serial.begin(9600);

}

void loop() {
// @param1 Raw data
// @param2 length
// @param3 frequency, (most devices use 38khz)
char c = Serial.read();
if (c == 'a'){
for (int i = 0; i < 3; i++) {
//irsend.sendSony(0xa90, 12); // Sony TV power code
irsend.sendRaw(powerOn,100,48);
delay(40);
}
}

if (c == 'b'){
//for (int i = 0; i < 3; i++) {
//irsend.sendPanasonic(0x4004, 0x100BCBD); // Sony TV power code
irsend.sendPanasonic(PanasonicAddress,PanasonicPower); // This should turn your TV on and off
//delay(40);
//}
}

}

Conforme o exemplo que passou o tamanho do Raw está em 68 então ele capturou todo o sinal...

O seu está em 100, com isso o seu sinal é maior..  parou em 100 porque o buffer da bilioteca é de 100 posições apenas. então você não está conseguindo capturar todo o sinal, porque está limitado a 100 posições.

Por isso peço que teste com outro aparelho...

ou entre no arquivo IRremote.h e altere o valor do buffer de 100 para 180 ou maior.

Acompanhe o Tutorial abaixo que possui outros testes que poderá fazer..

http://arduinostuff.jimdo.com/home/remote/ir-codes/

Um abraço

por que 68 se ele capturou 100.

ou esse 68 é por conta de retirar os negativos e o primeiro campo como vc indicou.?

Paulo ligue o resistor no 5V. E teste o led com a camera fotografica. Tem que acender.

Se não acender , inverta o led - não tem perigo de queimar.

amigo testei o led e ele pisca sim mais tenho uns 10 leds iguais que nunca foram usados e foram comprados juntos que não acendem. será que estão queimados o duro que não dá para saber ou ver né.

É claro que da para ver. Você viu o procedimento para visualizar o led infra-vermelho com a camera fotografica que eu te enviei? 

simm vi pela camera..

Pode testar os leds com multimetro (teste de diodo). 

Se ligou direto nos 5V, pode ter queimado esses leds.

Se tem duvida sobre a polaridade, pode inverter se tiver ligado em serie com resistor.

ta beleza com multímetro ele responde ok acho que é o código.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço