CONTROL_TESTER_HT6026 – VISUALIZANDO CÓDIGO DE CONTROLE REMOTO COM HT6026 / MC145026 EM LCD (COM PIC16F628A)

Muitos ainda se lembram dos primeiros controles remotos, que usavam o ci 145026 ou HT6026 para codificar uma transmissão baseado em ‘cortes de arames’, nos pinos 1 a 7 e 9,10. Seria possível ver em um lcd o código transmitido? …

Veja o esquema abaixo:

Usando um PIC 16F628A, podemos fazer esta montagem didática para ver em um LCD a transmissão de um controle remoto com ci HT6026 ou 145026. Após ligar, irá mostrar o nome do aparelho, e ficará em seguida, aguardando uma transmissão válida. Ao receber uma, será mostrado no LCD desta forma:

| pin: 1097654321 |
| -o+oo-o-o |

Sendo: Pin: = Pinos do HT6026/145026
– = pino se encontra aterrado (ou não cortado o fio)
+ = ligado ao vcc (não cortado o fio – não usado na maioria dos controles)
o = aberto (fio cortado)

COMO FUNCIONA O HT6026/145026

Estes ci’s trabalham com uma codificação ‘ternaria’ nos pinos 1 a 7 e 9, 10. Isto significa que 3 estados podem ser aceitos nesta codificação: ligado ao gnd, ligado ao vcc e aberto (não ligado). Quando o pino 14 é aterrado por um período mínimo de 65 nanosegundos, inicia-se uma transmissão, começando com um intervalo de 18 clocks, e depois, são transmitidos 9 bits, a partir do bit0 até o bit8 (9 bits), em sequência ( 72 clocks). Em seguida, temos um outro intervalo de 24 clocks, e segue-se uma segunda transmissão, repetindo os 9 bits anteriores (+ 72 clocks).
A frequência do oscilador é determinada pela malha RC nos pinos 11,12 e 13 do integrado.
Use a seguinte fórmula para calcular a frequência:

Freq. oscilador = 1/(2,3 x REXT X ( CEXT + C(LAYOUT) + 12 pf)) ; em Hertz

Sendo: RS= 2 REXT
RS > 20K
REXT > 10K
CEXT> 400 PF
C(LAYOUT) = Capacitância parasita da placa de circuito impresso

Entre com valores:
R em Ohms
C em Farads
Freq em Hertz

Valores tipicos encontrados são: REXT= 47k , RS= 100k e CEXT= 4700 pf
dando um frequência de +- 1khz

Veja a figura abaixo:

Vemos aqui, o formato de cada bit para ‘0’,’1′, ou ‘aberto’.

FUNCIONAMENTO DO ASM

Para decodificar o sinal recebido, o pino 17 (entrada de RF) verifica a cada +-200 microsegundos (depende de Tmax), se houve uma mudança. Se continuar em nivel ‘0’ irá incrementar o contador ‘LC’ até o limite de 255D. Isto indica um intervalo. Ao ocorrer um nivel ‘1’ , irá incrementar o contador ‘HC’. Se antes deste nivel houve um intervalo, este pulso ‘1’ será desprezado e os flags e registradores de recepção são resetados em preparação para uma recepção. Passamos a receber exatamente o meio do bit transmitido. Os próximos bits recebidos serão examinados se são: LC>HC , HC>LC ou HC=LC. Cada bit recebido gera 2 bits, após este exame, e são guardados no buffer RES4 a RES0. Depois, ocorre uma comparação destes registradores de recepção (RES4 a RES0) com valores previamente escolhidos, que refletem o nível de tensão nos pinos do integrado do transmissor, e mostrados no LCD usando ‘+’ (para ligado no vcc), ‘-‘ (para ligado ao gnd) e ‘o’ (para fio cortado ou seja, pino sem ligação). Esta solução pode até parecer um pouco confusa, mas funciona!!! Lógicamente, poderia ter sido feita de ‘n’ forma diferentes, mas esta foi a escolhida.

Ainda na figura abaixo veremos um esquema típico de um TX usando o circuito integrado ht6026.

