RECEPTOR PARA CONTROLE REMOTO COMERCIAL (HT6P20B) COM SAÍDA PWM – COM PIC 12F675 (REF118)

2

Controlar um nível DC a distancia pode ser interessante em aplicações de controle de volume. Como fazer isto com um controle remoto comercial (chaveirinho de portão/alarme)? Veja mais…

A proposta desta montagem se resume em variar uma tensão na saída de um pic 12F675 , gerada pelo método ‘ PWM’, conforme firmware carregado no Pic. Veja o esquema abaixo:

Esta tensão será aumentada quando apertarmos o botão direito de um controle remoto comercial, previamente ‘aprendido’ pelo PIC. Para reduzir a tensão, deverá ser apertado o botão da esquerda do controle.
A frequência do PWM está por volta dos 120 Hertz. O esquema mostra duas saídas: a saída S1, na forma PWM, usada para controlar cargas via transistores e a saída S2, já com nível DC (0-5 volts), para uso em potenciômetro digital. Foi aproveitado uma saída do PIC para responder em modo on/off (retenção) quando se aperta o terceiro botão ( ou os dois botões ao mesmo tempo).
Para usar, primeiro necessitará ‘aprender’ todos os botões do controle, e de outros controles, se usar mais de um.
Para isto, basta apertar o botão ‘learn’ (acende ‘led learn’), e em seguida, apertar o botão do controle a gravar. Repita com todos os botões. Caso deseje apagar todos os controles gravados, aperte o botão ‘learn’ por mais de 5 segundos. Quando começar a piscar, solte o botão. Após 5 piscadas, terá apagado todos os controles da Eeprom.
Qual uso desta montagem?
Veja a sugestão abaixo:


Podemos usar como um controle de brilho para uma lâmpada de forma remota. A lâmpada poderia ser substituída por um motor, por exemplo, para controlar a rotação de um pequeno exaustor DC em difícil acesso. Neste modo, usamos a saída S1, com sinal PWM.
Outra possibilidade está no controle de volume a distancia, com uso de cis do tipo ‘potenciômetros digitais’. Neste modo, usamos a saída S2, com níveis contínuos, para controlar um circuito integrado TDA 8199.
Veja a figura abaixo:

Obs. Esta montagem é de caráter didática, sujeita a bugs ainda não observados. Está sendo fornecido os arquivos ASM e HEX, que poderão ser alterados segundo as necessidades dos hobistas.

Segue pasta com arquivos atualizados em 23/10/2015, 120 hz, em ASM e HEX:

RX_PWM_0_5V_V4_FILES

Segue a mesma versão , com aprimoramentos, que salva no ultimo endereço da EEprom, o valor da última atuação do PWM, bem como o estado do interruptor on/off (no penúltimo endereço).
Com isto, ao religar a alimentação, voltará ao valor anteriormente regulado. Clique abaixo para obter pasta com esta nova versão (08-11-2015):

RX_PWM_0_5V_EEP_V4_FILES

Em 11/12/2016, foi postada esta versão que permite escolher entre pulso ou retenção, na saída controlada pelo terceiro botão do controle remoto. A escolha é feita mediante um jumper no pino 6 ao gnd. Sem jumper será modo pulso e com jumper será modo retenção. O restante é igual a versão anterior (08/11/2015). Clique abaixo para obter pasta com esta nova versão (11-12-2016):

RX_PWM_0_5V_120H_EEP_PR_V5

Manuais:

Pic 12f675

Curiosidades:
Quando as vacas saem de férias
Quando as substâncias químicas causam doenças
O que aprendemos dos projetos da natureza?
O que fazer para dormir melhor
Viver com o que se ganha — Como é possível?
A mais nova cordilheira das Montanhas Rochosas
Uma planta de crescimento lento
A Grande Fome na Irlanda — Uma epopéia de morte e emigração
Cherrapunji: um dos lugares mais úmidos da Terra
O tempero que veio do outro lado do mundo

Outros assuntos:
Fortaleça seu casamento por meio de boa comunicação
Os desafios de uma família com enteados
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!!!

2

