RECEPTOR DE CONTROLE REMOTO GENERICO PARA HT6P20B COM PIC 12F629/675

Decodificar transmissores de controle remoto que usam o ci HT6P20B não é algo muito dificil de se fazer. Para ajudar os que desejam implementar aplicações com este circuito integrado, segue esta sugestão.

Adquirindo um controle remoto comercial (qualquer um usado em alarmes, portões, etc que use o HT6P20B) , carregando o código hex no microcontrolador PIC 12F629, e colocando na mesma placa do receptor de controle remoto genérico já publicado, você terá a opção de fazer experiências interessantes ou ainda , agregar a uma aplicação que deseje fazer ou usar. O programa permite a captura dos 24 bits enviados pelo transmissor (chaveirinho) e testa se já existe este endereço gravado na EEprom. Se tiver, testará os bit 6 e 7 da ultima palavra transmitida, que contem a chave apertada. Conforme o botão apertado, acenderá o Led1 ou Led2, por um período de 0,5 segundo e apaga de novo. Se manter o botão apertado, irá continuar aceso. Caso o endereço não esteja gravado na EEprom, necessitará ser ‘aprendido’ apertando o botão ‘learn’ na placa e acionando um dos botões do controle remoto. Após piscar uma vez o ‘ led learn’ na placa, terá sido bem sucedido a operação de aprendizado.
O HT6P20B já vem de fabrica programado com o ‘serial number’ que é recebido , com mais 2 bits que correspondem aos 2 botões (S1 e S2) nos pinos 1 e 2 do HT6P20B.
Mais informações, veja o datasheet do HT6P20B.
Para gravar o código hex no chip, poderá usar o SIMPLES PROGRAMADOR DE PIC e um software programador como o ‘WINPIC2000′, que é uma mão na roda para todos os hobistas.

Para obter uma versão em ‘C’, veja o artigo “RECEPTOR GENERICO FLEX – UM PROGRAMA PARA VARIAS OPÇÕES DE CIRCUITOS INTEGRADOS – COM PIC 12F675/629″> ‘RECEPTOR GENERICO FLEX – UM PROGRAMA PARA VARIAS OPÇÕES DE CIRCUITOS INTEGRADOS – COM PIC 12F675/629’ deste blog.

Segue abaixo o arquivo ASM:

RX_GEN_HT6P20_V3P1_ASM

Segue abaixo o arquivo HEX a ser gravado no chip PIC 12F629:

RX_GEN_HT6P20_V3P1_HEX

A versão acima está dando um bug ao programar 42 botões de controle, sendo operacional com menos. Segue abaixo pasta com arquivos de uma versão corrigida e melhorada. Foi alterado o modo de programar e ao atingir 42 botões aprendidos, o led ‘learn’ piscará para indicar memória cheia:

RX_GEN_HT6P20_V3P2_ASM

Clique aqui para ver o esquema da placa genérica.

Clique aqui para ver a sugestão da placa de circuito impresso.

clique aqui para ver a montagem dos componentes na placa visto pelo lado cobreado e lista de materiais.

Segue abaixo versão ASM/HEX que quando mantém o botão apertado, o led se mantém aceso, sem piscar:

RX_GEN_HT6P_V4P1_ASM

RX_GEN_HT6P_V4P1_HEX

Segue abaixo versão idêntica ao acima, mas com opção de inverter a saída no código Asm:

RX_GEN_HT6P20B_V41_INVERTIDO_ASM

RX_GEN_HT6P20B_V41_INVERT_HEX

Segue versão para 3 leds com aprimoramentos:

RX_GEN_HT6P_V5P1_ASM

RX_GEN_HT6P_V5P1_HEX

Segue arquivo ASM (versão 6) com opção de usar o pino 3 como entrada para uma chave seletora para modo ‘PULSO/RETENÇÃO’:

RX_GEN_629_V6P1_ASM

Segue arquivo HEX (versão 6):

RX_GEN_629_V6P1_HEX

Segue esquema de ligação (versão 6):

Na versão 7, com opção de usar mais um led (led3) no pino 3, podendo ser alterado o programa para modo ‘PULSO’ ou ‘RETENÇÃO’, por comentar e descomentar na ‘opção de usuário’ do arquivo ASM e recompilar. Para facilitar, segue uma pasta com arquivos compilados para modo PULSO e outra para modo RETENÇÃO, atualizada em 15/10/2017:

RX_GEN_HT6P20_V7_PULSO_

RX_GEN_HT6P20_V7_RET_

