RECEPTOR DE 3 CANAIS PARA USO COM CONTROLE REMOTO (CI HT6P20B) E PULSO/RETENÇÃO INDIVIDUAL- COM PIC 12F675

0

Seria possível fazer com um único PIC 12F675, um receptor de 3 canais para controle remoto comercial (chaveirinho) com opção de pulso e retenção individual? Veja mais…

Já foram publicados varias versões de receptor para controle remoto usando o PIC 12F675/629, como no artigo ‘RECEPTOR DE CONTROLE REMOTO GENERICO PARA HT6P20B COM PIC 12F629‘, de forma didática. Agora, veremos um circuito prático, já incluído 3 reles com tensão de trabalho de 12 volts na bobina, e contatos para 10 amperes. Seus contatos poderão controlar cargas elétricas de aplicações das mais variadas possíveis.
Veja o esquema abaixo:

Trata-se, portanto, de um receptor de 3 canais, sendo que cada canal é controlado por um botão do controle remoto (chaveirinho).
A escolha deverá ser por controle remotos com 3 botões, que usem internamente o ci HT6P20B, pois o código ASM está preparado somente para este tipo de protocolo.
A novidade deste receptor está na flexibilidade que ele dá na questão de escolha do tipo de saída desejada. Ele permite que determinemos por meio de ‘Jumpers’ se a saída escolhida será no modo ‘Pulso’ ou no modo ‘Retenção’. Note que a escolha é individual, ou seja, podemos programar , por exemplo, a saída 1 para modo ‘Pulso’, a saída 2 para ‘Retenção’ e a saída 3 para ‘Pulso’ ou outras opções.
Com ‘Jumper’ colocado definimos ‘modo Pulso’ e sem colocar o ‘Jumper’ teremos o ‘modo Retenção’.
Toda vez que for redefinido a posição dos ‘Jumpers’ deverá ser dado um ‘Reset’ para que passe a funcionar corretamente o novo ajuste. Isto acontece por que, logo no início do programa, as ‘saídas’ são convertidas em ‘entradas’, com o objetivo de testar a condição dos ‘Jumpers’, sendo que os seus estados ficarão gravados nos flags nomeados de ‘Flagj1 a Flagj3’. Estes por sua vez, serão usados para definir o modo de operação de cada saída. Foram usados 3 resistores de pull up externos, para melhorar a polarização positiva, uma vez que os internos não foram suficientes.
Após montar o circuito, deverá ser carregado o arquivo hex no microcontrolador. Poderá usar um programa gravador (software) rodando em seu PC como por exemplo, o WINPIC800, e um gravador (hardware) como o ‘simples programador de Pic’ , deste blog.
Depois de gravado o chip com o firmware fornecido, deverá estar operacional, ao inseri-lo no circuito e ligar a fonte de alimentação.
O próximo passo é aprender o controle remoto. Para isto, basta apertar qualquer um dos botões e dar um toque no botão ‘Learn’. Em seguida, solte o botão do controle remoto, sendo que o led ‘Learn’ deverá piscar uma vez para indicar sucesso no aprendizado. Permite aprender até 42 controles diferentes antes de começar a subsescrever os primeiros controles gravados.
Para apagar todos os controles e limpar a memória, basta apertar o botão ‘Learn’ por mais de 10 segundos, após o que o led ‘Learn’ piscará algumas vezes para indicar o sucesso do apagamento.
É possível optar pelo uso do PIC12F629 ao invés do PIC12F675. Para isto, comente a linha apropriada em ‘Definições do usuário’ e recompile o arquivo ASM usando o MPLAB-IDE da MICROCHIP. Veja também o artigo ‘COMO COMPILAR OS ARQUIVOS ASM FORNECIDOS NESTE BLOG, JUNTO COM O MPLAB_IDE’.
Obs. Esta montagem foi testada apenas em protoboard (placa experimental), sujeito a bugs ainda não observados em uso prático. Esta sendo fornecido o arquivo asm que poderá ser alterado segundo as necessidades dos hobistas.

Segue o arquivo ASM (atualizado em 03/07/13):

rX_3C_HT6P_PR1_ASM

Segue o arquivo HEX ( para PIC12F675, atualizado em 03/07/13):

rX_3C_HT6P_PR1_HEX

Para os usuários de compilador “C” (CCS C), segue pasta zipada com 2 receptores alternativos de 3 canais, escrito em “C”, para Ht6p20b, com possibilidade de mudar para retenção ou pulso, modo normal ou invertido, alterando nas ‘configurações de usuário’ no arquivo ‘c’ e recompilando. A rotina de recepção é diferente, usando interrupção de mudança de estado do pino 4 (gp3) para iniciar a captação do tx para um programa e o outro, mais simples, apenas vigia o pino 4, procurando por alteração do seu estado. Cada parte do bit recebido é testada para melhorar imunidade a recepção de interferências (atualizado em 14/07/2015):

