Como fazer um pequeno receptor para controles remotos que usem circuito integrado HCS200…301 com um PIC12F675 ou 12F629? Com ‘hopping code’? Com 2 canais separados? Veja mais…
Para aumentar a segurança, muitos hobistas tem optado por usar controles remotos com a tecnologia do ‘hopcode’ (código esperado). Os ci’s da Keelog são apropriados para tais dispositivos e tem uma vasta biblioteca para buscarmos informações, com exemplos de uso. A montagem proposta agora, trata-se de um receptor de controle remoto usando um PIC de 8 pinos (12F675/629), em que 4 pinos são saídas para controlar a aplicação que desejamos.
Veja o esquema abaixo:
Foi usada o mesmo esquema do ‘receptor genérico para ht6p20b de 2 canais‘. Desta maneira, é possível facilmente migrar do ht6p20b para o hcs200….301. Como fazemos para aprender cada controle para cada canal? Por meio do ‘Jumper’ colocado no pino 3. Para o canal ‘A’ retiramos o ‘jumper’ e apertamos o botão ‘learn’ juntamente com um dos botões do controle remoto. Pronto! Será aprendido no canal “A”. Se colocarmos o ‘jumper’ e repetir a operação com outro controle, irá ser aprendido no canal “B”. Também, para apagamento na memória, foi previsto 2 modos a ser escolhido um deles, por ocasião da compilação do arquivo. Pode ser feito apagamento total ou parcial, neste último modo, o ‘jumper’ definirá o apagamento do canal “A” ou “B”, conforme for apertado o botão ‘learn’ por mais de 10 segundos.
Sempre é bom lembrar que os ci’s dos controles remotos de cada transmissor TEM QUE SER REGRAVADO para uma ‘Key’ que seja a mesma a ser usada na rotina ‘Decript’ (decriptar) do arquivo asm. Para isto, poderá usar um gravador de HCS comercial, ou fazer um caseiro, conforme os artigos publicados neste blog, como o ‘HCS_PROG‘ , ‘HCS_PROG_V628’ , ‘HCS_PROG_TINY’ ou ainda, ou o programador ‘STAND-ALONE‘ sugerido em Note Application.
O ARQUIVO ASM
O programa foi feito a partir de rotinas especificas para recepção e tratamento de sinais para decodificar os ci’s HCS, fornecidas em Note Applications da Microchip. Apenas, foi realizado a adaptação para os novos modelos, o uso da Eeprom interna, algumas mudanças na forma de procurar posição de gravação de controles novos, a maneira de armazenar o controle, quer para o canal “A” ou “B”,etc.
Para se saber a qual canal pertence, o programa identifica se foi colocado o Jumper ou não. Na ocasião da recepção de um novo controle, no momento que vai ser gravado seu serial number na eeprom, testamos o flag de jumper colocado. Se for ‘1’, setamos o bit 7 do byte mais significativo deste serial number. Isto não é problema, pois os bits 4 a 7 são zerados nesta ocasião, pois corresponde aos botões. Assim, fazemos um bom uso deste ‘nibble’. No apagamento de controles da eeprom, ao apertar o botão ‘learn’ por mais de 10 segundos, se a opção do asm for ‘apagamento parcial’, o bit 7 do byte mais significativo do ‘Serial Number’ na Eeprom, será testado e todos os que forem ‘1’ com ‘jumper’ colocado, serão apagados. Sem o ‘jumper’, todos os que forem ‘0’ serão apagados. No aprendizado de novos controles, uma nova rotina procura por posições vagas, e nela grava o novo controle.
Obs. Consulte a Keelog/Microchip para otenção de licenças para uso comercial de seu produtos. Esta montagem é apenas didática, sendo feita apenas em placa de protoboard, sujeito a bugs ainda não identificados. O arquivo ASM está sendo fornecido e poderá ser modificado segundo as necessidades dos hobistas.
Note Applications:
AN661
HCS200
HCS201
HCS300
HCS301
STAND-ALONE PROGRAMMER
Segue o arquivo ASM:
Segue o arquivo HEX:
Outros receptores:
Receptor para Ht6p20b
Receptor 2
Curiosidades:
Tendência de se isolar
Porque economizar é melhor do que gastar?
Proteja sua audição
O som da neve
Espantoso sentido no mundo animal
Glaucoma e a perda da visão
Estamos ficando sem água?
Florestas tropicais – como explorar sem destruir?
Os perigos da impaciência
O que aprendemos dos projetos da natureza?
Osteoporose – doença silenciosa
Carros – no presente e no passado
O sistema de ‘spray’ do besouro
Ouvindo sons do espaço
Porque as estrelas são cintilantes?
Uma voz silenciosa que pode se ouvida
Outros assuntos:
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Ensine seus filhos bons princípios com atividades de colorir
Entrevista com um bioquímico
Adolescentes- O que fazer se estou sofrendo bullying?
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?
Até o próximo artigo!!!
Caro Claudio:
Em primeiro lugar parabéns pelo seu site, com conteúdo técnico extraordinário. Parabéns! …
Eu montei o circuito nesta seção, tanto o 12F675 e 12F629, ambos trabalharam apenas com o canal B.
O nome do canal A não funciona de forma alguma …
– Você já encontrou este problema?
– Você tem um firmware.asm versão mais atualizada para corrigir este problema?.
Muito obrigado
Antonio (Málaga)
Olá Antonio!
Obrigado por seus comentários apreciativos. Quanto ao problema, você é o primeiro a me trazer a atenção. Assim que tiver um tempinho, irei montar em um protoboard e quando tiver uma resposta, irei retornar.
Obrigado
Claudio
Olá Antonio!
Ainda não tive tempo de montar o circuito. Mas antes de faze-lo, por favor, gostaria da sua atenção no seguinte:
O pino 3 funciona como saída e em dados momentos, como entrada, na função de programação de controle e apagamentos,
Assim, para que o efeito do jumper seja sentido, a saída do pino 3 deverá ser mantida com um resistor de 470 ohms ou superior, ao alimentar o próximo circuito (ex. transistor que ligue um rele). Retirando o pic do soquete, colacando o jumper, ligando a tensão e medindo a tensão no pino 3 do soquete ao gnd, terá que ser maior que 1,8 volts para funcionar a contento (nivel’1′). Retirando o jumper e refazendo as medições, deverá ser menor que 0,6 volts. Por favor, gostaria que conferisse em seu circuito, pois pode haver resistores com valores alterados ou montados por engano.
Cláudio Lários
Olá Claudio:
– Volts O pino 3 retirando o PIC do soquete, colacando o jumper = 3,27 V.
– Volts con PIC e colacando o jumper = 0,22 V.
– Volts retirando jumper = 0,00 V.
Resistor = 470 R e 1 K.
Obrigado
Antonio
Olá Antonio!
Obrigado pelas informações. Vou fazer os testes. Aguarde, por favor, um retorno.
Cláudio
Olá Antonio!
Fiz testes com os pic’s 12f675 em mãos, e não tive problemas. Mas pensando no maior número de possibilidades, notei que, se o ‘pull up’ interno tiver tolerância para menos, poderia causar um nivel ‘1’, sem estar colocado o jumper. Por isto, no novo asm e hex postados, desliguei os pull up’s internos. Por favor, gostaria que você testasse para confirmar esta ‘teoria’.
Cláudio
Olá Claudio:
Eu compilei o arquivo: RX_GEN_HCS_2C_V2.ASM com MPLAB IDE v8.91 usando PIC 12F675.
O resultado é o mesmo: O canal “A” nunca funciona.
Eu não quero abusar do seu tempo …
Ser possível usar todos os quatro canais, como em “Receptor de controle remoto genérico para … 301 COM HCS200 PIC 16F628A 12F629 E” n º 908. Que funciona muito bem ?…
Antonio
Olá Antonio!
Vamos ver se estamos falando a mesma língua. O receptor tratado no artigo ‘receptor de controle remoto genérico para hcs200…301 com 16f628a’ permite receber os 4 bits enviados : s0,s1,s2,s3. O controle remoto tem que ter a lógica necessária para gerar estes bits conforme o data sheet. Assim, um único controle remoto gravado consegue enviar estes 4 bits, podendo ter 4 botões ou mais (lógica de diodos).
Já a montagem ‘receptor remoto de 2 canais, para hcs200…301, usando pic 12f675..) trata-se da obtenção de canais para controles remotos de 2 botões DIFERENTES. Preciso gravar um/vários controle(s) remoto(s) de 2 botões para um canal e outro(s) controle(s) remoto(s) de 2 botões para o outro canal. Cada controle comandará um certo canal, mas não os dois ao mesmo tempo. Se eu usar um controle que tenha 4 botões, não conseguirei fazer ele trabalhar para os 2 canais, pois seu Serial Number será igual. Apenas para termos certeza deste assunto, você gravou um controle para um canal, apertando o botão ‘prog’ momentâneamente (sem o jumper colocado) e apertando o controle remoto? E em seguida, apertou o botão ‘prog’ momentaneamente, (agora COLOCANDO o jumper) e apertou OUTRO controle remoto diferente de 2 botões, para fazer os testes?
Estou tentando entender o que possa estar acontecendo, visto que, porque usando o hex do blog e gravando no pic , e , em seguida colocando na montagem feita no protoboard, funciona sem problemas!!! Será que você teria mais detalhes da tua montagem, se foi alterado alguma coisa?
Cláudio
Olá Antonio!
Esqueci de perguntar: Quando você gravou a sua key nos hcs200..301 , você lembrou de mudar o Serial Number para que os controles ficassem com números diferentes? Se esquecer, o sistema aceitara os controles como sendo o mesmo, ficando em um único canal. (mais uma ‘teoria’ do que possa estar acontecendo).
No aguardo…
Claudio
Bom dia Foxconn.
Pesquizei o valor deste sensor que você indicou, pelo video é um produto com uma tecnologia bastante avançada mas o valor não é muito acessível. Valeu a dica, é mais um produto que eu ainda não conhecia. Obrigado.