Segue vídeo caseiro do funcionamento da versão 7 em modo retenção:

Segue arquivo ASM para versão acima, mas com inversão das saídas no modo Pulso (alterável no linha de código como opção).

RX_GEN_HT6P_V7P1_INVERTIDO_ASM

Segue arquivo HEX para versão acima:

RX_GEN_HT6P_V7P1_INVERTIDO_HEX

Segue esquema para versão 7 abaixo:

Segue arquivo ASM para versão 8 (apenas didática, apresentando como podemos piscar os led’s na saída por um número de vezes, alterar qual saída fará isto, piscar mais de um led junto, alterar tempo aceso dos led’s , alterar tempo apagado, etc.

RX_GEN_629_V8BP1_ASM

Segue o arquivo ASM para versão 9 (idem versão 6, mas com aprendizado individual de controles, para poder usar um controle
com uma ou mais placa):

RX_GEN_629_V9AP1_ASM

Segue o arquivo HEX para a versão 9:

RX_GEN_629_V9AP1_HEX

Os arquivos abaixo permitem operação mista, entre retenção e pulso.
Acionando o botão 1 apenas, obtemos acendimento do led1 e se soltar, apaga. O mesmo com o botão 2 e led2 (modo pulso).
Mas se apertar os dois juntos, acende o led 3. Soltando-os e apertando-os de novo, apaga (retenção no led 3)
Obs. Necessita de pull up no pino 3 para funcionar. Veja esquema abaixo da V10.

Segue o arquivo ASM para a versão 10:

RX_GEN_629_V10P1_ASM

Segue o arquivo Hex para versão 10:

RX_GEN_629_V10P1_HEX

Segue o esquema para versão 10:

Esquema v10

Segue pasta zipada com versão 11 (14/07/2015) com 3 canais, programável no arquivo “C” (Compilador CCS C) por comentar/descomentar as linhas, para funcionar em modo retenção ou pulso, saída normal ou invertida, de forma individual para cada canal. Rotina de recepção alterada para testar cada parte do bit recebido (em teste):

RX_GEN_675_V11

Veja também o artigo:‘RECEPTOR DE 3 CANAIS PARA USO COM CONTROLE REMOTO (CI HT6P20B) E PULSO/RETENÇÃO INDIVIDUAL- COM PIC 12F675’

Segue abaixo uma versão de 1 canal, modo pulso, feito em “C” no compilador MPLAB-IDE XC8:

RX_HT6P20B_PULSO_XC8

Segue abaixo uma versão de 1 canal, modo retenção, feito em “C” no compilador MPLAB-IDE XC8:

RX_HT6P_XC8_RET

Links:
datasheet 12f629

Curiosidades:
controle remoto e o efeito estufa
ataques cibernéticos
Comportamento anti-colisão dos peixes
Jóqueis-robos para camelos

Outros assuntos:
Como acabar com a tática do silêncio
Os milagres são possíveis – 3 objeções
Como enfrentar o bullying sem ter de partir para a briga (animação)
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Ensine seus filhos bons principios com atividades de colorir
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
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!!!

248 comments on “RECEPTOR DE CONTROLE REMOTO GENERICO PARA HT6P20B COM PIC 12F629/675

  1. ola Claudio, estou tentando muda a saídas do RX_GEN_HT6P_V4P1, (na versão original mantendo o botão apertado, o led se mantém aceso, sem piscar)
    “quero muda para o contrario! o led fica aceso quando. mantém o botão apertado, o led se mantem apagado sem pisca” já estou a duas semana tentado.
    se possível gostaria de sua ajuda para realiza essa mudança. tenho um receptor de portao da new back antiga que usa o sistema de corte de arame, para codifica. quero muda?
    desde já te agradeço…

    1. Olá George!
      Deixa ver se eu entendi. Quando liga tudo, fica aceso os leds de saída. Se você apertar um botão do controle, ele apagará o led correspondente no receptor. O mesmo com o outro botão do controle. Sem mexer com o arquivo original, você poderia usar um transistor npn para cada saída para inverter o estado de saída.
      Claudio

  2. Olá Claudio. Estou pensando em fazer um “repetidor” para aumentar o alcance dos controles. Basicamente peguei o seu RX_GEN_629_V9AP1 e, logo após an rotina ACAO, inclui o arquivo CLONE HT6P_PIC a partir da rotina ENVIAR. Como o que quero fazer é simplesmente receber um código e repetí-lo, preciso criar uma rotina de delay entre o recebimento do código e seu envio (durante o envio também preciso “desconectar” o receptor do meu repetidor para que ele não receba seu próprio código. Bem, depois desta “maravilhosa”explicação, vem a minha pergunta: como é que eu conto tempo no 629, ou quanto tempo demora cada instrução?
    Um abraço,
    Marcelo

    1. Olá Marcelo! Obrigado por comentar. O tempo de cada instrução é de 1 useg para frequência interna de clock de 4 mhz. Voce poderá carregar ‘w’ com um valor de delay e chamar a rotina ‘delaym’ que facilita. Ficaria assim:
      MOVLW .100
      CALL DELAYM

      Como a recepção é feita na rotina principal, não tem com que se preocupar em receber o próprio sinal, uma vez que estando transmitindo, não poderá receber ao mesmo tempo.
      Claudio

  3. AMIGO TIVE TESTANDO A VERSAO RX_GEN_HT6P20B_V4P1.ASM, ELA ESTA ASSIM APERTOU O BOTAO DO CONTROLE , MESMO FICANDO PRECIONADO O LED FICA PISCANDO E NAO ASCESO DIRETO. E OUTRA COISA QUANDO GRAVA O PRIMEIRO BOTAO FICA ASCENDENDO OS DOIS LED,… TERIA COMO FICA ASSIM CASSO O BOTAO FICA APERTADO ELE FIQUE ASCESO OU PELO MENOS CONTE UM TEMPO TIPO 1 MIM PARA DEPOIS APAGAR, E TAMBEM GRAVA PRIMEIRO BOTAO E SO ASCENDER UM LED NESSE PRIMEIRO BOTAO.

    1. Olá Luciano!
      Obrigado por seu cometário. A versão RX_GEN_HT6P20B_V4P1.ASM é feita para ficar aceso direto o led caso o botão esteja acionado, sem piscar. A casos, em que existe muita interferência no local, que impede recepções continuas, gerando o efeito de as vezes piscar. Eu não entendi bem. Você disse que quando grava o primeiro botão fica acendendo os 2 leds? Quais leds? led1 e led2? led ‘learn’ e led1? led2 e led ‘learn’? É porque aprendendo um botão, aprende também o outro e você quer que o aprendizado seja individual? Se for o caso, use a versão RX_GEN_629_V9AP1_ASM. Fico no aguardo por mais esclarecimentos.
      Claudio

  4. é isso mesmo amigo mas o que puder fazer ja ta bom tipo aquele sistema de 3 canais ter a opção modo pulso ou retenção com jumper pode ser no lugar do led status de gravação

  5. a ideia de usar um 16f628 tb daria certo , quantos canais seriam possiveis com a opção de pulso ou retenção , agora sobre o I2C foi so uma ideia com sei que o pic12f629 é limitado porem 2 micros destes no mercado custam em media uns 2,20 ja um pic16f628 custa em media uns 7,00 pensei na ideia de fazer um pic comandado outro , por isso do I2C , seria tipo um seria o seletor de modo , o outro receberia a data e acionaria a saida , fico pensando até mesmo com 3 canais teria como colocar a opção pulso ou retenção externa e não interna como vc fez em uma versão ja que a versão externa é limitada em 2 canais pois justamente tem o pino do juper e o pino do led status de gravação , não quere ser chato mais um amigo ja procurou comigo um tipo de circuito deste ele queria acionar um sistema de lampadas para uma peça porem umas lampadas deveriam piscar isso ele poderia fazer no modo pulso e outras lampadas deveriam ficar acessas isso em modo retenção não sei se consegui passar a ideia , agora imaginado um projeto em que possa ter mais canais e um sistema de modo de seleção pensei até na ideia , não sei se seria possivel mas de usar o modo analogico do pic16f628 atraves da vbariação de tensão selecionase o modo de determinado pino isso seria bem comlexo rsrsrs , mas mesmo se possivel tipo 6 canais e 6 modos de seleção , ja mais alem usando 2 pic 12f629 ou 675 daria 6 canais e 2 modos de leção o receptor seria em comum mais basta criar um unico projeto com 675 ou 629 tirando o led status trasnformando em saida e mantendo o jumper de modo pronto com duas montagens teria o modo pulso e o modo retenção separados e com 3 canais . amigo obrigado pela sua atenção

    1. Olá Liliano! Em suma, você gostaria de ter o máximo de canais com opção para ‘pulso’ e ”retenção’ externo, com os chip mais baratos.
      Claudio

Comments are closed.

Back To Top