controle remoto infra-vermelho ( ajuda )

Software e Hardware para uC da Qualcomm, NXP, FreeScale e Motorola

Moderadores: 51, guest2003

controle remoto infra-vermelho ( ajuda )

Mensagempor marcos.sce » 24 Jul 2008 14:03

Bom dia Senhores

Estou desenvolvendo um controle remoto para uma aparelho , que ja tenho,
tenho dificuldad para entender o processo do programa para ler a informação de um controle e fazer a operação.

---------------------------------------------------------
O que vi :

start bit // codigo aparelho // funcao // end bit

vi referencia como :

nivel 1 : periodo maximo // tipico // minimo
nivel 0 : periodo maximo // tipico // minimo

---------------------------------------------------------

vi alguns processo , ode utiliza-se a contagen de tempo para identificar zero ou 1 , testei alguns controle, tv , dvd com um receptor e o osciloscopio, par dar uma olhada no sinal .

vemos tambe que no mercado temos receptores com frequencia distintas,

38khz , 40 khz etc

tenho algumas coisas que peguei na internet, caso alguem esteja interessado posso passar tbem.

Gostaria de utilizar o hc908qt4

Caso alguem esteja interessado, esta convidado a participar.

Se alguem puder me ajudar a intender o processo , agradeceria muito.


Atenciosamente


Marcos
marcos.sce
 
Mensagens: 3
Registrado em: 24 Jul 2008 09:57
Localização: Maua

Mensagempor msamsoniuk » 24 Jul 2008 22:16

http://www.sbprojects.com/knowledge/ir/ir.htm

dah uma olhada nesse link ae.

note que as encodificacoes sao bem variadas, conforme a marca do controle remoto. eu diria que uma boa ideia seria criar um timer multiplo dos tempos de referencia que seu controle usa e usar esse timer para ir variando os pulsos nos tempos corretos. por exemplo, se o controle usa uma cadencia de 1Kbit/s e diferencia 0 de 1 quebrando esse pulso a uma cadencia de 2KHz, vc pode criar um timer de 2KHz e a cada duas interrupcoes setar os valores conforme 0 ou 1 precisam ser transmitidos, acho que nao tem muito segredo.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor marcos.sce » 29 Jul 2008 11:33

Ola Marcelo

Desculpe a demora , não conseguia conectar ao forum
-----------------------------------------------------

Então adorei o site, muito bom ,
realmente ha mais protocolos do que se imagina.

Então seria o seguinte :

-----------------------------------------------------

QUANTO A TRANSMISSÃO SERIA :

START BIT / ADRESS / COMANDO / ADRESS /COMANDO

START BIT - PARA RECONHECIMENTO DA TRANSMISSÃO
ADRESS - SERIA PARA IDENTIFIAR UM APARELHO ESPECIFICO
COMANDO - SERIA UM VALOR PARA O COMANDO EM SI

COM O BOTÃO PRESS. ELE ENVIARIA SEMPRE ADRESS / COMANDO

REPETIDAMENTE.

TERIA QUE GERAR UMA FREQUENCIA , EX : 38KHZ , CONFORME RECEPTOR,
E MODULAR START BIT , ADRESS , COMANDO.


QUANTO A Recepção SERIA :

VERIFICO SE START BIT
SE START BIT OK LEIO ADRESS / COMANDO
SE ADRESS = ADRESS APARELHO ACEITO COMANDO
ATRAVES DE ROTINAS COMPARO COMANDO E FAÇO FUNÇÃO DESEJADA

MMMMMM______MM__MMMM____ RECEPTOR=> ______ __ ____
START BIT / 0 / 1 !______! !__! !____

Seria isto ?

-------------------------------------------------------

Ja adiantando um pouco.


Consegui na net um ou dois programas em assembler estava olhando
e vi que ele usava tanto para transmitir quanto para receber
PWM , para isto ele usava TSC0 e TSC1, mas ahcei tremendamente
complicado, com ainda não tinha utilizado isto.

No caso o PWM me parece que ja faz a variação de largura.


vOCE CONHECE ESTA CONFIGURACAO PWM ?

ESTOU ESTUDANDO AQUI ESTA CONFIGURACAO , ASSIM COM TSC0 , TSC1
ME PARECE QUE PARA TRANSMITIR ESTE SINAL NÃO É COMPLICADO
POREM PARA RECEBER AI É O PROBLEMA.

NA PROGRAMACAO DO RAPAZ ELE ALTERNA A INTERRUPCAO EM NIVEL,
BORDA DE SUBIDA E BORDA DE DESCIDA , PARA MEDIR OS TEMPOS.

ATÉ ASSUSTA QUANDO SE OLHA O PROGRAMA.

-----------------------------------------------------------

SEGUE SITE DO PROGRAMA


www.circellar.com/fi2003/abstracts/F2006abstract.pdf


http://www.ingenieria-inversa.com.ar/contenidos.asp


NESTE : BC908_12 BC908_13 BC908_14
marcos.sce
 
Mensagens: 3
Registrado em: 24 Jul 2008 09:57
Localização: Maua

Mensagempor msamsoniuk » 30 Jul 2008 23:15

depende do modelo do controle remoto, mas na maioria dos casos acho q nao tem relacao com pwm, em geral eles tem temporizacoes bem particulares em relacao a uma determinada base de tempo e o objetivo eh apenas diferenciar consideravelmente o 0 e o 1.

eu cheguei a fazer alguns testes, mas infelizmente eh um codigo que eu nao guardei. no receptor eu usava uma interrupcao de 10KHz apenas para criar uma referencia de tempo de 100us e a partir disso marcava o tempo exato de cada mudanca de estado no receptor, depois fazia a analise e descobria exatamente o q o controle remoto enviou.

enfim, nao eh dificil, mas tambem nao eh muito simples hehehe
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor CCandido » 31 Jul 2008 10:04

Olá macos,
fiz um projeto de receptor de satelite, a anos atraz usei um CR com este
chip
http://www.holtek.com/english/docum/consumer/6221_2.htm

na epoca fiz tudo em asm, foi dificil, hoje seria moleza......
mas, o certo é ir direto ao ponto sem muito info e tal...pra nao confudir
resumindo: note este exemplo
primeiro cria uma _int(); ( borda decida/subira )
deceu salva time....subio salva time ( tempo = t2 - t1 )

start = 9ms
bit1 = 2.40ms
bit0 = 1.24ms
tudo isto é tratado dentro da _int();
primeiro se captura start 9ms, e sinaliza start=ok
ai so ir lendo e comparando se é 0/1 e dando shift em uma variavel
tolerancia 5% do valor ( 1.2-3,4,5 e 2.2-3,4,5 ) ja da

TSC0 e TSC1 como captura ele salva o time 16bits, tanto subindo/desendo
entao toda vez que subir, vc faz a conta de qual tempo deu ,ai so decidir
se é 0 ,1 ou start,

boa sorte,
CCandido
Byte
 
Mensagens: 120
Registrado em: 12 Out 2006 12:54
Localização: Londrina-PR


Voltar para NXP (ex-FreeScale (ex-Motorola))

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x