domingo, 5 de julho de 2026

Receptor de controle remoto do tipo HT6P20 no microcontrolador Holtek HT66F0185

Sabemos que o mundo da radio frequência é fascinante e ainda um mistério em muitos aspéctos. A história começa com a descoberta de que a eletricidade e o magnetismo são fenômenos intrinsecamente ligados e podem se propagar pelo espaço através de ondas eletromagnéticas. No século XIX, Michael Faraday mostrou que o campo magnético variável pode induzir uma corrente elétrica também variável e vice e versa, ou seja, uma corrente elétrica variável também produz um campos magnetico variável


Alguns anos depois James Clerk Maxwell veio com um conjunto de equações matemáticas que demostravam a existencia de ondas eletromagnéticas que se propagavam a velocidade da luz, desta forma demostrando teóricamente que a luz e as ondas de rádio pertencem ao mesmo fenômeno físico. 
Em 1887, Heinrich Hertz comprovou experimentalmente as previsões de Maxwell ao gerar e detectar ondas de rádio em laboratório. Em sua homenagem, a unidade de frequência passou a ser chamada de hertz (Hz)
Desde então a radio frequência evoluiu rapidamente e passou a ser utilizada em diversas aplicações como hoje conhecemos, celular, televisão, internet, IOT, LORA, Wi-Fi, Bluetooth, comunicação via satélite, dispositivos de automação e controles remoto de carro e potões automaticos. 

A faixa de frequência utilizada hoje é muito ampla e vai de acordo com a aplicação e sua eficiência. Abaixo eu mostro uma tabela com cada faixa de frequência e seu comprimento de onda.

FaixaFrequênciaComprimento de onda
VLF (Very Low Frequency)3 kHz – 30 kHz100 km – 10 km
LF (Low Frequency)30 kHz – 300 kHz10 km – 1 km
MF (Medium Frequency)300 kHz – 3 MHz1000 m – 100 m
HF (High Frequency)3 MHz – 30 MHz100 m – 10 m
VHF (Very High Frequency)30 MHz – 300 MHz10 m – 1 m
UHF (Ultra High Frequency)300 MHz – 3 GHz1 m – 10 cm
SHF (Super High Frequency)3 GHz – 30 GHz10 cm – 1 cm
EHF (Extremely High Frequency)30 GHz – 300 GHz1 cm – 1 mm

Neste artigo vamos explorar novamente um circuito e código em linguagem C para decodificar os controles remoto de portão ou centrais de alarme, muito utilizados ainda hoje em dia. Também é possível utilizar esta aplicação para automação e controles de carrinhos de controle remoto. A frequência utilizada será 433Mhz e a modulação ASK. Vamos utilizar como transmissor de radio frequência e controles semelhantes ao da figura abaixo:


Vamos usar nesta aplicação diversos componentes eletrônicos, como o microcontrolador HT66F0185, mas na versão de módulo (Módulo Holtek HT66F0185) para facilitar a montagem, o controle remoto com o chip HT6P20 (Exitem diversos modelos de diversos fabricantes), um kit de desenvolvimento de Holtek (Kit Holtek), novamente para facilitar e agilizar os testes e finalmente um circuito com um receptor de RF de 433Mhz. Abaixo uma lista do material utilizado:

  • Controle remoto com chip HT6P20
  • Modulo Microcontrolador HT66F0185
  • Kit de desenvolvimento e aprendiagem da QSP com micro Holtek HT66F0185
  • Receptor de RF na frequência de 433Mhz
  • Jumper do tipo usados em Arduino
Todo este material pode ser adquirido em nossa loja virtual (RoboMakers) bem como o código no microcontrolador HT66F0185. 

O uso deste microcontrolador se justifica principalmente por ser um micro de facil acesso (Cika do Brasil) e por ser um micro muito acessível e barato em comparação com seu concorrente Microchip. Cerca de U$0,50 alé de possuir ferramente de software e compilador GCC gratuítos. Também é possível adquirir um gravador chamado e-Link para executar a gravação In-Circuit. Temos abaixo primeiro a imagem da IDE HT-IDE3000 da própria Holtek e que pode ser baixada no site dele aqui. Também é possivel baixar os documentos como manual da IDE e do Compilador. Detalhe que o compilador ja vem embutido na IDE, portando não precisa instalar ou baixar separadamente. 


