Há algum tempo atrás, publiquei versões de testadores de controle remoto usando o microcontrolador AT89c2051. Mas muitos hobistas estão acostumados a trabalhar apenas com PIC e gostariam também de ter uma versão com ele. Veja, então, como ficou …
O esquema abaixo mostra as ligações entre Lcd, Pic e receptor de controle remoto miniatura.
Como funciona?
Basta ligar o aparelho, que irá apresentar no Lcd o nome : ‘Control_tester4’ e após algum tempo mostrará: ‘TX?’ , ou seja, ficará aguardando um controle remoto ser acionado próximo a ele. Ao ocorrer isto, existindo nele um circuito integrado da familia HT6P20B ou da familia HCS 200 … 301, será mostrado no visor do LCD o conteúdo da transmissão e qual familia pertence (HCS ou HTP).
Por exemplo: Se aparecer o seguinte:
‘CIRC.INTEG.HTP:’ na primeira linha e ‘F573498’ na segunda linha, significa que o chaveirinho trabalha com integrado HT6P e gerou o sinal hexadecimal equivalente a F573498. Como não é hoppingcode, o valor mostrado sempre será o mesmo.
Agora, se aparecer o seguinte:
‘CIRC.INTEG.HCS:’ na primeira linha e ’00F357349877FBAB’ na segunda linha, significa que o chaveirinho trabalha com integrado HCS e gerou o sinal hexadecimal equivalente a 00F357349877FBAB. Como é hoppingcode, o valor mostrado sempre será modificado a cada vez que apertar o botão. Note que os 4 primeiros números se refere a parte fixa do código e os 4 restantes, ao Hopping code (fica mudando a cada transmissão).
Foi colocado também, uma pequena capsula de cristal (daquelas usadas em campainha de telefone) para ‘ouvirmos’ o som da recepção. Isto ajuda quando estamos em dúvida, se está havendo transmissão ou não (como no caso de bateria fraca no chaveirinho).
Caso precise testar controles de varias frequências, poderá colocar varios receptores com frequências diferentes e uma chave seletora na entrada do pino 17. O mais usual é a frequencia de 433 MHZ, mas temos muitos ainda com 315MHZ e outras estão chegando.
Para 433 MHZ, um pequeno pedaço de fio de 15 cm será suficiente como antena. A alimentação poderá provir de 4 pilhas AA com um diod em série, ou uma bateria de 9 volts com o regulador 7805 instalado para reduzir aos seguros 5 volts. Também poderá usar um transformador, retificadores e capacitores, como nessas fontes de parede de 9 volts. Modernamente, tem saido no mercado, carregadores de celulares cuja saída é de exatos 5 volts. Poderão também ser usados, visto que seus preços são inferiores em relação ao de se montar uma fonte com transformador comum e outros componentes (melhor acabamento também e tamanho reduzido). O Lcd usado é um 16×2, muito comum nas lojas de componentes (e compras pela Internet).
Para mais detalhes de operação, veja os artigos ‘CONTROL_TESTER1‘ e ‘CONTROL_TESTER2 neste blog.
Segue abaixo o arquivo ASM:
Segue abaixo o arquivo HEX:
Curiosidades:
Universo cheio de surpresas
Universo – obra do acaso?
Nosso inigualável sistema solar
Mapeamento do céu
Qual a origem do universo e a vida?
Ponte da Torre – Entrada para Londres
O planeta vivo
Outros assuntos:
Quatro dicas para lidar com problemas financeiros e dívidas
Como lidar com sucesso com os sogros
Como reagir a um assédio sexual
Como parar de adiar as coisas
Até o próximo artigo!!!
Ola Claudio este e o projeto que eu gostaria de poder exibir o código no LCD e no PC via RS232 se possível agradeço antecipadamente por sua atenção.
Grato
Carlos Roberto
Olá Carlos Roberto! Assim que tiver um tempo livre vou ver o que se pode fazer.
Claudio
Olá Carlos! Veja o novo artigo ‘Control_tester_rs232’.
Claudio
I found where to delete or add comment.
; LIMPA
; MOVLW MSG1
; CALL ENV_LCD
; MOVLW 0XC5
; CALL EC
; MOVLW MSG3
; CALL ENV_LCD
This work ok.How to do the the same like was version with AT89C2051.I need to read the code all time of receiving signal with NO back on 1 display after 5 sec.I made the control-tester2 with AT89C2051 and work perfect!And I wont to do the same think with pic16f628. Many thanks and all the best from Prague (Czech Republic)
How to made fix reading number on display?To see on display all time number reading code from receiver.To
do the same like version with AT89C2051.In this version I can see only 5 sec reading number. Thanks
HI “dig99”!
The way more easy will be to put a ‘goto $’, that WILL stop and ‘freeze’ the display. Then, use the ‘reset’ botton or off/on, for a new reception.
See down (16F628A):
J1:
LIMPA
LINHA1
MOVLW MSG5
CALL ENV_LCD
MOVLW 0XC5
CALL EC
SWAPF CSR6A,W
CALL BIN_ASC_ED
MOVFW CSR6A
CALL BIN_ASC_ED
SWAPF CSR5A,W
CALL BIN_ASC_ED
MOVFW CSR5A
CALL BIN_ASC_ED
SWAPF CSR4A,W
CALL BIN_ASC_ED
MOVFW CSR4A
CALL BIN_ASC_ED
;—————————————————
GOTO $ ;PUT HERE
;—————————————————-
MOVLW .5 ;ESTAVA 20
CALL DELAYW
BCF FLAGX
BCF FLAGY
GOTO MAIN_C
ROT_HCS:
LIMPA
LINHA1
MOVLW MSG4
CALL ENV_LCD
LINHA2
SWAPF CSR7,W
CALL BIN_ASC_ED
MOVFW CSR7
CALL BIN_ASC_ED
SWAPF CSR6,W
CALL BIN_ASC_ED
MOVFW CSR6
CALL BIN_ASC_ED
SWAPF CSR5,W
CALL BIN_ASC_ED
MOVFW CSR5
CALL BIN_ASC_ED
SWAPF CSR4,W
CALL BIN_ASC_ED
MOVFW CSR4
CALL BIN_ASC_ED
SWAPF CSR3,W
CALL BIN_ASC_ED
MOVFW CSR3
CALL BIN_ASC_ED
SWAPF CSR2,W
CALL BIN_ASC_ED
MOVFW CSR2
CALL BIN_ASC_ED
SWAPF CSR1,W
CALL BIN_ASC_ED
MOVFW CSR1
CALL BIN_ASC_ED
SWAPF CSR0,W
CALL BIN_ASC_ED
MOVFW CSR0
CALL BIN_ASC_ED
;———————————————–
GOTO $ ;PUT HERE
;———————————————-
MOVLW .5 ;ESTAVA 20
CALL DELAYW
BCF FLAGX
BCF FLAGY
GOTO MAIN_C
Try make the same with AT89c2051 (use ‘AJMP’ instead of ‘GOTO’).
See down:
J1:
ACALL RLIMPA
MOV A,#LINHA1
ACALL EC
MOV DPTR,#MSG5
ACALL ENV_MSG
MOV A,#0C5H
ACALL EC
MOV A,CSR6A
ACALL conv_asc2
MOV TMP,R1
ACALL ED
MOV A,TMP
ACALL ED
MOV A,CSR5A
ACALL conv_asc2
MOV TMP,R1
ACALL ED
MOV A,TMP
ACALL ED
MOV A,CSR4A
ACALL conv_asc2
MOV TMP,R1
ACALL ED
MOV A,TMP
ACALL ED
;——————————————
AJMP $ ; PUT HERE
;——————————————-
MOV A,#20H
ACALL DELAYM
CLR FLAGX
CLR FLAGY
AJMP MAIN
ROT_HCS:
ACALL RLIMPA
MOV A,#LINHA1
ACALL EC
MOV DPTR,#MSG4
ACALL ENV_MSG
MOV A,#0C0H ;LINHA 2
ACALL EC
MOV A,CSR7
ACALL conv_asc2
MOV TMP,R1
ACALL ED
MOV A,TMP
ACALL ED
MOV A,CSR6
ACALL conv_asc2
MOV TMP,R1
ACALL ED
MOV A,TMP
ACALL ED
MOV A,CSR5
ACALL conv_asc2
MOV TMP,R1
ACALL ED
MOV A,TMP
ACALL ED
MOV A,CSR4
ACALL conv_asc2
MOV TMP,R1
ACALL ED
MOV A,TMP
ACALL ED
MOV A,CSR3
ACALL conv_asc2
MOV TMP,R1
ACALL ED
MOV A,TMP
ACALL ED
MOV A,CSR2
ACALL conv_asc2
MOV TMP,R1
ACALL ED
MOV A,TMP
ACALL ED
MOV A,CSR1
ACALL conv_asc2
MOV TMP,R1
ACALL ED
MOV A,TMP
ACALL ED
MOV A,CSR0
ACALL conv_asc2
MOV TMP,R1
ACALL ED
MOV A,TMP
ACALL ED
;——————————————
AJMP $ ; PUT HERE
;——————————————-
MOV A,#20D
ACALL DELAYM
CLR FLAGX
CLR FLAGY
AJMP MAIN
Cláudio
Claudio, o seu projeto consegue ler o codigo do tx, e muito complicado alterar este projeto para se tornar uma receptora para esta linha de controle hcs, gravando o codigo transmitido na sua eprom interna ou externa.Valeu ai por mais um projeto exelente, parabens.
Olá Agnaldo! Veja os artigos “receptor para controle com HCS200 a 301′.
Claudio
😛 Boas, montei o TESTER-3 e testei 100% claudio, funciona beleza, agora vou aprender como ler todos os codigos, valeu mesmo ai ok pelo o post.
❗ Olá Claudio, olha eu aqui de novo pertubando, fica dificil alterar este esquema para testar aqueles controles com corte de 9 pinos o ht6026 ou o MC145026 para ver o codigo que foi cortado
Olá Agnaldo! Será que alguém ainda usa este ci?
Só permite umas 19000 combinações de código apenas.
Claudio
a sim e inviavel projetar neste ci. mais seria para testar o que ja tem existente. e tem muita coisa ainda ai esparramada. sao os mais antigos e tb e curiosidade sobre como funciona. valeu