77 comentários sobre “RECEPTOR PARA CONTROLE REMOTO COMERCIAL (HT6P20B) COM SAÍDA PWM – COM PIC 12F675 (REF118)

  1. 0

    olá Claudio , preciso de sua ajuda nesse circuito também . montei como controle de volume com tda8199 e funcionou perfeitamente, sendo que quero adicionar a função mute usando o pino 5 do pic . fiz da seguinte forma, no pino 5 do pic liguei um resistor de 4k7 que vai na base de um bc549 , o emissor liguei ao terra e o coletor ao pino 7 do tda e adicionei um resistor de 1k depois do capacitor de 100/16 e antes do coletor do bc549 . ficando na seguinte ordem, pino 7 do pic – resistor 2k2 em série – capacitor 100/16 em paralelo – resistor de 1k em série – coletor do bc549 em paralelo – e pino 7 do tda . funciona, sendo que tem uma pequena queda de tensão no pino 7 do pic, será que pode com o tempo queimar o pic ou o capacitor ?? como posso melhorar isso ?? vi que o Liliano também queria com o mute mas não entendi como ele vez . obrigado mais uma vez pela atenção .

    1. 0

      Olá Michaelverdan!
      Acredito que não terá nenhum problema. O pino 5 com retenção visava fazer um liga/desliga ou também mute.
      Cláudio

      1. 0

        boa noite, obrigado pelas respostas. vou continuar nos testes aqui, até agora não deu nenhum problema. a respeito dos indutores do circuito tens, decidi procurar nas lojas de componentes, caso não ache comprarei uma lâmpada mesmo (rsrs). um abraço.

  2. 0

    boa tarde Claudio tudo bem , só faltou funcionar a memorização que não esta funcionando na versão atualizada e nas outras versões esta com aquele problema de lampada oscilando.

      1. 0

        Bom dia Claudio tudo bem.
        agora a versão com memória esta funcionado ,porem a saída on off deu um problema ,quando eu ligo o microondas ou fogão automático ,o ruido esta disparando a saída.

        1. 0

          Olá Marcos!
          Os pics são conhecidos por serem muito sensíveis a interferências. Tente colocar um capacitor de 220 nf bem junto ao pino 1 e 8 do pic. Evite fios longos ligados aos pinos do pic.
          Cláudio

    1. 0

      Olá Marcos!
      Por favor, tente usar a versão 4, postada no artigo hoje. Fiz a correção para funcionar com frequência por volta de 125 hz para não tremular, e outros pequenos ajustes no software.
      Cláudio

      1. 0

        Claudio muito obrigado pela atenção ,parece que agora ficou good ,esta na bancada em teste ,qualquer coisa te falo, forte abraço.

    1. 0

      outra coisa que esta acontecendo é o seguinte a saída do pino 5 retenção dispara sozinho do nada e liga a lampada

      1. 0

        Olá Marcos!
        Desculpe a demora em responder. Estava em localidade desprovida de acesso a internet e longe da minha bancada. Você falou que fica oscilando? Como assim?
        Cláudio

          1. 0

            Olá Marcos!
            Você está usando uma lâmpada incandescente acionada por um transistor (12 volts)? A versão II que não apagava não tinha este problema?
            Cláudio

          2. 0

            v2 não v3 Claudio coloquei versão errada. isso 12v ao usar s1 via transistor aciona a lampada mais ela fica oscilando brilho espécie de um efeito tremulo da na lampada

      1. 0

        Olá Marcos!
        Já acertei esta falha. Obrigado por avisar, pois passou despercebido nos testes. Use a versão ‘pwm_0_5v_v3’ que está corrigida no artigo.
        Cláudio

    1. 0

      Olá Marcos!
      Realmente, após a montagem e testes mais apurados foi constatado o bug. Analisando o programa identifiquei a falha na seguinte porção de código:

      INTERRUPÇÃO

      MOVWF WTEMP ;SALVA ‘W’
      SWAPF STATUS,W ;SALVA ‘STATUS’
      MOVWF STATUSTEMP
      BANK0
      MOVLW .140
      MOVWF TMR0
      INCFSZ TMX1,F
      GOTO X4
      INCFSZ TMX2,F ;<—————BUG 1 deve ser apenas INCF TMX2,F
      X4
      INCFSZ TMZ1,F
      GOTO Z4
      INCFSZ TMZ2,F ;<—————BUG 2 deve ser apenas INCF TMZ2,F
      Z4

      MOVLW PASSO_INCREMENTO_PWM
      ADDWF PWM1,F

      Quando o contador chegava a zero, carregava PWM1 com valor errático que estava em 'W', sem sofrer primeiro a carga do valor de incremento.
      Acredito que tenha sido o erro clássico de 'copiar' e 'colar' porções de código, gerando este tipo de ocorrência. Já alterei o código postado para a primeira versão 'PWM0_5V_V2'. As outras duas mais novas também estão com o bug, e assim que tiver mais tempo irei corrigi-las.
      Obrigado por trazer atenção este problema.
      Sucesso em sua montagem!

      Cláudio

  3. 0

    Claudio bom dia ,estou com o circuito aqui montado e funcionando,porem acontece algo estranho a cada 7segundos uma oscilação na lampada ela da uma piscada aumenta o brilho repentinamente e super rapido e depois normaliza e se repete a cada 7 segundos .estou usando fonte super filtrada o que seria.obrigado

  4. 0

    Boa noite Claudio, queria saber si precisa usar o gravador de pic para grava o pic 12 675 , para fazer esse esquema elentronico. do RECEPTOR PARA CONTROLE REMOTO COMERCIAL (HT6P20B) COM SAÍDA PWM – COM PIC 12F675

        1. 0

          Olá Wladimir! Para gravar um pic, você tem que ter 2 coisas:
          1) um software de gravação, e o sugerido foi o WinPIc800. Baixe ele da internet e instale em seu computador.
          2) O hardware, ou plaquinha de circuito impresso, com alguns componentes , além de um soquete para inserir o pic para gravar, ou ainda, com fios de saída (+,-,vpp,dado,clock) para ligar em um protoboard onde iremos inserir o pic a gravar. Sugerido o ‘simples programador’ deste site. Este usa a linha serial do computador, a DB9 (por ter 9 pinos). O Windows deverá estar com as portas habilitadas (senão use o programa ‘userport’ para desbloquea-la). Caso você não tenha porta serial em seu PC, poderá tentar usar um adaptador de usb/serial vendido em lojas de eletronica ou comprar um programador para pic apropriado para usb do PC.
          Poderá ler o ‘Help’ do WinPic800. Também, será interessante ver tutoriais no youtube de como usar o WinPic800.
          Mas o passos são bem simples com o simples programador:
          1) Conecte o simples programador na serial db9 usando um cabo menor que 1 metro, para evitar ruidos.
          2) Pegue uma placa de protoboard e posicione o pic a gravar em alguma posição dele.
          3) Ligue os 5 fios no pic. Terá que baixar o datasheet do pic que estiver usando.
          Assim, olhe no datasheet qual é o pino da alimentação (vcc) e ligue o fio +5volts. O mesmo para o gnd e os outros 3 fios que saem do simples programador. Por exemplo: O pic12f675 tem o pino 1 como +5v, o 8 como gnd, o 6 como clk (clock) e o 7 como dado, e o pino 4 como o vpp.
          4) Abra o programa WinPic no PC. Configure ele para funcionar com programador tipo ‘jdm’ e inverter vpp. Salve esta configuração.
          5) Escolha o modelo do pic a gravar na caixa apropriada do programa.
          6) abra o arquivo .hex que deseja gravar (aba ‘arquivo/abrir’ e escolha o arquivo .hex na pasta que você o salvou).
          7) Ligue a alimentação para o programador.
          8) Na aba ‘chip’ clique em ‘programar’.
          9) Se tudo correu bem, irá aparecer uma mensagem ‘pic programado’ e a tarja verde em 100%.
          10)Retire o pic e coloque no seu circuito para pleno uso.

          Cláudio

  5. 0

    AMIGO peço desculpas pela insistencia , tentei mesclar uma parte do projeto de dimmer com IR na parte que memoriza o ultimo ajuste mas não consegui estava dando erro , preciso muito fazer com que este sistema memorize o ultimo volume ajustado para que quando for alimentar o sistema possa voltar em um certo volume de audio pois pretendo instalar em maquina de musica , esse projeto é ideal mas sem essa aplicação quando se liga a maquina ela vem muda .

    Uma sugestão pro seu caderninho seria um clap switch com um pic 12f , seria aquele sistema que acina um rele quando se bate palmas 2 vezes e desliga quando se faz o mesmo.
    amigo fico muito grato pela ajuda que tem me dado e lamento muito não saber o suficiente pra não ter que te amolar .

    1. 0

      Olá Liliano! Você esta se referindo a que artigo especifico? Ou é uma adaptação que você está fazendo?
      Cláudio

      1. 0

        amigo eu preciso que este artigo :
        RECEPTOR PARA CONTROLE REMOTO COMERCIAL (HT6P20B) COM SAÍDA PWM – COM PIC 12F675
        seja capaz de memorizar o ultimo ajuste do PWm pois asim o volume vai voltar no ultimo ajuste mesmo quando desligar aliemntação

        1. 0

          Olá Liliano! Creio que você usou o hex fornecido na pasta ‘RX_PWM_III’. Mesmo com esta versão você não teve sucesso?
          Cláudio

          1. 0

            amigo não tinha visto esta versão mas o que mudou nela ?

            vc incluiu a opção de memorizar ?

            Pois a ideia é memorizar o ultimo ajuste do volume , pois ao desligar ele retorne no volume memorizado e não em mudo .

          2. 0

            Olá Liliano! Se você ler o que foi acrescentado ao artigo, verá que o último acionamento ficará gravado na EEprom e será restabelecido ao reiniciar o pic após uma queda de energia ou mesmo religando o equipamento.
            Cláudio

  6. 0

    Amigo mais uma vez preciso da sua ajuda mas logico no seu tempo , teria como neste projeto o micro memorizar o nivel do ultimo acionamento assim ao desligar o aparelho ele voltasse no volume que foi deixado , mas isso memso se retirar a alimentação ? agradeço sua ajuda

    1. 0

      Olá Liliano! Infelizmente, estou sem condições de mexer neste código e em qualquer outro, por dificuldades pessoais. Tente alterar seguindo os exemplos de outros projetos.
      Cláudio

      1. 0

        Ok amigo , se precisar de alguma coisa que eu possa fazer pra te ajudar pode me falar e assim que vc puder não tenho pressa , vou ver o que consigo fazer obrigado e sorte na solução do tal problema ok

  7. 0

    amigo montei este projeto e tive um problema , na verdade dois problemas mas um foi na montagem que acrescentei , o que acontece o circuito atua muito bem mas o RX433mhz pelas medidas logo depois de pressionar o botão ele parece que faz um ultima transmissão dai o volume atua novamente

      1. 0

        opa amigo então , estou usando como volume de audio e utilizando o tda8199 ele atuou certinho porem aconteceu isso que te falei , ao acionar o pwm ele atua no volume tanto pra aumentar quanto pra abaixar porem logo depois que é solto o botão o RX ainda aparece uma tensão e o pic interpreta e aumenta ou abaixa o volume novamente , não alterei nenhum componente a unica coisa que inclui foi o mute mas isso ta funcionando pois peguei a saida de retenção liguei com u resistor e dois diodos 4148 na base de 2 bc547 , com seus emissores ao negativo e os coletores ligado na entrada de audio so que era pra ser na saida , esta parte ate funciona porem quando dou o mute o tda produz um chiado e é amplificado , mas isso eu modifico , agora o uncio problema é esse do volume continuar atuando mesmo depois de soltar o botão ou seja eu abaixo e ele aumenta novamente pois ainda tem uma variação na saida do RX .

          1. 0

            Olá Liliano! Com respeito ao aumento com retardo, se deve ao circuito trabalhar com apenas 64 passos dando a cada passo o valor de 5/64= 78milivolts. Até estabilizar no filtro, ela representa como se houvesse um novo aperto do controle. Postei uma nova versão com 256 passos que dá para cada passo : 5/256= 19milivolts . A frequência caiu na proporção de 4, sendo que era 120 hz e passou para 30hz. Experimente e veja se atende sua necessídade. Esta é a capacidade máxima dele.
            O ideal é que houvesse mais passos, mas não saberia como implementar com a frequência de clock do pic de apenas 4 mhz. Seria necessário outro tipo de recurso e outro tipo de pic. Uma outra opção seria, ao invés deste sistema, usar um potenciômetro digital, com I2C ou 1_wire.
            Cláudio

          2. 0

            Amigo me desculpa novamente o incomodo , não quero parecer chato ma gravei a ultima versãoque vc postou e não acende o led de learn e nem faz nada parece que tem alguma coisa errada

          3. 0

            Oá Liliano! Irei verificar se postei arquivo errado. Mas, verifique se você não perdeu o byte de calibração ao gravar, lendo o último endereço da Flash que devera começar com 0x34xx. Se estiver com 0xff, grave um valor provisório para funcionar com por exemplo: 0x34fc. Depois, regrave o arquivo hex.
            Cláudio

          4. 0

            Olá Liliano! Carreguei o hex postado do próprio blog e não tive problemas de funcionamento. Proceda a verificação do byte de calibração e das ligações no circuito. Na dúvida, troque o pic.
            Cláudio

  8. 0

    Amigo este projeto é possivel usando o receptor IR tipo os que v tem feito dai a possibilidade de controlar o volume por IR usando um controle de protocolo NEC . dai a ultilidade pra ser usado onde se perdeu o controle da tv mas possui o controle do dvd dai poderia atenuar oi audio usando o sistema e o controle do DVD . outra ideia é controlar uma carga ja que vc disponibilizou o PWM e ainda não vi nada na area de PWM com IR .

    1. 0

      Olá Liliano! Muito obrigado por suas sugestões. Quem sabe, em um futuro artigo possa usar ir+pwm.
      Cláudio

    1. 0

      Olá José! Que bom que você conseguiu resultados positivos! Mas os créditos são Daquele que nos ‘criou em sabedoria’ e que nos permite realizar as coisas.
      Cláudio

    2. 0

      lario boa tarde seria possivel voce colocar no seu caderninho um projetinho semehante a este, porem com controle protocolo nec (ir)?

    3. 0

      lario boa tarde seria possivel voce colocar no seu caderninho um projetinho semehante a este, porem com controle protocolo nec (ir)?

  9. 0

    olá claudio boa tarde:uma perguntinha eu comprei os controles comercial de 433mhz com o ci interno ht6p20b da hombrom e nao estou consguindo aprende_lo o meu receptor é de 433mhz que eu uso para outros testes,visto que os controles que comprei mostra ser de 433,92mhz é a mesma coisa? obs! fiz um teste meio maluco com o receptor e os controles.coloquei um led na saida de dados deste receptor e acionei um dos controles, ele recebe sinais do controle o led pisca em frequencias elevadas se poder me dar uma pista agradeço,pois tambem quero montar a discadora.

    1. 0

      Olá José! Sim , a frequência está correta. Geralmente não mencionamos os ‘,92’ por simplificação (os brasileiros gostam de simplificar tudo). Creio que você deve estar se referindo ao artigo ‘ receptor para controle remoto comercial (ht6p20b) com saída pwm – com pic 12f675’. No pino ‘5’ após o resistor, se for colocado um led e acionar o controle, deverá aumentar ou reduzir o brilho do led. No pino ‘7’ , ligará /desligará um led ao apertar os 2 botões conjuntamente (ou apertar o terceiro botão, se tiver no controle). Deve ser aprendido todos os botões no caso de 3 botões. Se tiver somente 2 botões, deverá apertar os 2 botões e aprender também, para que funcione o pino ‘7’. Se não for deste artigo, por favor, especifique qual é. Obs. Use sempre um resistor de no minimo 470 ohms em série com o led que usará para confirmar os pinos. Isto evita queimar o led e o pic.
      Claudio

  10. 0

    :mrgreen: Opa Claudio, me expressei errado, e uma dúvida mesmo, sobre a eeprom externa tem limitações que pode ser feita gravações e leitura ❓ , me refiro a quantidade ou tempo para ela poder dar problemas. Valeu

    1. 0

      Olá Foxcon! Toda memória EEprom é projetada para reter dados por uma quantidade máxima de anos que pode variar de 10 a 100 anos. Também tem o número aproximado de gravações que o fabricante garante, que pode estar entre 100.000 vezes a 1.000.000 de vezes. Fatores ‘estressantes’, como picos indevidos no Vcc, temperatura ambiente, etc, podem reduzir ainda mais este tempo de vida. Estas informações podem ser obtidas no datasheet da memória.
      Cláudio

  11. 0

    Olá larios, como vai ? Gostaria de saber se existe uma forma de fazer a busca dos controles gravados na EEPROM ser feita de maneira mais rápida, assim tenho um receptor e nele gravo muitos controles em uma eeprom externa, porém quando realizo a busca, do primeiro até encontrar o controle valido, para os controles que estão bem no fim a demora para aceitar o comando fica grande, tem como corrigir isto, ou fazer com que fique mais rápida esta busca. Obrigado e aguardo seus comentários.

      1. 0

        Olá, claudio, é uma aplicação minha, é que olhando seu artigo de receptor de controle remoto imaginei que poderia fazer esta verificação de código gravado de forma diferente ou mais rápida. minha aplicação consiste em um receptor de controle HT6P20B com uma memória externa EEPROM 24LC16 para gravar muitos controles e tem dois canais, porém os últimos controles gravados ficam muitos lentos para dar os comandos, imagino que seja a forma como busco na memória, seguindo a ordem um a um, do primeiro endereço de memória até o ultimo, caso saiba de uma outra forma mais rápida de leitura ou outra técnica para esta aplicação por favor me oriente, obrigado desde já.

        1. 0

          Olá Pic_New! Você poderá aumentar a frequência na leitura da EEprom, até o limite seguro. Existe versões de EEprom mais rápidas como a mc24c16-wmn6p, que podem operar com clock de 400 khz ao invés de 100khz. Não esqueça de trocar os pullups de 4k7 para valores menores como 2k2, para reduzir problemas com a capacitancia parasitas (consulte datasheet). Poderá aumentar a velocidade de clock do processador (se for possível, coloque cristal externo para o máximo) , ajustando os delays de acordo com a mudança. Isto ganha tempo na verificação de comparação. Uma outra possibilidade, é mudar a filosofia de EEprom, usando a paralela ao invés de serial. Esta é a forma mais rápida de acesso. Existe as 28c16 de 2k x 8bits. Mas o inconveniente é que terá de usar um microcontrolador com muitíssimos pinos, o que, em alguns casos é inviável.
          Cláudio

          1. 0

            ❗ Olá Claudio, terá algum problema no futuro sobre a quantidade de leituras da eeprom externa, existe uma limitação de leitura e escrita nela, valeu 🙄

          2. 0

            Olá Foxcon! Não entendi bem o seu comentário. Você esta fazendo uma afirmação ou uma pergunta?
            Claudio

  12. 0

    Ola amigo Claudio Obrigado por estes Projetos até hoje que vc criou! só uma pergunta Vc já tentou criar projetos por comando de voz, ligar saidas de pic por exemplo, vi que vc tinha feito um projeto gerador de notas musicais,,,

    1. 0

      Olá Cicero! Obrigado pelo seu comentário apreciativo. Ainda não fiz experiências com comando por voz em pic. Creio que para esta categoria de projetos, talvez necessite de um DSpic ou similar. Reconheço que preciso aprender muito para chegar neste tipo de montagem. Quem sabe…
      Claudio

  13. 0

    concordo que tudo isto é uma obra de arte, o Lários parece que percebe o que estamos precisando.thank

  14. 0

    mais uma vez obrigado pela sua atenção e ajuda , como sempre voce surpreende com algo mais .
    vou fazer o layout e se me permitir postar aqui .
    Obrigado e que Deus continue agindo na sua vida cada vez mais , sabendo que o conhecimento é um dadiva divina .

Os comentários estão fechados.