Temos também que demonstrar o gravador e-Link que é responsável por realizar a gravação In-Circuit. A gravação é serial síncrona, possuindo uma linha de clock e uma linha de dados. Ele utiliza de 4 pinos para fazer a gravação, são eles:
  1. Alimentação que pode ser 3,3V ou 5V
  2. GND
  3. Clock ICPCLK
  4. Dados ICPDA

Abaixo temos o gravador e-Link e seu software de gravação chamado de HOPE3000 For e-Link e pode ser baixado aqui no site da Holtek


É possível fazer a depuração do código via IDE HT-IDE3000 e este gravador ou apenas fazer a sua gravação. Para isso vamos utilizar o software também gratuíto HOPE3000, imagem abaixo. O link para baixar este software esta logo acima. 


Neste software é possível gravar o firmware na memória FLASH e também dados na memória EEPROM, para isso tem buffers, um da esquerda armazena o seu firmware compilado e a direita, os dados não voláteis. 

Pode realizar todas as tarefas abaixo usando este software:
  1. Gravação do Firmware
  2. Gravação dos dados na EEPROM
  3. Travar os Lock bits
  4. Apagar o microcontrolador por inteiro ou somente a FLASH ou a EEPROM
  5. Ler o firmware se não estiver travado
  6. Ler os dados da EEPROM se não estiver travado
E alguns comandos são aceitos por este software como:
  1. Ligar a alimetnação 5V ou 3,3V
  2. Resetar o micro
  3. Fazer um upgrade do firmware do gravador
Caso você deseja realizar gravações em muitos microcontroladores ou placas ja produzidas na sua fábrica, recomenda-se utilizar um gravador robusto e que pode fazer a gravação Off-line, ou seja, sem a conexão ao computador, ideal para produções. Este gravador chama-se e-WritePro. Veja imagem abaixo:


Agora que já abordamos todas as ferramentas de software e de hardware para realizar a criação do firmware e sua gravação, vamos falar do circuito criado para testar nosso controle remoto. Este circuito esta abaixo e podemos observar o microcontrolador HT66F0185, o receptor de RF de 433Mhz, um botão de gravação PROG, para salvar o código aprendido do controle remoto, uma saída a relé, uma saída para led Onboard e um Buzzer ativo. Analise este esquemático com atenção, reparando na pinagem do microcontrolador e esses periféricos, pois esses serão utilizados no nosso código.


Para definir as ligações do microcontrolador nos periféricos, nós utilizamos das diretivas #define. Assim conseguimos nomear cada sinal para cada periérico, por exemplo o Buzzer ligado ao pino PB1, o led onboard ligado ao pino PA7 e assim por diante. Veja esta parte do código abaixo como nos definimos o hardware desta aplicação.


Vamos mostrar agora o setup da bancada com todas as ligações e o controle remoto. A alimentação da placa esta sendo feita por uma fonte externa de 12V. Podemos visualizar a placa didática com o módulo Holtek HT66F0185, os jumpers de conexão, uma placa perfurada onde foi montado o receptor 433Mhz e um controle remoto simples de duas teclas. Depois vamos mostrar também o sinal de saída deste receptor.


O sinal de saída codificado vem do chip HT6P20, ja explicado neste BLOG, veja em outras publicações, mas vamos colocar novamente aqui o protocolo utilizado por este chip. Consta de um trem de pulsos, um sinal chamado de piloto seguindo de um pacote de endereço e dados e uma sequência de fim de pacote. O firmware do microcontrolador faz a função de aprender este código e decodificar. Uma vez decodificado ele liga um led e uma saída por 1,5 segundos e depois desliga. Mas você poderá acrescentar outras rotinas conforme a sua necessidade, o céu é o limite da sua criatividade. Na imagem abaixo, podemos ver o periodo do piloto com 23 clocks, 20 bits de endereço, 4 bits de dados e 4 bits de anti-code (0101). 


A função GeraNumero do nosso firmware tem a função de montar este pacote de bits e identificar cada parte do pacote. Desta forma, uma vez identificado o pacote, podemos salvar se o botão PROG for pressionado e posteriormente testado se este pacote veio novamente ou um outro pacote de bits. 