Recptores_Mudança_gp3

Caso deseje usar transmissores da família de circuito integrados Hcs 200…301 (chaveirinhos c/ HCS) poderá usar a versão abaixo, em modo Hopping Code. Lembrando, que para esta família, temos que recompilar o arquivo asm, com a chave (Key) igual a usada no Tx. Ela se encontra na rotina ‘Decrypt’ . Para gravar esta Key no ci HCS200 …301 do chaveirinho, você deverá usar um programador comercial, ou montar o programador segundo a Note Application AN217, ou um dos aqui publicado, como os artigos : ‘HCS_PROG_V628 – MAIS UMA OPÇÃO PARA PROGRAMAR HCS200…301 COM PIC 16F628A’ , ‘HCS_PROG_TINY – PROGRAMADOR DE HCS200..301 COM APENAS UM PEQUENO PIC 12F629 !!!’ e ‘HCS_PROG – PROGRAMADOR DE HCS 200/201/300/301 COM AT89S521’ .
A chave (Key) usada no arquivo hex é : ‘0123456789ABCDEF’.

Segue o arquivo ASM, Hopping Code (12f675):

rX_3C_HCS_PR_ASM

Segue o arquivo HEX, Hopping Code (12f675):

rX_3C_HCS_PR_HEX

Segue a versão ASM com opção de escolher as saidas em modo normal ou invertidas (somente HT6P20B, atualizada em 03/07/13 ):

rX_3C_HT6P_PR1_INV_ASM

Segue o arquivo HEX desta versão, compilada para modo de retenção e saída normal no pino 6 e os pinos 5 e 3 em ‘modo pulso’ e ‘invertidos’ (somente HT6P20B, atualizada 03/07/13 ):

rX_3C_HT6P_PR1_INV_HEX

Manuais:
Pic 12F675
Datasheet HT6P20B

Curiosidades:

Quem projetou primeiro?
O preço de levar uma vida muito corrida
A fábrica da morte
De onde vem a ameaça de guerra nuclear?
Comunicação — essencial nos ecossistemas da Terra
Uma das nozes mais úteis do planeta
Robert Boyle – lições do passado
Balolo – o caviar do Pacífico
A língua da selva — segredos da comunicação entre os animais
Ultimato “em nome de Deus”
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
A ciência e a Bíblia são compatíveis?
Yellowstone: encontro de águas, rochas e fogo

Outros assuntos:

Como fazer seu segundo casamento dar certo
Como lidar com sogros?
Quando seu filho tem uma deficiência
O que fazer se tenho um problema de saude – Parte 1
O que fazer se tenho um problema de saúde – Parte 2
Como parar de discutir
Como enfrentar o bullying sem ter de partir para a briga (animação)
Como acabar com a tática do silêncio
Como resolver problemas em seu casamento?
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!!!

Clique aqui para comentários/sugestões fora deste tópico

0

