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.
| Faixa | Frequência | Comprimento de onda |
|---|
| VLF (Very Low Frequency) | 3 kHz – 30 kHz | 100 km – 10 km |
| LF (Low Frequency) | 30 kHz – 300 kHz | 10 km – 1 km |
| MF (Medium Frequency) | 300 kHz – 3 MHz | 1000 m – 100 m |
| HF (High Frequency) | 3 MHz – 30 MHz | 100 m – 10 m |
| VHF (Very High Frequency) | 30 MHz – 300 MHz | 10 m – 1 m |
| UHF (Ultra High Frequency) | 300 MHz – 3 GHz | 1 m – 10 cm |
| SHF (Super High Frequency) | 3 GHz – 30 GHz | 10 cm – 1 cm |
| EHF (Extremely High Frequency) | 30 GHz – 300 GHz | 1 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: - Alimentação que pode ser 3,3V ou 5V
- GND
- Clock ICPCLK
- 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:
- Gravação do Firmware
- Gravação dos dados na EEPROM
- Travar os Lock bits
- Apagar o microcontrolador por inteiro ou somente a FLASH ou a EEPROM
- Ler o firmware se não estiver travado
- Ler os dados da EEPROM se não estiver travado
E alguns comandos são aceitos por este software como:
- Ligar a alimetnação 5V ou 3,3V
- Resetar o micro
- 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
aquiPara adquirir a placa didática com o microconttrolador HT66F0185, clique
aquiPara adquirir apenas o modulo HT66F0185, clique
aquiPara 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