RECEPTOR DE CONTROLE REMOTO COM 2 CANAIS, PARA HT6P20B, USANDO PIC12F675/629

0

Até o momento, os receptores aqui publicado para o HT6P20B permitem controlar, após o aprendizado de um ou mais controles (chaveirinhos), uma única aplicação. E se pudesse fazer um receptor para controlar duas aplicações independentes? E usando um PIC12F675 ou PIC12F629? E se fosse possível escolher também entre modo ‘pulso’ e ‘retenção’? Leia mais …

Veja o esquema abaixo:

O circuito proposto agora, permite controlar 2 canais separados (ou, se preferir, podemos dizer ‘zonas separadas’). Para que isto seja possível, o canal ‘A’ permite que se grave até 21 controles/sensores, na primeira parte da EEprom interna do PIC12F675 (opcionalmente o PIC12F629), sendo que estes controles acionarão os pinos 3 e 5, onde estão ligados os leds 2 e 3. No canal ‘B’, mais 21 controles/sensores poderão ser gravados no restante da EEprom, sendo que estes controlarão os pinos 2 e 6, onde estão conectados os leds 0 e 1.

POSSÍVEIS APLICAÇÕES

Uma possibilidade de aplicação seria para a construção de um alarme residencial, pois deste modo, fica fácil separar o que será controle remoto e o que será sensores para disparo (como os de reed switch em janelas e até mesmo os sensores de presença, por radio frequência). Outra aplicação poderia ser em portões automáticos com 2 motores independentes. Muitos leitores talvez já estejam até pensando em um uso diferente. Divirta-se!!!

O ARQUIVO ASM

As rotinas de recepção são as mesmas dos outros receptores (Veja ‘Receptores Genéricos para HT6P20B’) , sendo que a mudança maior envolve o acesso a memória EEprom e a colocação de um JUMPER, no pino 3, para definir qual canal iremos gravar ou apagar os controles/sensores. Assim, para gravar controles ou sensores, ou apaga-los, na ‘zona B’ (led 0 e 1), deverá ser ‘retirado’ o JUMPER. Em uso normal, o JUMPER deverá estar colocado, para permitir a polarização correta da saída. Foi colocado como opção do usuário, a possibilidade de compilar para o 12F629 ou para o 12F675. Também, pode-se escolher se as saídas serão em modo ‘PULSO’ ou e modo ‘RETENÇÃO’. Basta descomentar a opção que deseja compilar e comentar a que não será usada.
Obs. Este material didático foi montado e testado apenas em placas de protoboard, sujeito a bugs ainda não identificados. Está sendo fornecido o arquivo ASM, que poderá ser alterado conforme as necessidades do hobista.

Segue o arquivo ASM, modo ‘PULSO’ (12F675):

RX_GEN_675_2C_PULSO_ASM

Segue o arquivo ASM, modo ‘RETENÇÃO’ (12F675):

RX_GEN_675_2C_RET_ASM

Segue o arquivo HEX, compilado já para modo ‘PULSO’ (12F675):

RX_GEN_675_2C_PULSO_HEX

Segue o arquivo HEX, compilado já para modo ”RETENÇÃO’ (12F675):

RX_GEN_675_2C_RET_HEX

Manuais:
PIC12F675/629

Curiosidades:
De onde vieram as ‘instruções’?
A fruta que ‘pula’
Uma amostra do ‘paraíso’
Existem formas de vidas inteiramente ‘simples’?
Porque envelhecemos?
Você precisa mesmo se exercitar?
O segredo atrás das borbulhas
Controle remoto e o efeito estufa
O que é mnemônica
Ouvindo sons do espaço
Porque as estrelas são cintilantes?

Outros assuntos:
O que fazer se tenho um problema de saúde
Como se comunicar com filhos adolescentes
Como lidar com dívidas
Como resolver diferenças no casamento
Como tratar o conjuge com respeito
Como evitar ferir com palavras
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

Até o próximo artigo!!!

0

8 comments

  1. 0

    Claudio,

    Boa noite, estou aprendendo programação C e quando vejo um código em asm fico perdido, estou precisando de 2 pic gravados desse controle remoto Com 2 zonas, será que vc sabes quem possa fazer isso por mim, pago para fazer isso e me enviar via SEDEX.
    Obrigado.

  2. 0

    Olá Claudio, montei o circuito e funcionou perfeitamente como descrito. Parabéns. Mas Seria possível fazer uma modificação, tipo: uma zona ser de “RETENÇÃO”, e a outra zona ser “PULSO”. Ou até mesmo programa qual pino seria de retenção e/ou pulso? Mais uma vez grato pela ajuda! Continue assim! Barone

    1. 0

      Olá Barone! Neste chip está esgotado os pinos para fazer de forma externa. Talvez como opção de compilação… ou outro chip com mais io’s.
      Claudio

      1. 0

        Amigo te entendo , desculpe pela amolação só me responde então se puder tipo tem um projeto seu que ja mencionei qeu a sai é pulsada e vc pode determinar o tempo e os pulsos no caso este projeto acima tem 4 saidas serviria para este projeto mas tipo a parte de recepeção do controle é só copiar pois é a mesma certo , se eu copiar a partye dos pulsos teria que achar somente o pino a mais ? o problema do assembler é que um informação não esta em uma unica parte teria que mudar mais coisas ,mesmo assim amigo deculpa pelo incomodo . Agente não sabe da sua vida nem dos seus problemas pra poder te cobrar nada , abraço e sucesso .

        1. 0

          Olá Liliano! Não se trata de amolação. Gosto muito de achar soluções para as necessidades dos que me procuram. Mas infelizmente, tem dia que não consigo nem acessar o site para ver como estão as coisas. Quanto ao que você mencionou, realmente, muitas coisas ficam espalhadas pelo programa. São elas: Subrotinas chamadas pelos ‘call’, desvio de programas usando o ‘goto’, declaração de variáveis ( registradores) no começo do programa e em alguns casos, acerto de banco de dados de um pedaço da rotina. Quando fazemos a inclusão de pedaços de outro programa, primeiro, fique atento em declarar as variáveis que constam no pedaço que inclui.
          Ex.
          movlw 0x34
          movwf meuregistrador ; a variável nova aqui é ‘meuregistrador’
          goto pula4
          ……..
          Você deverá declarar no espaço de ram a variavel ‘meuregistrador’.
          ex.
          cblock 0x20

          r1,t2,temp,meuregistrador ; acrescentou a variavel no final

          endc

          Se tiver um ‘goto’ deverá ser apontado o novo destino para o programa.

          ex.
          movlw 0x34
          movwf meuregistrador
          goto pulaprogramavelho ;este destino não existe no programa a ser compilado, somente no programa de onde foi recortado.

          deverá ser acertado para:
          movlw 0x34
          movwf meuregistrador
          goto pulaprogramanovo ; sendo um novo destino dentro do programa a ser compilado

          bsf flag,3
          pulaprogramanovo:
          bsf portb,1
          ………….
          Não esqueça de declarar os pinos que serão usados e de acertar o sentido da porta (entrada ou saída).
          Quando for compilar, haverá várias mensagens de erros. Leia atentamente a mensagem e solucione um problema por vez.
          Recompile de novo. Até eliminar todos os erros. Por favor, tenha muita paciência no início. O segredo é persistência.

          Cláudio

    1. 0

      Hi Digit99! It’s necessary to change any routines. Please, wait for a future article about this.
      Thanks!
      Claudio

Comments are closed.