91 comments

  1. 0

    boa noite a todos.primeira mente quiria parabeniza o larios pelo seu belisimo projeto.alguem poderia desponibilizr o layout.agradeço desdeja.obrigado.

  2. 0

    ola sr claudio gostaria de saber se como manter o fucionamento do pino 3 do pic e no pino 5 varia uma tensão pwm para o brilho de um led. de 0 a 5 voltes de acordo com os botões 1 e 2 do controle chaveirinho e no pino 6 um temporizador de 2minutos para acender um led.tenho o circuito.
    jose aparecido

    obrigado aguardo

    1. 0

      Olá José!
      Você necessitará alterar completamente o código. A geração de PWM em pic’s sem o módulo ‘CCP’ fica um pouco mais complicada, especialmente quando tem de trabalhar junto com recepção do tx +temporização de uma saída. Também as frequências de PWM geradas por software, geralmente não passa de dezenas de hertz, no máximo, algumas centenas de hertz. Poderá ver os artigos ‘RECEPTOR PARA CONTROLE REMOTO COMERCIAL (HT6P20B) COM SAÍDA PWM – COM PIC 12F675‘ , ‘FAÇA UM ‘VERSÁTIL’ CONTROLE REMOTO REMOTO – COM PIC12F675′, ‘PWM – GERANDO DE 0 A 5 VOLTS EM 2 CANAIS PARA CONTROLE DE APLICAÇÕES (COM PIC 12F675)‘ , COMO GERAR TENSÕES DE 0 A 5 VOLTS USANDO MODULO PWM INTERNO DO PIC’ , para obter alguma sugestão de como fazer.

      Cláudio

      1. 0

        ola sr Claudio obrigado por responder.
        entendi a resposta. a questão e que não tenho conhecimento como programar um pic.
        percebi que o projeto RECEPTOR DE 3 CANAIS PARA USO COM CONTROLE REMOTO serve para outro projeto que quero montar se modificado os dois pinos
        vc pode modifica e quanto custa .obrigado
        jose scantec@globomail.com

        1. 0

          Olá José!
          Seria interessante você começar a aprender a programar, visto que gosta de circuitos desta natureza. Quanto a modificar o circuito, na realidade teria que fazer um novo projeto começando do zero, pois acho que daria menos problema do que adaptar. Eu não realizo trabalhos como programador ( não sou programador profissional), apenas faço isto por ‘hobby’ em tempo livre. As vezes realizo algum artigo baseado na sugestão de alguém que foi anotada no ‘caderninho’. Mesmo assim, não dá para publicar todas as sugestões e pedidos, pelo parco tempo que disponho. Se necessitar disto urgente, poderá procurar na internet por pessoas que fazem programas por encomenda. Sucesso no seu projeto!
          Cláudio

  3. 0

    Bom dia Cláudio, tudo bem? Mais uma vez estou aqui para tirar algumas dúvidas contigo sobre jumpers 😀 .

    Tendo como modelo seu projeto e pretendendo fazê-lo em CCS, de uma olhadinha nesse exemplo:

    #include
    #include

    #define jumper_01 PIN_A0
    #define jumper_02 PIN_A1
    #define jumper_03 PIN_A2

    #define saida_01 PIN_A0
    #define saida_02 PIN_A1
    #define saida_03 PIN_A2

    int main(){

    while(true){

    if (!input(jumper_01) && input(jumper_02) && input(jumper_03)){
    output_high(saida_01);
    }

    if (input(jumper_01) && input(!jumper_02) && input(jumper_03)){
    output_high(saida_02);
    }

    if (input(jumper_01) && input(jumper_02) && input(!jumper_03)){
    output_high(saida_03);
    }
    }
    }
    }

    PERGUNTA: Como faria para ACIONAR cada saída de acordo com a posição do jumper?
    Já procurei informações sobre como ligar jumpers na mesma porta de saída e
    não encontrei nada. Essa rotina que não ficou bem clara. li alguns artigos que falam sobre
    o uso de pull-up

    Há como você me dar alguma dica para acionar a saída?

    Desde já agradeço.

    1. 0

      Olá Xuguinho! Usar a própria saída como entrada com jumper com resistores pullup é meio complicado e depende do uso da saída. A idéia é usar um resistor ao Vcc que pode ser retirado do circuito usando um ‘jumper’. Mas é preciso que a carga nesta saída seja suficiente para derrubar a tensão para menos que 0,6 volts (nivel 0). Também, no momento que está saída está sendo lida, ela fornecerá alimentação (se com o jumper) para a saída e precisa certificar que isto não atrapalhará . Em alguns casos, poderá usar um filtro para não passar este breve pulso de alta velocidade, usando um resistor e um capacitor de alguns nanofarads. Em outros casos, uma rede de resistores bem calculados, poderão tanto alimentar a carga como fornecer os níveis desejados na entrada para o teste dos jumpers. Existe alguns artigos de controles remotos deste blog que usaram esta técnica.
      Cláudio

  4. 0

    Bom dia Cláudio… Fiz esta montagem em um protoboard. Tem um erro não sei onde!!! Se no firmware ou no hardware.Quando ligo o circuito, mas sem nenhuma carga, os 3 canais funcionam normalmente ora sim, ora não.Os pull-ulp são todos de 2k2 nos pinos 3,5,6. Quando ponho leds com resistores de 1k, o pino 5 (canal 2) fica no modo pulso!!! Quando ponho transistores para acionar relés, o pino 2 fica em pulso.Tô tendo problema só no canal 2. pino 5.Defeito igual ao do José Carlos, comentado mais acima.Poderia dar uma olhadinha, quando você tiver tempo??? Compilei no MPLab 8.86 e gravei em vários 12F675.

    1. 0

      Olá Batmonstro!
      Os resistores de 470, 4k7 e 2k2 não podem ser alterados , nem se pode colocar led no lugar do transistor. Caso queira usar led , terá que coloca-lo no coletor do transistor com resistor limitador de 470 ohms em série. Do contrário, não irá funcionar! Isto se deve ao fato de se ter calculado os valores desse resistores para se obter o nivel ‘1’ ou ‘0’ retirando e pondo o jumper. Alterando os valores de tais resistores, irá desiquilibrar esta polazarização delicada (0,8 a 1,2 para nivel ‘0’ e 1,8 a 2,2 volts para nivel ‘1’). Caso queira alterar para funcionar direto o led sem transistor, terá que alterar estes 3 valores de forma a dar os niveis ‘1’ e ‘0’ citados. Poderá fazer de forma experimental, com um voltimetro ligado direto no pino 5 (ponta vermelha) e como referencia o gnd (ponta preta). Com jumper tem que dar abaixo de 0,8 volts e sem jumper acima de 2,2 volts. Divirta-se!
      Cláudio

  5. 0

    Amigo Cláudio, parabéns pelo trabalho!
    Eu brinco bastante com arduino e a integração do 12F675 que estou quebrando a cabeça.
    A ideia que o 12F675 tivesse um saida TTL ou serial para uma entrada digital do Arduino (RX) assim quando o botao do controle fosse pressionado o tx do 12F675 imprima o numero do HT6p20 no RX do Arduino. (pode substituir um canal para a saída TX).
    Minha outra dúvida é a inclusão de mais controle, suponhamos que exista um edifício de 150 apto, logo precisaremos de 150 controle ht6p20.
    Existe um material de forma didática para inclusão de memória externa para gravar e ler usando o 12F675 ❓

    1. 0

      Olá Lourival! Obrigado por seu comentário apreciativo. Infelizmente, eu não tenho trabalhado com arduino neste blog. Talvez você possa adaptar algumas das idéias aqui postadas para seu objetivo. Quanto a uso de vários controles, veja o artigo ‘NOVO RECEPTOR GENERICO COM PIC 16F628A PARA HT6P20B E TAMBÉM HCS200…301 (SEM HOPPING CODE) – COM OPÇÃO DE APAGAMENTO INDIVIDUAL DE CONTROLES E LCD’ que talvez possa ser de ajuda.
      Claudio

      1. 0

        Amigo Cláudio, olhando outros projetos do seu site, o projeto http://larios.tecnologia.ws/iBlog/archives/2806 do controle é que preciso. o problema que não sei integrar todos esse projetos .
        A idéia do novo projeto pode ser o http://larios.tecnologia.ws/iBlog/archives/2034 integrando uma saída serial RS232 http://larios.tecnologia.ws/iBlog/archives/2806.

        Outra projeto pode ser

        RECEPTOR DE 3 CANAIS PARA USO COM CONTROLE REMOTO (CI HT6P20B) E PULSO/RETENÇÃO INDIVIDUAL- COM PIC 12F675 + Memoria para Mais controles e a Saida RS232 (CONTROL_TESTER_RS232 – LENDO CONTROLE REMOTO NO SEU PC VIA SERIAL – COM PIC 12F675 (629))
        Pode usar um outro tipo de PIC.

        Assim todo evento (controle remoto pressionado) que ocorra no PIC é impresso o codigo do ht6p20 na saida RS232.
        Assim posso fazer um software de monitoramento de controle de logs de acesso.

        Qualquer um dos projetos acima estaria perfeito, infelizmente não sem assembly e muito menos integrar esse dois códigos do projeto.

        Forte abraço.

        1. 0

          Olá Lourival! Uma saída serial? Qualquer velocidade de transmissão ou uma especifica (9600 bauds)? Você quer ver o número serial do controle recebido, é isto? Que tipo de circuito integrado no tx vai usar? Por curiosidade, não existe programa pronto para fazer um receptor de controle remoto usando o arduino?
          Cláudio

          1. 0

            Claro Sem Problema!

            Após que o 12f675 envie os dados via rs232 para o Arduino, utilizando o Ethernet shield eu posso fazer uma conexão web fazendo que estes dados seja incluso em um Banco de Dados MYSQL (php como conexão) e logo apôs a inclusão do Banco de dados será mostrado em um interface web os acesso (numero do controle dia e hora que foi acionado). Eu não tenho nado montado esta parte para mim é tranquilo o meu problema e programação em assembly para fazer esta integração

            abraços!

          2. 0

            Olá Lourival! O único dado que deseja é apenas o número serial do controle recebido, correto?
            Cláudio

          3. 0

            Olá Lourival! No projetinho do BIG_GEN II está sobrando o pino 1. Se eu usar este pino como saída serial, estaria bom para você? Será conectado direto pino a pino no arduino ou será via um integrado max 232 ou equivalente?
            Cláudio

          4. 0

            Olá Lourival !
            Postei uma versão do BIG_GEN usando o pino 1 para transmitir o número serial dos tx’s recebidos. Verifique se este circuito atende sua necessidade.
            Cláudio

          5. 0

            Olá Lourival! Ficou muito boa esta placa. Mas para o novo circuito terá que alterar a ligação dos interruptores e colocar um xtal nos pinos 15 e 16.
            Cláudio

  6. 0

    lario olá; há opçao por ex. se nao quero usar o chaveirinho com 3 botoes,posso gravar 3 clone separado para este receptor?

    1. 0

      Olá José! Sim, poderá usar pic’s como gerador de código no lugar do Ht6p20b do chaveirinho. A escolha é sua. Somente que os chaveirinhos são muito mais práticos e não são caros. Com pic você terá que arranjar uma caixa para acomodar o circuito, além de ter de adquirir o tx e acomoda-lo também na caixa, juntamente com a bateria , regulador de tensão,etc. Some os preços da caixinha, do tx, do regulador, do pic, da bateria e tudo ficará caro. Também, não creio que ficará prática, nem bonita. Se na sua localidade não tem, encomende pela internet.
      Claudio

  7. 0

    Hola Claudio:
    Muchas gracias por tu respuesta, ahora me quedo bién claro. No te preocupes, todos quemamos integrados, lo importante es aprender. Muy buena idea lo de poner resistores para proteger los puertos lo voy adoptar. Bueno Claudio muchas gracias por la predisposición que tenés para ayudar, saludos y hasta la vuelta amigo

  8. 0

    Hola Claudio:

    Muchas gracias por la respuesta, pero con respecto a la 1°pregunta, yo me refería a la resistencia de 470 ohms que está en serie entre el módulo receptor (data out) y la entrada al microcontrolador (pin 7) en este caso, dicha resistencia aparece en todos los proyectos, de control remoto. Me llama la atención, porque sin esta resistencia funciona igual, por eso queria saber si tiene alguna función especial?. No quiero molestarte pero me gustaría saber.
    Muchos saludos Claudio!!!

    1. 0

      Olá Ricardo!
      Você Tem razão. Para tudo tem um motivo, mesmo que não seja ‘aparente’. Este resistor realmente pode ser eliminada sem problemas. Porque então foi colocado? Para proteção da porta em fase de desenvolvimento. No passado, quando iniciei com microcontroladores, andei queimando alguns pic’s.
      Por exemplo: fazia uma montagem na qual o pic foi programado como saída positiva em um pino. Depois, passado alguns dias, aproveitava a mesma montagem para servir de base para uma outra totalmente diferente, em que ligava o ‘mesmo pino’ (já programado como saída positiva) uma chave direto ao gnd. Quando ligava o circuito ao Vcc, sempre vinha o desejo de dar uma ‘apertadinha’ no botão. Então, ….. Adeus Pic …. um curto, que destruía a porta. Desde então, necessitando ou não, coloco sempre em todas as Ports, um resistor de pequeno valor, que num caso similar, protege contra a destruição da porta. E muitas vezes, por força do hábito, acabam fazendo parte do esquema elétrico. Sinta-se a vontade para eliminar quando for este o caso (resistor de 220 ou 470 ohms).
      Claudio

  9. 0

    Hola Claudio:

    Excelene proyecto Claudio!!!, ya lo estoy implementando en un proyecto personal. Pero quiero hacerte un par de preguntitas: 1° Por que intercalas un resistor de 470 ohms entre el receptor y la entrada al microcontrolador, que efecto produce dicha resistencia, ya que sin la resistencia funciona de igual manera. 2° Por que el resistor del led learn es de elevado valor 1K5 no se puede poner uno de menor valor para que “brille” más?. Con respecto al proyecto, ya lo probé en el protoboard y funciona perfectamente. Te agradesco mucho claudio este aporte saludos

    1. 0

      Olá Ricardo!
      Respondendo a suas perguntas: 1) Por ocasião do ‘reset’ , logo que inicia o programa, as saídas se comportam como entradas. Os resistores de 470 ohms polarizam positivamente (nível ‘1’) ou não (nível ‘0’), dependendo se o ‘jumper’ (ligação) estiver colocado ou não. Esta situação irá definir se a saída em questão se comportará como modo ‘pulso’ ou modo ‘retenção’. Após passar por esta etapa, colocar ou não o ‘jumper’ não altera o funcionamento. Somente afeta por ocasião do ‘reset’. 2) o valor do resistor limitador de corrente para o led ‘learn’ poderá ser escolhido conforme você desejar o brilho. Apenas que não deverá passar de 20 mA. Use a formula 5/corrente desejada = valor do resistor, em ohms. Ex. led com 10 mA -> 5/0,01= 500 ohms.
      Use ou 510 ohms ou 470 ohms.
      Cláudio

  10. 0

    Amigo sera que nãio seria possivel no pino 2 onde esta o led learn acrescentar um piezo para ter uma indicação auditiva do funcionamento , tipo um beep para indicar acionado e 2 beeps para indicar desligado o canal , seria um piezo apenas para os mesmo canais ,não sei se ainda teria o espaço no programa para este micro mas se for possivel isso em um pic 16f628 ,seria de muita ajuda para quem quer operar o sistema e for no caso um deficiente auditivo , o mundo é para todos né .

  11. 0

    Claudio
    Boa tarde.Ótimo projeto!Parabéns!
    Montei e funcionou muito bem. Agora uma pergunta, é muito difícil gravar na memoria o ultimo estado? Ou seja quando desligar a alimentação permanecer na ultima condição, ligado ou desligado?
    Obrigado

    1. 0

      Olá Danilo!
      Quero agradecer seu comentário motivador. Para realizar o que você deseja, precisaria gravar cada mudança das saídas também na EEprom. Quando houvesse um ‘reset’, o programa leria estas posições da Eeprom e atualizaria as saídas de acordo.
      Cláudio

  12. 0

    Claudio. Tudo bem? Montei o circuito ficou muito bom! Parabéns e obrigado. Mas tenho um pergunta, como eu altero o estado inicial da saída com retenção? Ou seja quero que quando alimente o circuito a saída que escolhi com retenção fique em nível alto. Você pode me auxiliar? Obrigado

    1. 0

      Olá José Carlos!
      Experimente , logo após a seção ‘start’ , quando você encontrar a instrução ‘clrf gpio’ , escrever em seguida, ‘bsf saida_1’ para iniciar com ‘1’ na saida 1 e o mesmo se for com outra(s) que desejar trabalhar com retenção inicialmente setado. Depois , recompile no Mplab_ide.
      Cláudio

  13. 0

    opa amigo ainda neste projeto tive um probleminha mas fiz aqui eu mesmo uma solução não sei se te ajudaria mas estava com pouco ganho no receptor só estava alcançando uns 2m de distancia , troquei o modulo RX nada , troquei o controle e nada resolvi fazer uns teste com resistores consegui um ganho melhor quando acrescentei um resistor de 3K9 do pino da data out do receptor para o negativo ai teve um bom alcance , quando vc tiver um tempo faz o teste ai pra gente e se for a solução vou mudar aqui no meu esquema . Valeu pelo projeto e entrei em contato pois não sei como vc fez o teste ai mas eu quando montei fiz o teste bem de perto então funciona uma maravilha vai saber né . eu fiz um layout se quiser te envio para disponibilizar ele aqui ok.

    1. 0

      Não te entendi , vc me respondeu no projeto cujo eu coloquei o problema do resistor que tive que colocar mas foi sobre o resistor de 10M , neste projeto acima que estava falando do resistor de 3k9 que tive que acrescentar pois havia instabilidade na recepção do modulo Rf .

      Projeto :
      RECEPTOR DE 3 CANAIS PARA USO COM CONTROLE REMOTO (CI HT6P20B) E PULSO/RETENÇÃO INDIVIDUAL- COM PIC 12F675
      abraços

      1. 0

        Olá Liliano!
        Parece que o problema foi que deixei o pullup ligado na entrada de RF, por engano. Já corrigi o ASM e o HEX. Tente ver, por favor, se resolveu, sem ter que usar o resistor de pulldown de 3K9, conforme bem sugerido por você.
        Obrigado pela ajuda.
        Claudio

  14. 0

    Ola Claudio bom dia meu nome é Edmilson e seu site tem sido muito proveitoso para meu aprendizado na area de microcontroladores. Eu venho acompanhando seus projetos ja a algum tempo e pela sua experiencia em controles remoto acredito que podera me ajudar com uma duvida que é a seguinte meu chaveiro do alarme do carro usa o ci pt2240b e eu gostaria de saber como faço para emular este ci usando um pic ou como faço para casa lo com os receptores publicados em seu site .Obrigado Edmilson LS

    1. 0

      Olá Edemilson! O protocolo do pt2240b é um pouco diferente do Ht6p20b. Necessitaria mudar a rotina de recepção para este protocolo.
      Claudio

  15. 0

    Amigo montei este projeto tive apenas um problema ai fiquei na duvida , sera que foi na gravação , o canal do pino 5 se não tiver o transistor ligado ele fica em modo retenção se eu ligar o transistor ele não aceito o modo retenção de nenhuma maneira , na minha montagem coloquei um led pensei que fosse isso desliguei mesmo assim pois conforme seu enunciado quando alimenta o circuito ele faz a leitura dos pinos e identifica se é modo pulso ou retenção mas isso esta certo só este problema que deu amigo assim que tiver um tempo . me diz o que posso fazer ?

    1. 0

      Olá Liliano! Você está seguindo de perto os valores do esquema? Não teria algum resistor de valor errado montado?
      Claudio

      1. 0

        respeitei tudo sim amigo , a unica diferença foi a que eu te falei que havia acrecido os leds de cada canal , mas mesmo deligando ele o defeito acontece somente neste canal , agora outra coisa que eu fiz foi gravar o pic e colocar o codigo de proteção para não ser visualisado o hex , mas fora isso montei 2 iguais e deu o mesmo defeito , a´te cheguei aumentar o resistor da base deste canal e nada , mas fora isso os outros 2 canais estão ok

        1. 0

          Olá Liliano! Gostaria que você fizesse o seguinte: Mude os 3 resistores de pull_up de 4k7 para 2k2 (os que estão ligados ao vcc e aos pinos 3,5 e 6). Esta mudança garantirá o nivel ‘1’ de forma correta.
          Claudio

          1. 0

            ok amigo vou fazer as modificações , o estranho é que sem nada o pino 5 funciona bem tb , mas deve ser isso a soma de resistencia alterando pull -up , mais uma vez muito obrigado , te enviei o layout do projeto do bloqueio veicular com codigo não sei se vc recebeu , depois vou te envia o layout deste tb e quiser postar ok , fiz ele para uma versão de menor corrente usando reed sw , ficou muito bom só faltou isso mesmo .
            amigo só mais uma coisa sei que vc esta sem tempo mas quando tiver e se vc souber postar alguma coisa com usb , tipo um sistema de comando pela usb , ou uma key lock com usb , alguma coisa assim pois hoje tenho aprendido muito com seus projetos , se o seu objetivo é espelhar o conhecimento , pode acreditar ja tem conseguido isso amigo .

      2. 0

        Caro amigo me da uma luz tem um amigo que gostou deste projeto de 3 canais porem ele me perguntou se teria como fazer ele no modo pulso se ele pulsasse o rele , tipo 3 pulsos em um determinado intervalo tipo 2 pulsos em 500ms , não sei bem ao certo pra qual finalidade ele quer assim mas derrepente pra acionamento de algum aviso sonoro por um intervalo ma diz teria como no asm mudar para que as 3 saidas fizessem e teria como deixar de maneira que pudesse ajustar os intervalos independentes de cada saida ? , só me diz onde posso alterar

        1. 0

          Olá Liliano!
          Não entendi bem. A saída irá pulsar um rele a uma dada frequência? Para que fim?
          Claudio

          1. 0

            nem eu sei a finalidade foi um amigo que me pediu , mas deve ser para acionamento de aviso sonoro ou algo assim , ele me diz que tinha que ser assim , Canal 1 : 02 pulsos com intervalo de 500ms entre cada pulso.
            Canal 2 : 05 pulsos com intervalo de 500ms entre cada pulso.
            Canal 3 : 10 pulsos com intervalo de 500ms entre cada pulso. mas poderia tb ser no mesmo canal mas para cada botão um intervalo diferente

          2. 0

            Olá Liliano!
            Saber a finalidade é importante para avaliar o tipo de temporização. Se forem precisas será difícil obter. Os pulsos também tem uma duração que precisa ser informado, além do valor do intervalo.
            Claudio

          3. 0

            opa claudio , mas uma vez obrigado pela atenção , eu andei olhando os projetos antigos e um dos primeiros com clone do chaveirinho tem um projeto com pulsos (RX_GEN_HT6P20B_V8)
            dai mudei o asm para o jeito que te falei e acho que deu certo agora sobre o intervalo dos pulsos não sei se deu os 500ms pois seria assim tanto para ligado quanto para desligado , mas no seu projeto me deu esta opção de colocar o tempo nele vc coloca que 1= 50ms dai eu coloquei 10 que seria igual a 500ms certo e neste projeto vc pois que pode ser escolhido a quantidade de pulsos tb , ficou igual ao que o meu amigo pediu só não sei se vai dar certo no intervalo mas mesmo assim fico muito agradecido

          4. 0

            amigo no caso este projeto teria como mudar no asm para ele funcionar no modo tempo e pulsos igual ao antigo receptor gen de versão 8 pois assim eu poderia escolher com o jump a quantidade de pulsos ja definidas tipo determino no arquivo asm para cada saida um botão e para cada botão uma quantidade de pulsos tipo botão 1 com jumper 2 pulsos sem o jumper 5 pulsos e poder escolher o intervalo de acesso e intervalo de apagado . seria ao inves de escolher modo pulsos ou retenção eu escolheria pulsador 1 /pulsador 2

          5. 0

            Olá Liliano!
            Por favor, experimente você mesmo, alterar o asm, pegando as partes de um asm e agregando ao outro. isto poderá ajuda-lo a desenvolver na arte. Infelizmente, não poderei mexer com isto no momento.
            Claudio

  16. 0

    Oi Claudio Tudo bem? Como eu posso modificar os estados dos leds que coloco em pulso ou seja inverter. Apagar os leds quando aperto o controle. Obrigado

    1. 0

      Olá José Carlos! Seria somente em modo pulso que seria invertido ? Ou também em modo retenção?

      Claudio

          1. 0

            Você não imagina como estou tentando… Já tentei trocar BCF por BSF mas acho que estou mexendo no lugar errado.

          2. 0

            Olá José Carlos! Eu não entendi bem porque você quer inverter estas saídas. Qual o uso? Também gostaria de saber se é somente no pulso que necessita inverter? Ou na retenção também?
            Claudio

          3. 0

            Então Claudio. Eu quero colocar este controle em um amplificador antigo. Queria um botão com retenção para ligar e desligar e os outros 2 para aumentar e diminuir o volume.E aí eu preciso que essas duas saídas fiquem em nível alto e quando acionar o controle vá para nivel baixo. Ok?

          4. 0

            Olá José Carlos! Muito bom! Assim que eu tiver um tempinho vou montar também no protoboard para fazer os testes para esta mudança. Aguarde…
            Claudio

          5. 0

            Obrigado Claudio!!! Por enquanto vou estudando por aqui, quem sabe eu cheguo ao seu nível um dia. Abraço

          6. 0

            Olá José Carlos! Veja a nova versão com possibilidade de inverter as saidas no mesmo artigo. Use o hex que já esta para 1 retenção e 2 pulso invertido.
            Claudio

          7. 0

            Claudio muito obrigado pela atenção, ajudou muito. Mas como sou teimoso e não queria colocar os jumpers, fiz uma pequena modificação. Comentei a verificação do J1 e J3 pois vou usar somente como pulso e comentei a verificação do J1 e setei ele, ficou assim: ;BTFSS SAIDA_1 ;VERIFICA O ESTADO DOS JUMPERS EM J1,J2 E J3
            ;BCF FLAGJ1
            ;BTFSC SAIDA_1
            ;BSF FLAGJ1

            ;BTFSS SAIDA_2
            ;BCF FLAGJ2
            ;BTFSC SAIDA_2
            BSF FLAGJ2

            ;BTFSS SAIDA_3
            ;BCF FLAGJ3
            ;BTFSC SAIDA_3
            ;BSF FLAGJ3
            E funcionou. Obrigado novamente e parabéns pelo seu belo trabalho. Abraço

    1. 0

      Hi Digit99! Do you like so much Keelog, is not! Wait, please, for a future article about this!
      Claudio

  17. 0

    Olá Claudio, estava querendo postar o layout que fiz desse projeto, mas não consegui funcioná-lo. Já verfiquei e meu esquema bate com o seu. Quando aperto o botão para gravação, nada ocorre, nem quando seguro por mais de 10s, parece que não consigo programar o pic. Sendo assim acho melhor não postar a pci. Grato.

    1. 0

      Olá Barone! Vou dar uma conferida se houve alguma falha no esquema. Mas, enquanto isto, tente reconferir seu ‘layout’. Tente usar outro pic, pois já peguei vários, que após algumas programações, deixaram de funcionar corretamente, apesar de se poder carregar e ler o código hex nele.
      Cláudio

    2. 0

      :mrgreen: Olá Claudio e Barone, caso vc queira me mandar o desenho posso verificar para vc se o problema e do hardware, aqui eu montei e deu certinho o funcionamento, valeu…

      1. 0

        Olá Barone! Conferi a montagem postada e está ok. Vi o seu email e analisando o pcb, notei que o pic, no pino 8, não está recebendo gnd. Tente ligar um pedaço de fio, do pino 8 ao gnd do regulador 7805 e veja se funciona. Notei que sua fonte ‘fast’ talvez não tenha corrente suficiente para acionar os 3 reles ao mesmo tempo. Use para teste, uma fonte convencional de 12 volts, depois que funcionar, tente com a ‘fast’. obs. Pode haver mais erros, mas notei, por hora somente este.
        Claudio

        1. 0

          Olá Claudio, mais uma vez obrigado. Ele esta alimentado sim por um jumper na pci. A FAST tem que usar 4,7uF para poder ter os reles funcionando. Mas nos teste fiz somente com os leds. como o Fox falou que funcionou o erro deve ser meu mesmo. Grato. Barone.

  18. 0

    amigo novamente surpreendendo com a programação , muito agradecido pela sua colaboração . só uma questão mas sobre outro micro , ja vi vc comentando sobre um projeto com micro da motorola que agora é freescale . tenho uma boa quantidade de micros de receptores de parabolica queria usa-los para outros projetos o]um dos modelos MC908JL8CPE , vc teria alguma coisa pra estes micros e qual copilador usar e os procesos de gravação , quando te sobrar um tempo pois este micros são muito usados e pouco conhecidos , seria interessante encontrar um projeto tipo o chama garçom , o medidor de temperatura , ou até mesmo este projeto aqui anunciado porem com mais portas e gravações individuais , mesmo assim fico grato por sua paciência e dedicação

    1. 0

      Olá Liliano! Estes microcontroladores não têm, atualmente, ferramentas gratuitas. Isto dificulta a migração de hobistas para este fabricante. Mas, surgindo oportunidades, usarei em alguns artigos. Veja o site do P&E micros sobre preços destas ferramentas.
      Claudio

  19. 0

    Olá Cláudio, agora ficou bem versátil. Já até fiz o layout da pci para este circuito. Grato! Barone.

Comments are closed.