Uma das maiores dificuldades ao desenvolver sistemas que trabalham com dezenas de controles remotos é a obtenção de tais controles. Não é damais dizer que isto aumenta o custo do desenvolvimento. Mas, se pudessemos simular dezenas, até centenas de controles diferentes para teste? Isto já é possível!!! Veja como…
Observe o circuito abaixo:
Com um simples AT89C2051 (baratíssimo!!!) podemos simular via software, os sinais de vários controles remotos do padrão Ht6p20b. O segrêdo está em usar uma combinação de chaves para gerar um número hexadecimal a ser transmitido junto com uma parte fixa previamente determinada no código ASM. Estas chaves poderão ser daqueles modelos miniaturas ou se disponivel, chaves hexadecimais, em que cada posição já gera um código hexa. Esta parte não é crítica, ficando a critério do hobista esta escolha. Cada chave tem um ‘peso’ por assim dizer. Se você fez a montagem do ‘CONTROL_TESTER1…3’ , poderá facilmente acompanhar os números transmitidos a medida que se muda as posições das chaves. O esquema limitou a 7 bits, o que equivale a até 128 controles diferentes que podem ser transmitidos para teste de receptores de portão automático, chama_garçom, etc. Como o código transmitido do Ht6p20b é de 3 bytes, dois bytes provêm da escolha no software, e 1 byte vem da porta P1, pelas chaves que podem ser alteradas. Os pinos 12 e 13 tem que ter os resistores de pull up visto que é ‘open colector’ devido ao comparador presente no microcontrolador. Os pinos 2 e 3 são os botões correspondentes aos comandos dos controles remotos ( ou seja, equivale aos dois botões do controle remoto do ‘chaveirinho’). Foi usado um transmissor comercial para 433MHZ, miniatura, facilmente encontrado no comércio eletrônico. Foi usado um cristal de 12 MHZ e a alimentação pode provir de bateria de 9 volts com regulador para 5 volts ou uma fonte externa regulada em 5 volts (como carregadores de celulares modernos padrão ‘usb’).
Segue o código ASM:
Segue o código HEX:
Datasheet At89c2051
sugestão de programador
CONTROL_TESTER1 (com AT89C2051)
CONTROL_TESTER2 (com AT89C2051)
CONTROL_TESTER3 (com PIC 16F628A)
Curiosidades:
Simulador da ‘Terra’
Como melhorar sua memória
Outros assuntos:
Conserte seu carro com segurança
Mudanças que os filhos trazem ao casamento
Conceito correto sobre os desastres naturais
O que fazer quando seus pais estão se divorciando
Entrevista com um bioquímico
Até o próximo artigo!!!
boa tarde claudio , to precisando de um circuito desse mas com pic 16f628a . vi que tem um ,porém ele é da familia HCS e eu quero com Ht6p20b . você pode me ajudar ? pode ser com menos controles , uns 20 controles com 3 botões .
Olá Michael! Quando tiver um tempinho vou converter o código para o Pic e postarei. Aguarde, por favor.
Cláudio
olá claudio ,obrigado e fico no aguardo . um abraço .
Olá Michael! Veja, por favor, o artigo ‘COMO SIMULAR CENTENAS DE CONTROLE REMOTOS PARA TESTES DE RECEPTORES – VERSÃO PIC16F628A’ .
Claudio
Olá Pic_new, bom deixa eu ver se estou a intender. vc quer fabricar controle com o codigo gerado pelo um pic tipo 12f675 e que teria que ser incrementado o codigo a cada gravação do mesmo. ou seria na receptora? desculpe ai a minha santa ignorancia ok se puder me explicar qual seria a sua necessidade, ok um abraço
Olá foxconn, isso mesmo, preciso que seja incrementado um código a cada gravação para que cada controle tenha uma chave, quero fazer estes controles de presença para automoveis, aqueles que ficam enviando o código a cada 20 segundos. Estou fazendo o envio igual ao protocolo do HT6P20B, porém preciso gerar este codigo diferente em cada gravação para que cada controle tenha uma chave unica, e esta parte de gerar um código diferente em cada gravação de forma automática que não estou conseguindo ver um jeito de fazer, se puder me ajudar com informações agradeceria.
💡 Ola Claudio com a sua permissão, vou dar uma dica ao colega (Rsdias). a forma que eu faço para indetificar um pic para futuras consultas seria assim: coloque no cabeçario logo apos os #DEFINE DOS PORTS
;————————————————
;…VERSAO DO PROGRAMA A SER GRAVADO NA EPROM….
ORG H’2100′
DE “PIC628A V.01 08-01-13 SERIAL:123456
deixa a configuração da eprom interna desprotegida
para vc poder fazer a leitura futuramente…. espero ter ajudado abraços.
Olá, Foxconn, como vai ? Obrigado pela dica, mas na verdade o que preciso fazer é o seguinte, preciso criar um controle remoto com codificação tipo HT6P20B, só que eu preciso gerar isso em escala comercial então preciso que cada controle tenha um código unico, por isso pensei em usar o serial do pic, pois não tenho idéia de como gerar uma rotina que me gere automaticamente um numero serial para que eu possa gravar este numero na eeprom e utiliza-lo para envio do sinal. Mas obrigado pela dica mesmo assim.
Olá Claudio, a idéia era gerar um controle de presença (que fica enviando sinal a cada 20 segundos), para alarme automotivo, mas para isso preciso gerar codigos aleatórios e não repetidos para que possa produzir em escala. Se tiver algum material e puder ajudar, agradeceria muito.
Olá Rsdias!!!
Deixa eu ver se entendi. Você precisa transmitir a cada 20 segundos um sinal que confirme a presença do transmissor nas imediações do veiculo. Se não receber, bloqueia veiculo, por algum dispositivo .
Não é o caso de usar um sistema do tipo ‘roler code’ com familia de ci hcs200..301?. Você poderá usar um número serial fixo para cada tx e uma ‘key’ para a sua ’empresa’. No entanto, a cada acionamento ocorrerá mudança no código transmitido. Mas, terá que entrar em contato com a Keelogs para obter licensa, se for para uso comercial. Agora se for optar por código fixo, terá que escolher no arquivo asm/aprender , os números de tx aceitaveis e depois transmitir em uma ordem randomica. Mas corre o risco de outrem acertar o seu código. Outra opção seria você criar um sistema próprio de criptografia que possa ser usado no tx e no rx, basicamente um roller code ‘made in house’. Agora, posso ter entendido tudo errado, e não seja nada disto o que você deseja.
Claudio
Olá Claudio, entendeu corretamente, mas minha idéia era a seguinte, gerar numeros fixos aleatórios (Como o HT6P20B), só que quando gerasse o primeiro numero já gravava ele na eePROM, isso para que cada controle tenha uma chave unica (Como o HT6P20B) e seja gravada automaticamente, não precisando mudar o numero manualmente antes de gravar, será que é possível fazer isso ?
Olá Rsdias!!! É possivel gerar um número ‘pseudo-aleatório’ pelo programa e em seguida grava-lo na eeprom, mas ‘nunca’ poderá dizer que não será repetido este número em alguns controles. Para que não ocorra repetição, ter que existir um controle externo que gerencie isto na hora de programar o microcontrolador. Isto pode ser conseguido com um contador de 24 bits, que seja incrementado a cada nova gravação. Talvez usar as ultimas posições da flash para armazenar o número serial e grava-lo primeiro e depois o programa. Lógicamente, esse número serial seria escolhido por um programa rodando no em um PC, que garantiria a não repetição e poderia ser também , de forma aleatória. Veja este link e este aqui.
Claudio
Olá Claudio, até vi estes links que me passou, mas na verdade não consegui fazer o programa, não entendi bem como funciona, me diz uma coisa você sabe me dizer se consigo fazer isso via gravador usando o ID do pic, fazendo ele ser incrementado automaticamente, sabe me dizer como faço para Ler este ID no pic e gravar em EEPROM ?
Olá Rsdias!!! O ID é um número que tem que ser digitado, se desejado, quando vai gravar um microcontrolador, mas desconheço função de incremento, pois trata-se de um número que ,basicamente , deva informar a ‘versão do software’, que na maioria dos casos, é para um lotes de milhares de pics. Mas, mesmo que voce conseguisse incrementar ao gravar, este número não é acessivel durante o funcionamento do programa do pic, apenas quando você usa um programador para ler o pic . Creio que você terá que criar um programa gravador em seu pc, que grave, primeiro as posições da EEprom com o serial escolhido e depois grave a flash (inclusive o bit de proteção de leitura). Indo mais longe, e usando a criatividade típica de nós ‘brasileiros’, pense na seguinte sugestão: ( Não dê risadas, prometa!!!)
Digamos que você crie um arquivo hex que seja exatamente o que deseja. Com um programinha feito em visual basic (por exemplo), localize no arquivo hex quais as linhas que correspondem ao número serial. Faça que este programinha substitua os números compilados pelo novo numero serial (sequencial) que pode ser gerado por ele também (e incrementado automáticamente a cada substituição). Dai, envie o hex alterado para carregar no programador de pic. Desta forma, nem precisaria usar a EEprom . Creio que exista muitas maneiras de se fazer isto com programas de PC.
Claudio
Olá Larios, como vai ? Voce teria algum algoritimo em asm que gerasse os códigos de forma aleatória para os controles ?
Olá Rsdias!!! Realmente, eu não tenho tal algoritimo. Mas, não sendo muito curioso, em que pretende usa-lo?
Cláudio