HT6P_CLONE_PIC629 – GERANDO CÓDIGO HT6P POR SOFTWARE EM UM PIC 12F629

Para os hobistas de Pic, emular as funções de um ci HT6P20B pode ser bem interessante. Podemos, direto de uma aplicação principal, gerar o código que poderia acionar um transmissor de RF. Que mais pode ser feito com esta aplicação?

Veja o esquema abaixo:


Este esquema mostra um controle remoto (chaveirinho) feito com um PIC. Mas, pode-se , por exemplo, fazer um teclado sem fio, acionar um portão ou porta de entrada, ligar/desligar um alarme, etc. O número que será enviado pode ser alterado no arquivo ASM e depois recompilado. O número no arquivo HEX é ‘123456’, sendo que o primeiro digito irá variar na recepção, de acordo com o botão acionado.
Pode-se usar o CONTROL_TESTER1 para ‘ visualizar ‘ este numero.
A simplicidade do programa é autoexplicativa. Com respeito ao transmissor, escolha de acordo com a frequencia do receptor.

Segue abaixo o arquivo ASM:

CLONE_HT6P_PIC629_ASM_V1

Segue abaixo o arquivo HEX:

CLONE_HT6P_PIC629_HEX_V1

Segue pasta com arquivos de uma versão para 12f675, que produz automaticamente um numero serial, usando valores iniciais randômicos dos timers 0 e 1. Estes são gravados nas posições iniciais da EEprom:

CLONE_RANDOM

datasheet Pic 12f629
Sofware Compilador e Depurador – Mplab-Ide – para Pic
Programador caseiro para pic

Curiosidades:
Porque é necessário novas formas de energias?
A luta do homem para aproveitar o vento
Energia das estrelas

Outros assuntos:
Desempenhem bem seu papel de pais
Como reagir a um assédio sexual?
Como lidar com sogros!

Até o próximo artigo!!!