Nos utilizamos uma interrupção externa com borda de subida e descida, um timer 2 chamado de Compact Timer para gerar o tamanho de cada bit e uma lógica para identificar o pacote. Quando chega um pacote novo e não é pressionado o botão PROG, então é chamado uma rotina que testa as senhas, podemos ver esta rotina abaixo. Ela testa 2 vezes consecutivas as senhas que chegaram, e no caso positivo, liga o led e a saida Out1 por 1,5 segundos. 


O receptor utilizado foi um receptor ASK Super-Regenerativo de baixo custo da antiga empresa Telecontrolli, modelo RR3, veja a imagem abaixo. Estou deixando neste link as suas especificações, datasheet.

A razão de se utilizar este receptor, é porque eu tinha achado várias unidades em meu estoque, mas também funciona com outros modelos similares como por exemplo RWS-371. Veja a imagem abaixo um exemplar deste modelo.


Pode-se baixa o seu datasheet aqui neste link. O diagrama em blocos destes receptores esta mostrado abaixo e é composto entrada da antena de dipolo de 17,3 cm, um pré amplificador de RF que dá a sensibilidade de apeoximadamente 100dBm, um oscilador de RF, um filtro passa baixa, um amplificador AM, um comparador LM358 e o sinal de saída. Veja na imagem abaixo, um diagrama em blocos deste receptor.


O objetivo do receptor é transformar um sinal de rádio extremamente fraco (da ordem de microvolts) em um sinal digital de 0 e 1 que o microcontrolador (como o HT66F0185) possa decodificar. A antena recebe as ondas eletromagnéticas de 433,92Mhz. O sinal recebido é extremamente fraço, da ordem de unidades de micro volts até alguns mili volts, dependendo da distância e da potência do transmissor. Este sinal sozinho é impossivel de ser processado pelo microcontrolador que trabalha de forma digital. O pré-amplificador de RF tem a função de aumentar o sinal recebido, manter a relação sinal ruido otima e casar a impedância com a antena de modo que ocorra a máxima transferência de potencia. O oscilador de RF é o coração do receptor. Diferentemente de um receptor super-heteródino, aqui o oscilador trabalha praticamente na própria frequência de recepção, ou seja, 433,92Mhz. Ele funciona muito próximo do ponto de oscilação, demodo que quando chega um sinal na antena, o oscilador muda a sua amplitude. Esta variação é justamente o que permite detectar os sinais ASK. O oscilador Quench existem nestes tipos de receptores Super-Regenerativos, deligando o oscilador milhares de vezes por segundo e isto faz o circuito operar com enorme ganho. O filtro LP é um filtro passa baixa onde permite passar a informação e bloqueia a portadora de 433,92Mhz. Ela retira a portadora e sobra somente os bits 011101100111000. Chegando quase no final, tem o amplificador AM que é um amplificador de envoltória, por isso ASK (Amplitude Shift Keying). Por último temos o comparador que compara o sinal recebido com relação a uma referência. E na saída obtem-se o sinal digital. Temos as características elétricas deste receptor na imagem abaixo:


Vamos capturar com o osciloscopio este trem de pulso que chega no receptor 433Mhz. Podemos observar que o transmissor envia pacotes de bits um atrás do outro em um espaço que é determinado pelo tempo do piloto, veja o protocolo do HT6P20. Quando vocês montarem este circuito com o receptor, vão observar com o osciloscópio que mesmo sem o sinal do controle remoto, existe um sinal na saída do receptor. Isto é plenamente normal, uma vez que o receptor capta ruidos externos aleatórios. Mas quando se pressiona o botão do controle remoto, ele elimita este ruido, uma vez que a sua potência é bem superior a esses ruidos.


Veja o vídeo completo no youtube


Para adquirir o código fonte do microcontrolador, clique aqui
Para adquirir a placa didática com o microconttrolador HT66F0185, clique aqui
Para adquirir apenas o modulo HT66F0185, clique aqui
Para adquirir o controle remoto, clique aqui

Conclusão:
Podemo concluir que apartir deste código, o usuário pode criar seus próprios projetos como de portão automatico, centrais de alarme ou cercas elétricas, alarmes automotivos, automações residenciais e qualquer aplicação que envolva frequencia livre de 433Mhz e para aplicações simples e de distancias de até 100 metros sem obstáculos. 

Nenhum comentário:

Postar um comentário

Manual do Usuário do CLP Apollo - Versão 1.00

  Descrição: Neste blog vamos mostrar em detalhes o nosso CLP com ESP-32. Vamos escrever um artigo de modo que possa ser utilizado até como ...