Gostaria de fazer uso dos controles remotos comerciais (somente o ‘chaveirinho) para suas aplicações? Pois eis mais uma opção para você programa-los!!!
Com respeito ao objetivo do projeto, esta é mais uma opção de montagem para ajudar os hobistas que gostam de PIC a terem também um programador para a família HCS 200 a 301. Este são usados em controle remotos de portão, alarmes e outros ‘chaveirinhos’, usando sistema bem seguro, pois sempre transmite um código diferente a cada acionamento (Encriptação).
Conforme observa-se no circuito, ele possui 4 chaves que são usadas para entrada de dados de configuração antes de programar.
Nesta versão, o display foi ligado de maneira tradicional, com 6 fios de ligação e modo 4 bits.
Após ligar a alimentação, deverá aparecer no display “HCS_PROG_V628” e na segunda linha os seguintes comandos:
“0=M 1=A 2=G”
Os quais significam:
0=M -> Digite interruptor’CH0′ para ‘Ver/Alterar o modelo do chip a ser programado.
1=A -> Digite ‘CH1’ para “ver/Alterar as palavras de configuração (KEY, SYNC, SER, SEED, DISC e CONFIG) e também para optar se ao gravar será usado em ‘DISC’ (discriminador) os 12 bits menos significativos do ‘SERIAL NUMBER’ (SER), visando facilitar a operação de aprendizado do controle (chaveirinho).
2=G -> Digite ‘CH2’ para gravar os dados/modelo no chip colocado no soquete. Se tudo estiver ok aparecerá a mensagem “SUCESSO”.
Senão, aparecerá a mensagem “FALHA”, que poderá ser ocasionada por esquecer de colocar o chip no soquete, ligar alimentação ou escolher modelo errado (Atenção!!! ).
Nota: O valores de cada palavra podem ser alterados apertando ‘CH0’^ e ‘CH1’> (desloca a direita) e ao termino podemos ir para a próxima apertando ‘CH2’ (P) ou saindo apertando ‘CH3′(V).
Caso prefira gravar chip tipo SMD (pequeninos) , use pequenos fios de telefone para puxar as ligações da plaquinha para um Breadboard e daí para o soquete do programador. Não esqueça que as entrada ‘S0’ e ‘S1’ do HCS a programar tem que estar aterradas (use um resistor de baixo valor). Se optar pelo desenho da placa fornecida abaixo, verá que dispõe de saídas para fios marcadas como A,B,C,D,E,F, que podem ser usados para ligar no Breadboard ,facilitando o esquema da programação.
Sempre fique atento para gravar a ‘KEY’ ou sua chave de encriptação igual a que será usada no receptor na decriptação. Pode ser qualquer valor que desejar em valores hexa e com 8 bytes de comprimento ex.’0123456789ABCDEF’.
Note que cada fabricante de automatismo de portão/alarmes tem sua ‘key’ trancada a 7 chaves. Portanto, sem ela, não podemos usar suas placas receptoras. Mas….podemos usar os chaveirinhos com nossa ‘key’,reprogramando-os e fazer nossas placas com nossa ‘KEY’.
No modelo 201, o valor de ‘DISC’ fica em palavra separada. Nos outros modelos (200, 300, 301) fica junto com a
palavra ‘CONFIG’. Veja os datasheets para maiores informações . Este aparelho foi testado com o modelo 201 (mais problemático) e modelo 200. Os modelos 300 e 301 são bem similares ao 200 ,exceto novas melhorias e funções programáveis adicionais.
O programador deve ser alimentado por uma fonte externa de 9 volts a 12 volts com consumo de alguns miliamperes.
Com respeito a receptores que você poderá montar, leia os artigos ‘placa de portão‘, ‘receptor genérico‘, ‘hcs_prog_tiny‘ e ‘decodificador com at89c2051‘.
Segue abaixo o diagrama do circuito:
Segue abaixo a placa de circuito impresso:
Segue abaixo a montagem dos componentes na placa (visto pelo lado das trilhas de cobre) e lista de materiais:
Segue abaixo o arquivo ASM:
Segue abaixo o arquivo HEX:
Segue pasta zipada com arquivos desta montagem:
Abaixo temos um vídeo com o uso deste programador:
Até o próximo artigo!!!
oi Claudio Larios, to com problemas para testar esse teu projeto, o asm da erro config ,o hex em texto não sei usar, poderia me enviar o hex em rone.7g@hotmail.com muito obrigado ….
Olá Rone7g!
Já postei uma pasta com os arquivos para que possa baixar.
Claudio
Olá Claudio bom dia meu nome é Edmilson eu montei este gravador de hcs que vc publicou e funcionou muito bem usando o HEX fornecido pelo site porem ao tentar compilar o ASM usando o mplab ele apresentou alguns erros nw sei se vai dar para colocar aqui neste espaço segue abaixo os codigos de erro
Executing: “C:\Arquivos de programas\Microchip\MPASM Suite\MPASMWIN.exe” /q /p16F628A “gravador.asm” /l”gravador.lst” /e”gravador.err” /d__DEBUG=1
Warning[205] C:\DOCUMENTS AND SETTINGS\EDMILSON\DESKTOP\GRAVADOR HCS\GRAVADOR.ASM 106 : Found directive in column 1. (CONFIG)
Error[176] C:\DOCUMENTS AND SETTINGS\EDMILSON\DESKTOP\GRAVADOR HCS\GRAVADOR.ASM 106 : CONFIG Directive Error: (processor “16F628A” is invalid for CONFIG directive)
Error[113] C:\DOCUMENTS AND SETTINGS\EDMILSON\DESKTOP\GRAVADOR HCS\GRAVADOR.ASM 482 : Symbol not previously defined (CONFIG)
Error[113] C:\DOCUMENTS AND SETTINGS\EDMILSON\DESKTOP\GRAVADOR HCS\GRAVADOR.ASM 483 : Symbol not previously defined (CONFIG)
Error[113] C:\DOCUMENTS AND SETTINGS\EDMILSON\DESKTOP\GRAVADOR HCS\GRAVADOR.ASM 487 : Symbol not previously defined (CONFIG)
Error[113] C:\DOCUMENTS AND SETTINGS\EDMILSON\DESKTOP\GRAVADOR HCS\GRAVADOR.ASM 873 : Symbol not previously defined (CONFIG)
Halting build on first failure as requested.
Bom eu ainda nw sei muito sobre programação mas se puder me ajudar com estes erros ficarei grato muito obrigado desde já meu
Olá Edemilson!
Creio que deve haver alguma coisa errada com a “palavra de configuração”. Verifique se não digitou alguma caracter junto com ela , por acidente.
Deve ficar um pouquinho afastado do canto esquerdo (2 ou 3 caracteres). Verifique se tem os dois traços seguidos ‘__’ antes de ‘CONFIG’ (Não é luxo estes 2 traços inferiores).
Confira com o abaixo:
__CONFIG _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _INTRC_OSC_NOCLKOUT
Divirta-se!!! Isto é mais divertido do que tentar descobrir palavras cruzadas!!
Claudio
OLA CLAUDIO EU SOU INICIANTES NO MUNDO DOS MICROCONTROLADORES PIC E GOSTARIA QUE VC TIRASSE UMA DÚVIDA EM RELAÇÃO AO PROJETO ACIMA.SE O HOLTEC ELE MANDA 24 BITS OU SEJA 03 BYTES COMO VC ORGANIZA ISSO NA EEPROM PARA IDENTIFICA O BT APERTADO.
VC PEGA OS 8 PRIMEIROS BITS E JOGA NUM ENDERECO 1 DA EEPROM E DEPOIS VC PEGA MAIS 08 BITS E JOGA NUM ENDEREÇO 2 DA EEPROM E O TERCEIRO BITS JOGA NO ENDEREÇO 3 DA EEPROM.É ISSO?E OUTRA DÚVIDA É COMO VC CAPTA ESSE 24 BITS PELA INTERRUPÇÃO OU PELA USART.MUITO OBRIGADO
Olá Genilson!
O projeto acima se trata de um programador de Hcs200… 301. É deste projeto que voce está falando ou do receptor para controle remoto?
Cláudio
Boa tarde Claudio é do controle remoto holtec decodificado com o pic 16f628,só queria entender de como vc lê esse pulsos,pois esse é meu projeto final do curso.
Olá Genilson!
O ht6p20b envia 3 bytes e são, como voce concluiu, salvos byte a byte na EEprom . Os ultimos 2 bits recebidos do byte final correspondem ao estado dos 2 botões. Eu não uso interrupção nem do timer , nem de mudança de estado, mas faço um loop que le o pino de entrada a cada 50 microsegundos. Poderia ser usado interrupção do timer a cada 50 microsegundos para ler a porta de entrada do rx, mas esta não foi minha opção. veja o datasheet aqui..
Claudio
Ola Claudio bom dia , então gostei seu post sobre o portão eletronico,queria usar esse tipo controle para fazer na minha maquete ferreomodelismo,atraves do Learn code, poderia me ajudar aumntar as saidas do PIC ou vc souber plataforma do Arduino, para fazer controle da minha maquete, as saidas desse não prescizar ser decimais , podendo ser binarias mesmo, 4 ou 8 bits me ajudaria depois decodifico para decimal, ou me mostre com esse seu progama onde altero para mais saidas.Obrigado.
Sergio, dá uma olhada se isto ajuda em alguma coisa;
http://picsource.com.br/archives/1332
😛