50 comments on “HT6P_CLONE_PIC629 – GERANDO CÓDIGO HT6P POR SOFTWARE EM UM PIC 12F629

  1. Bom dia Sr. Claudio Larios
    Estou tentando fazer uns controles para substituir os meus no portão de minha garagem, estou tentando através de seu projeto, mas não estou conseguindo, desculpe minha burrice mas não entendi o assunto compartilhado com “snake em 03/11/2012” a parte do arquivo asm ao qual o senhor se refere é aquele que está logo após “CLRF GPIO” até “BCF V3,7 ” ? Se for esse mesmo o local em que estamos falando e se no caso eu for fazer 04 controles deverei colocar no lugar de “SER1” em “MOVLW” a seguência: 34H, 35H, 36H e 37H, peço que me desculpe mas estou começando a estudar programação agora. Obrigado desde já no que puder me ajudar,abraços Marcelo.

    1. Olá Mpaiva!
      Primeiramente, você precisa certificar que seu receptor trabalha com protocolo do Ht6p20b. Para isto, basta olhar qual ci está dentro do chaveirinho que você usa atualmente. Também, cada controle deverá ser gravado com um code hex com o valor do ‘serial number’ diferente do outro.
      Para isto, procure a porção de código abaixo no asm:
      ;—————————————————————————————————
      ;DEFINIÇÕES DO USUÁRIO:
      ;—————————————————————————————————
      ;ESCOLHA AQUI O MODELO DO MICROCONTROLADOR A SER USADO:
      #DEFINE PIC629
      ;#DEFINE PIC675
      ;—————————————————————————————————-
      ;ESCOLHA AQUI O NÚMERO DO ‘SERIAL NUMBER’ A SER TRANSMITIDO:
      SER0 EQU 0X01
      SER1 EQU 0X23
      SER2 EQU 0X0F
      ;OBS. (OS BITS 6 E 7 DE SER2 CORRESPONDEM AOS BOTÕES )
      ;—————————————————————————————————-

      Você deverá escolher um número para SER0,SER1 E SER2 . Recompile no Mplab-ide e será gerado um arquivo hex para o primeiro transmissor.

      Altere novamente para um outro número e recompile. Grave o hex gerado no próximo transmissor e assim sucessivamente para os outros transmissores.
      Por favor, não precisa se desculpar por não entender bem as coisas. Afinal, ninguém nasceu sabendo, mas todos nós fomos ensinados por alguém . Tenha em mente que compartilhar ‘saber’ produz ‘alegria e satisfação’.
      Claudio

      1. Desculpe Sr. Cláudio relatei errado na realidade foi assim:

        Para o Controle 01
        ;ESCOLHA AQUI O NÚMERO DO ‘SERIAL NUMBER’ A SER TRANSMITIDO:
        SER0 EQU 10
        SER1 EQU 20
        SER2 EQU 30
        ;OBS. (OS BITS 6 E 7 DE SER2 CORRESPONDEM AOS BOTÕES )
        ;—————————————————————————————————-

        e para o controle 02
        ;ESCOLHA AQUI O NÚMERO DO ‘SERIAL NUMBER’ A SER TRANSMITIDO:
        SER0 EQU 11
        SER1 EQU 21
        SER2 EQU 31
        ;OBS. (OS BITS 6 E 7 DE SER2 CORRESPONDEM AOS BOTÕES )
        ;—————————————————————————————————-

        Mas o MPLAB retorna erro e não compila tem idéia onde posso ter errado ?
        O meu vizinho que trabalha numa loja eletrônica disse que o chaveirinho que uso é um ht6p20
        Obrigado novamente, Abraços Marcelo Paiva

          1. Boa noite Sr. Claudio Larios

            Apresenta essa informação.

            Clean: Deleting intermediary and output files. Clean: Deleted file “C:\ Teste01.mcs”. Clean: Done. Build aborted. The project contains no source files. BUILD FAILED: Sun May 12 15:47:35 2013

            Acho que deu problema no mplab porque ele está demorando para abrir ou compilar.
            Acho que vou desistala-lo e reinstalar novamente.
            Mas o procedimento que fiz está correto ??
            Obrigado e boa noite, Marcelo

          2. Olá Mpaiva! Creio que você esqueceu de adicionar o seu asm ao projeto. Clique em ‘Project’ e depois ao abrir a aba , em ‘Add new file to project’. Ao abrir o browser, escolha onde está o arquivo asm desejado . Dai tente recompilar.
            Claudio

  2. Olá Claudio, isso mesmo, só que a transmissào, o tempo maximo dela seria de uns 3 segundos. e o periodo de delay sem a transmissào como dito, seria os 30 segundos, Obrigado !!!

    1. Olá Djmarcio !
      Não vejo dificuldades para fazer isto. Basta eliminar no arquivo asm, as funções dos botões e criar um loop de transmissão consecutiva de 3 segundos seguido por um delay de 30.. 40 segundos que retornaria no loop de transmissão. O esquema se reduziria a 4 pinos usados no pic 12f629 (+,_,reset e saida tx).
      Cláudio

  3. Enato Claudio, vamos la vamos ver se consigo simplificar para voce entender melhor preciso que o controle mande o sinal como se presionar o botao, para acionar um led (exemplo) e com um intervalo de no maximo de 40 segundos pressionar novamente e assim por diante, mas isso automaticamente sem ter a necessidade do botao, acho que agora voce consegue entender, tipo um pisca pisca só que com um intervalo de tempo de no maximo 40 segundos, obrigado pela atencao, espero que possa me ajudar, grato !!!

    1. Olá DJmarcio ! Entendi em parte. O microcontrolador deverá deverá enviar ‘sua transmissão’, ou seja, seu ‘serial number’ escolhido (28 bits) , de forma automática e repetitiva, com um periodo de delay sem transmissão, de no máximo 40 segundos. Ou em outras palavras, se a idéia for essa, se ajustarmos o delay para 30 segundos, a cada minuto teremos 2 transmissões , e isso deverá continuar até que se acabe a bateria. Retorne-me se peguei bem a ‘coisa’.
      Claudio

  4. Olá Claudio, estava vendo este seu projeto e achei bem interessante, gostaria de saber com voce, se tem como implementar no mesmo codigo fonte, uma opcao de enviar o pulso para um determinado botao, precisava de um sistema desse, que mandasse um pulso de 20 a 30 segundos precisava só de um canal, ou seja um sistema sem botoes e que fornece um pulso automatico para ele mesmo, com um intervalo de tempo entre no maximo de 40 segundos, espero que possa me ajudar, sou novo nessa area de programacao e precisava fazer um projeto desse para apresentar no meu curso, desde ja agradeco a atencao e a colaboracao com seus projetos !!!

    1. Olá DJMarcio! Eu não entendi bem o que voce deseja fazer. Voce quer enviar um sinal via rf de 20 a 30 segundos , mas , será modulado ou rf pura? ou será , enviando o código de forma continua por 20 a 30 seg? Como se trata de seu projeto escolar, poderei dar algumas dicas, mas não seria bom ‘eu faze-lo’, certo!!!
      Claudio

Comments are closed.

Back To Top