É importante lembrar que a frequência portadora do transmissor têm que ser igual ao do receptor. Também, os cortes nos arames tem que ser igual no tx e no receptor de serviço do mesmo. Como no passado foram usadas varias frequências de portadoras, certifique-se de saber antes de usar ou obter o receptor.
Este ci permite ter apenas 3 elevado a 9 = 19683 combinações diferentes. Quando se trabalha em modo binário (com apenas ligado ao gnd ou aberto), este número reduz para apenas 512 combinações possíveis.
Infelizmente, o CONTROL_TESTER5 está limitado a uma faixa de frequência do oscilador do tx entre 800 hz a 4khz (típico é 1khz). Para frequência diferentes a estas, terá que ser testado novos valores para o equate ‘TMAX’, no arquivo ASM.
Esta montagem foi feita para fins didáticos, sujeita a bugs não identificados ainda, sendo testada unicamente em placa de protoboard.

Caso deseje visualizar controles com HT6p20b (com AT89c2051) veja este link do CONTROL_TESTER_1.
Caso deseje visualizar controles com HT6p20b e também HCS200…301 (com AT89c2051) veja este link do CONTROL_TESTER2.
Caso deseje visualizar controles com HT6p20b e também HCS200…301 (com PIC 16F628A) veja este link do CONTROL_TESTER_3.

Segue abaixo o arquivo ASM:

CONTROL_TESTER_HT6026_ASM

Segue abaixo o arquivo HEX:

CONTROL_TESTER_HT6026_HEX

Informações para esta matéria foram obtidas dos seguintes datasheets:

MC145026
HT6026
PIC 16f628a

Preço de PIC
Preço de rx/tx 433mhz

Curiosidades:
Por que tantos crimes violentos?
Como vai a sua Tireóide?
Matemática para todos
Beneficios da amamentação na Inteligência das criança
A glória das estrelas
Al_Jazari – ‘pai da robótica’?
O ‘pim’ – confirma relato biblico
Jockeys ‘robos’
Controle remoto e o efeito estufa
Zepelim
Ouvindo sons do espaço
Porque as estrelas são cintilantes?

Outros assuntos:
Como sobreviver ao primeiro ano de casamento
Quando um dos conjuges tem necessidades especiais
Como lidar com dívidas
Como resolver diferenças no casamento
Como tratar o conjuge com respeito
Como evitar ferir com palavras
Ensine seus filhos bons principios com atividades de colorir
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
Entrevista com um bioquímico

Até o próximo artigo!!!

18 comments on “CONTROL_TESTER_HT6026 – VISUALIZANDO CÓDIGO DE CONTROLE REMOTO COM HT6026 / MC145026 EM LCD (COM PIC16F628A)

  1. Prezado Claudio, primeiramente gostaria de lhe parabenizar pelo fórum e pela atenção que dá aos seus leitores. Vi em outro post sobre esse mesmo assunto que o senhor não trabalha com “C”,já eu só entendo linguagem C e não sou profissional. Um dia atras montei esse circuito e funcionou bem, agora gostaria de implementar minha versão em “C”, para isso gostaria que me ajudasse informando os valores e módulos que o senhor usou. Outro detalhe, olhei o datasheet do HT6026 e entendi que preciso fazer uma função para ler 186 pulsos de clock com período de 0.002631, confere?

    1. Olá Ausilon!
      Agradeço seu comentário e fico feliz em seu interesse em implementar o código em ‘C’. Depois, se desejar compartilhar, será bem vindo, pensando nos colegas que usam ‘C’.
      Quanto ao número de clocks, creio que não seja bem assim. Lembrando que, conforme o resistor/capacitor que é colocado no ci HT6026 (pinos 11,12,13), teremos uma frequência diferente transmitida.
      Assim, o receptor tem que ter uma certa ‘largura’ de faixa que possa receber bem os sinais. São enviados 9 bits ‘especiais’ (veja datasheet pag.4 figura 3), seguido de um tempo para sincronismo em nível baixo. A técnica usada no ASM para enfrentar a ‘largura’ de frequência foi testar a entrada de sinal e incrementar um registrador para nivel alto (se entrada ‘1’) e incrementar um para baixo (se entrada ‘0’). Depois, subtrai um do outro para determinar o valor recebido. O primeiro sinal alto recebido servirá para zerar os registradores. Na realidade, testamos o ‘meio do bit especial’. Confuso? Até para explicar fica díficil.
      Claudio

      1. Esqueci de citar que o TX que tenho aqui esta em 380Hz por isso achei aquele período. No caso os 9 bits(piloto) são usados somente para sincronismo ou tem mais alguma informação nesses dados. Acho que terei de estudar mais técnicas de sincronismo 💡

        1. Olá Ausilon! Na realidade, os 9 bits são toda a informação que o HT6026 transmite. A sincronização é feita pelo intervalo de tempo maior (tempo morto) entre repetições de transmissões.
          Claudio

      2. boa noite cladio. esse CONTROL_TESTER_HT6026
        consegue ler a frequencia do controle o e so o codigo do controle.obrigado

        1. Olá Josivanio!
          O “CONTROL_TESTER_HT6026” somente e unicamente foi feito para visualizar o código transmitido. Portanto, não é algum tipo de “frequencímetro” para controle remotos.
          Cláudio

          1. Bom dia Claudio Larios Obrigado. Pela a atenção.
            Voce Teria Algum Projeto Que Mostre a Frequencia do Controle 433mhz e Outros.Obrigado.

          2. Olá Josivanio!
            Infelizmente não tenho. Parece que tal equipamento não é muito divulgado, exceto para comprar.
            Cláudio

  2. Caro amigo boa- noite!
    Você teria uma versão destes projetos que exibi o resultado em RS232 alem do LCD!
    Mais uma vês parabéns por sua iniciativa e projetos apresentado.
    Grato
    Carlos Roberto

    1. Olá Carlos Roberto! Você gostaria de visualizar na tela do seu PC,usando apenas rs232, é isto? Se for , qual dos projetos lhe interessa?
      Claudio

      1. Caro amigo muito obrigado por sua atenção.
        Seria este projeto abaixo.
        CONTROL_TESTER_HT6026 – VISUALIZANDO CÓDIGO DE CONTROLE REMOTO COM HT6026 / MC145026 EM LCD (COM PIC16F628A)
        Muito obrigado.
        Carlos Roberto

        1. Claudio desculpe a confusão lhe indiquei o projeto errado o que eu gostaria de ver no LCD e no PC é este abaixo
          CONTROL_TESTER_PIC4_ASM
          Agora vejo como é importante fazer o comentários no artigo.
          Muito obrigado a sua atenção para mim já é o bastante.
          Carlos Roberto
          😛

  3. amigo deixei um comentario porem ele sumiu , estava te falando daquele defeito do chama garçon , e te perguntei se prefere que eu poste no projeto certo ou pode ser neste aqui mesmo , é que ele não memoriza o digito 1 até grava mas quando deliga da alimentação ele some com o primeiro numero (1)
    o restante fica normal e sobre o delay , ele pisca uns 3 segundos logo apos que chama teria como mudar este tempo é que não sei mexer no compilador e nem em asm , obrigado e desculpe qualquer coisa

    1. Olá Liliano! Gostaria que você pudesse fazer o comentário no próprio artigo, pois isto facilita quando preciso acompanhar no esquema ou mesmo no código asm. Você disse ‘ que ele não memoriza o digito 1 até grava mas quando desliga da alimentação ele some com o primeiro numero (1)’. Quando você usa o Ponyprog para ler a memória do Atmega8, consta o controle (o número 1) gravado? Isto acontece também com controles reservas? Eu não identifiquei este problema na montagem que fiz. Mas pode ser que ocorra sob certas circunstancias.
      Claudio

  4. 😛 Opa beleza então, vou mandar tb em pdf, se bem qe a escala em que eu faço a impressão e a medida fiel do desenho, eu uso um aplicativo chamado CUTPDF para imprimir…
    Valeu, Agnado….

  5. :mrgreen: :mrgreen: Opa.Blz Cludio so agora que fui ver o novo post seu, valeu ai por mais esta dica e nesta versão antiga de controle remoto. ja vou testar mais este exemplo. valeu mesmo, so me comenta se vc consiguiu abrir o desenho que lhe enviei, se for o caso eu ti mando em arquivo pdf ja no jeito de imprimir a tela, para facilitar os amigos do forum.

    1. Olá Agnaldo! Com respeito ao Pdf, ele é mais fácil de abrir, no entanto, em alguns casos, as medidas podem ser alteradas do real. Talvez possa enviar os 2 modos, sendo um para uma visualização rápida e o outro para quem realmente vai fazer, na escala correta.
      Cláudio

Comments are closed.

Back To Top