FAÇA UM ‘VERSÁTIL’ CONTROLE REMOTO REMOTO – COM PIC12F675 (REF114)

2

Que tal mais uma proposta de um receptor de controle remoto PWM? Só que com uma diferença: 1 canal com PWM (padrão 1-2ms, para uso com um servo), e outro canal PWM, com saída de 0 a 5 volts (para uso como controle de velocidade)? Mais 3 canais on/off de uso geral? Continue lendo…

Quando pensamos em fazer um controle remoto, muitas vezes desistimos devido a sentir insegurança na sua montagem. Talvez tenha um bom esquema, mas… não acha ‘aquele’ integrado especifico. Muitos estão, até hoje, esperando para encontrar uma peça para terminar uma montagem, guardada na gaveta. Pensando nisto, muitos tem criados seus próprios projetos, usando componentes facilmente encontrados no comércio eletrônico. Creio que os PIC’s são agora facilmente encontrados, ou podem ser obtidos via compras na Internet. Então, porque não usar PIC’s para projetos de controle remoto?
A ideia deste artigo não é fornecer detalhes de montagens, mas uma base para crescer um projeto ou vários projetos. Como uma ‘chama’ que inicia o ‘incêndio’, quero atiçar o ‘desejo escondido’ em muitos por esta atividade.
Para controlar, por exemplo, um carrinho remoto (elétrico), necessitamos de uma servo para controlar a direção. Existe comercialmente, pequenos servos de 3 fios, que mudam a posição de seu braço, proporcional ao tempo que um sinal de controle fica em ‘1’. São os servos PWM por pulsos de 1 a 2 mSeg. Este é uma boa opção para controlar a direção do carrinho.
E que dizer do acelerador? Para um carrinho a gasolina, outro servo seria excelente. Mas para o modelo elétrico, seria melhor usar uma saída PWM, cuja saída tivesse níveis de tensão variável de 0 a 5 volts, proporcional ao comando no transmissor.
Bastaria aplicar na base de um transistor de potencia, via um resistor de 4k7 (por exemplo), que se conseguiria controlar a corrente de um motor de tração, ligado em seu coletor, de forma proporcional.
Talvez queira acrescentar uma chave para frente/trás, ou ainda, um botão de buzina (buzzer). Precisaria, então, de uns canais em modo on/off.
Bem, é justamente isto que esta montagem básica pretende fornecer: 1 canal PWM (modo 1-2ms, com saída no pino 5), 1 canal PWM (modo 0-5 volts, com saída no pino 3) e 3 canais simples (modo on/of, com saídas nos pinos 2,6 e 7).

O esquema é o mesmo da montagem ‘FAÇA UM PEQUENO CONTROLE REMOTO PWM DE 2 CANAIS (1MS A 2MS) – COM PIC 12F675’, tendo somente que carregar o Hex desta montagem. O Hex do transmissor também deverá ser mantido o mesmo.
Veja abaixo o esquema citado:

Vemos na figura abaixo, como se comporta a saída PWM por pulso 1-2ms em relação a saída PWM por nível de tensão proporcional.

Para obter os 2 tipos de PWM deu um pouco de trabalho, pois foi necessário usar a interrupção do Timer 1 quase que constante (cada 80 microsegundos). Esta interrupção tanto incrementa o contador de pwm de tensão, como permite testar recepção de sinal RF. O timer 0 ficou dedicado a geração do PWM por pulso (1 A 2 MS).

Atenção: É importante separar a alimentação do PIC e também do receptor 433 mhz da alimentação dos servos controles. Estes, ao acionarem, geram picos de corrente que podem ‘resetar’ o PIC, ou mesmo, atrapalhar a recepção do sinal momentaneamente.

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

Segue os arquivo ASM para o receptor desta versão ‘Versatil’:

CR_1C_PWM_1C_05V_3B_ASM

Segue os arquivo HEX para o receptor desta versão ‘Versatil’:

CR_1C_PWM_1C_05V_3B_HEX

Para o transmissor, poderá usar o ASM:

CR_TX_2PWM_3B_ASM

Para o transmissor, poderá usar o HEX:

CR_TX_2PWM_3B_HEX

Segue, para os que desejam uma versão em ‘C’, poderá obter esta versão tendo também um canal PWM 1-2MS e outro PWM 0-5VOLTS, com facilidades adicionais, como usar os botões em modo retenção/pulso e invertidos:

CONTROLE REMOTO 2C_PWM_MISTO_3B

Segue, adicionalmente, poderá obter esta versão tendo os 2 canais em modo PWM 0-5VOLTS, com facilidades adicionais, como usar os botões em modo retenção/pulso e invertidos, atualizada em 17/09/2015:

CR_2C_PWM_3ON_OFF_V2_FILES

Segue uma versão do TX em ‘C’ para os receptores acima:

tx

Também, se desejar, poderá obter uma versão com pulsos de 750 a 2800 useg no servo controle, obtendo assim, mais curso. Use os arquivos da pasta compactada abaixo:

cr_pwm_rx_misto_extendida

Veja também o artigo ‘FAÇA UM CONTROLE REMOTO PWM 8 CANAIS (1MS A 2MS) – COM PIC 16F628A’

Manuais:
PIC12F675
Servo-motor
Outros esquemas curiosos

Curiosidades:
Como é viver acima das nuvens
Cuidado com os “Dragões Brancos”!
Bolor — amigo e inimigo!
O que fazer para dormir melhor
O túnel rodoviário mais comprido do mundo
Pneus — sua vida pode depender deles!
Como lidar com problemas da próstata
Mapeamento do céu: no passado e no presente
Alimentos nutritivos ao seu alcance
Tomar chá à moda chinesa
Gota — causas e fatores de risco
O projeto maravilhoso da molécula de hemoglobina

Outros assuntos:
Como disciplinar seu filho adolescente
Por que eu me corto?
Desempenhem bem o papel de pais
Como fazer seu segundo casamento dar certo
O que acontece quando morremos?
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

33 comentários sobre “FAÇA UM ‘VERSÁTIL’ CONTROLE REMOTO REMOTO – COM PIC12F675 (REF114)

  1. 0

    amigo Desculpa te incomodar mais uma vez , esse circuito é muito bom mas volto a te pedi como te pedi da outra vez não teria como fazer uma versão assim so com infravermelho protocolo NEC igual aso que vc tem disponibilizado , com pelo menos uma saida PWM de 0a5V pra controle de volume e com 3 saidas retenção ?

    1. 0

      Olá Liliano!
      O artigo “Faça um versátil controle remoto..’ visa controlar brinquedos, como pequenos carrinhos de controle remoto. O que você deseja é usar um controle remoto infra desses de tv Lg (por exemplo) para controlar som através da tensão 0 – 5volts atuando em algum ci e 3 reles atuadores ligando e desligando cargas, bem diferente do objetivo do artigo. Mas vou colocar no ‘caderninho’ para algum futuro artigo.
      Você não retornou o funcionamento daquele circuito de proteção de saídas de som. Estou no aguardo.
      Cláudio

      1. 0

        Ok , peço desculpa por postar no lugar errado , mas lembra que você ja tinha feito um projeto so que com RF e usou o TDA8199 a ideia é a mesma porem ao inves de receber dados por RF 433mhz é usar o infravermelho entendeu ?
        sobre o outro projeto estou montando um arquivo pra te enviar .
        Fica na Paz amigo e obrigado por sempre dispor seu tempo

  2. 0

    Olá Claudio!

    Na versão 2_C_pwm_0_5v algo está a perturbar o correto funcionamento dos três canais on/off,é necessário pulsar várias vezes para ligar/desligar -as outras versões estão a 100%. Mas esta,2c_pwm_0_5v,”encaixava que nem uma luva” para o carro/brinquedo elétrico que eu já montei usando conjuntamente o,seu, projeto cinco canais controlo remoto,Ref. 156. O brinquedo tem duas rodas/motor e uma roda rodízio na frentre. A direção é dada pelo acionamento dos motores alternadamente. Não é a descoberta da pólvora 😀 apenas dou alguns detalhes!
    Se o Claudio poder ajudar.

    …….Paz
    Respeitosamente:
    Costa Eusébio.

    1. 0

      Olá Costa!
      Poderia me informar se a pasta que se refere é a ‘CONTROLE REMOTO 2C_PWM_AMBOS_0_5V_3ONF_OFF_C’? Ou outra?
      Fico no aguardo.
      Cláudio

      1. 0

        olá Claudio!
        Sim. Testei, na placa de ensaios, várias vezes com essa e com as outras.Tudo ok, exceto a pasta 2C_PWM_AMBOS_0_5v_3ONF_OFF_C.- O ensaio foi realizado de seguinte modo: Nas saídas do PIC conectei leds com as respetivas resistências. acionando o interrutor/pulsador,na saída o led pisca mas não se mantém aceso só depois de pressionar três a quatro vezes o pulsador, o led liga.De igual modo inversamente.

        Costa Eusébio.

        1. 0

          Olá Costa!
          Terei que montar o circuito na placa experimentar e testar. Assim que conseguir isto eu lhe retornarei.
          Cláudio

        2. 0

          Olá Costa! Poderia por gentileza testar a versão atualizada no artigo identificada agora como ‘ CR_2C_PWM_3ON_OFF_V2_FILES’ (anterior ‘2C_PWM_AMBOS_0_5v_3ONF_OFF_C’) quanto a questão dos interruptores e me retornar?
          Obrigado

          Cláudio

          1. 0

            Olá Claudio!
            Agora está a funcionar muito bem. Parabéns!
            Deixe-me dizer-lhe -nada que voçê já não saiba- a sabedoria, a verdadeira, anda lado a lado com a bondade.
            Muito obrigado. E, sempre grato.

            Respeitosamente:
            Costa Eusébio.

  3. 0

    Bom dia Claudio, gostaria de sanar uma duvida contigo, é possível fazer um controle remoto com 6p20b de 6 canais usando 3 ci 6p20b no mesmo controle, e somente um modulo tx ?
    Minha ideia é um controle remoto com 6 botões, porém com 3 somente liga e 3 somente desliga, pra que eu possa ligar alguma coisa que esteja em outra parte onde eu não consigo ver, essa ideia é porque com controle liga e desliga no mesmo botão dificulta saber se a lâmpada que vc acionou em outro cômodo está ligada o desligada.
    Desde já obrigado!

    1. 0

      Olá Dragom2! Possível é, mas não acho prático, pela quantidade de integrados. Mas é você que decide o que fará em sua montagem, não é verdade?
      Cláudio

  4. 0

    Bom dia Cláudio!
    Obrigado por ter respondido, permita-me fazer um comentário, acho que você é muito mais que um hobista, é um expert no assunto.
    Obrigado mais uma vez, e permita-me fazer parte dos seus admiradores, quero aproveitar esse espaço para aprender, grande abraço.

  5. 0

    Olá, gostei do seu controle remoto, gostaria de comprar o projeto para usar em automação de lâmpadas residenciais, mas com os 5 canais como liga e desliga.
    Gostaria de saber se é possível, qual seria seu preço, com o código ajustado para 5 on/off
    Abraço!

    1. 0

      Olá Dragom2! Obrigado por seu comentário. Sou apenas um hobista que compartilha experimentos com microcontroladores através deste blog. Caso necessite de alguém que projete seu sistema e que continue dando suporte, deverá contatar um profissional da área. Fica disponível este espaço para os que desejarem oferecer serviços neste sentido.
      Claudio

  6. 0

    boa tarde claudio! o projeto funcionou perfeitamente , porem tenho potenciometros com mola que estabilizam no meio, e eles são de 10k, o que alterar para funcionar com esse potenciometro

    1. 0

      Olá Niiniis! Não sei dizer, pois não conheço como eles deverão atuar na sua montagem. Você já mediu com o multitester, se eles ficam com metade da resistência? Como pretende usar estes 2 potenciômetros?
      Cláudio

  7. 0

    para quem quer fazer uma montagem compacta precisa e barata eis ai o progeto que pode ajudar a muitos em montagens pequenas.
    montei numa pequena placa de fenolite com meu par de tx rx de 433 mhz e o bixinho tem uma precisao marcante tanto o pwm de zero a 5 volts quanto ao pwm para o servo e as chaves on/off valeu lario.

  8. 0

    amigo agora este projeto teria como ser usado apenas o controle chaverinho ?
    tipo programar para receber ele e acionar a saida PWm de 0a 5V tipo um botão para elevar , outro para
    abaixar e o terceiro para zerar .
    pois isso seria interessante para um controle de volume ou velocidade sem a nescessidade do display e liberando de qualquer controle acionar .

  9. 0

    ok primeiro ele apresenta: o valor de bandgap pic é 0x00 usar valor do buffer 0x03.

    segundo: erro de verificaçao endereço 0x002007
    verificando 0x31c4 lendo 0x31ff to no aguardo claudio.

    1. 0

      Olá José! O primeiro é um aviso para você optar em usar o valor do bandgap do ‘bod e por’ para o que saiu de fabrica ou pela opção do valor do buffer do programador. Este, explicando de uma forma simples, é um valor de patamar de funcionamento para o nivel de reset do pic. A microchip calibra ele por ocasião da fabricação, e deve ser usado o valor de fábrica. A maioria dos programadores salvam este valor e retorna na ocasião da programação. Vai de 0 a 3, onde ‘0’ é o menor patamar para reset e ‘3’, o maior.
      O endereço 0x2007 é o endereço da palavra de configuração. Se você tenta gravar uma palavra de configuração e esta lendo outra, pode ser que o pic esteja com defeito.
      Tente gravar outros programas para testar, antes de descartar o pic.
      Claudio

  10. 0

    lario bom dia: gostei desta materia e explicaçao sobre osccal,voltei na minha lixeira peguei de volta e conseguir recuperar 2 pic 12f675 e um 629.
    agora o que está me entrigando é que eu gravo arquivo hcs_pic_629n normalmente,porem quero gravar o arquivo chama_ atendente com este 629 ele dar erro.poderia me dar uma ajudinha de explicaçao rsrsr agradeço.
    um arquivo dar certo o outro ñ

  11. 0

    Bom dia e obrigado pela sua explicação ela foi muito util é mais um trecho do seu site que vou salvar em pdf para ter em meu computador na verdade todos os arquivos que salvei ja da até para publicar uma revista de eletronica pois são muito bons e o melhor funcionam .Voltando ao caso do osccal eu montei o gravador pickit2 e funciona perfeitamente e no proprio software pickt tbm da mnicrochip existe uma opção de recuperar o osccal e eu ja havia tentado usar esta opção e nada de conseguir ai como ultima opção li um pic novo exatamente onde esta a informação do oscilador e escrevi o 34ff nos pics problemticos e nw é que funcionou sei que um pic é diferente do outro em algumas caracteristicas mas apos gravar o 34FF nos tres eles voltaram a funcionar rsrsrsrsrsrrs que coisa de louco mas como disse antes obrigado pela sua explicação q ja esta salva em uma pasta somente sua em meu computador com todos os arquivos mas ca entre nós adoro muito os relacionados a controle remoto .Agora um artigo que eu gostaria muito de montar e esta meio dificil sair é o relogio controlador de 6 canais que eu quero ainda colocar em uma maquina de solda aqui onde trabalho mas encontrar o DS 1302 aqui onde moro é bem dificil agora se fosse o DS1307 sem duvida o relogio ja estaria na maquina. Bom ja falei demais brigadão mais uma vez e que Deus te ilumine nw só pelos projetos mas tbm pelos artigos que vc coloca relacionados a Jeova que muitas vezes acaba servindo como um alivio para muitos de nós fique com Deus e até mais .Um abraço Edmilson LS

    1. 0

      Olá Edmilson! Fico feliz que conseguiu dar mais um passo no seu aprendizado. Realmente, é impossível usar todas as possibilidades de montagem, pois em certa região tem um pic, ou outro ci e noutra não. Conforme tenho possibilidade, procuro diversificar para atender o máximo possível estas dificuldades. Também fico feliz que se interesse pelo ‘verdadeiro conhecimento’.
      Claudio

  12. 0

    amigo isso seria muito bom tambem para ser usado em como um potenciometro wirelles ( sem fio )
    com a aplicação do tda8199 pode ser variado o audio de uma amplificador , ainda com opçao de ligar e o mute individual por canal , sobre aquele projeto em RF resolvel ficou otimo , mas , etrentanto , todavia rsrsrsr
    no IR continua a piscar so pra lembrar sera que o mesmo metodo resolveria ?

    1. 0

      Olá Liliano! Ufa! Finalmente funcionou então! Quanto a versão IR, creio que deva também resolver o problema, no uso on/off. Assim que tiver um tempo, vou ver…
      Cláudio

  13. 0

    Claudio bom dia nossa parece até que eu estava adivinhando que vc ia publicar algo referente ao que eu te pedi ontem mais uma vez parabens embora eu ainda nw tenha montado nenhum dos dois ultimos projetos. Mas fikou muito bem explicado nos dois casos.Agora como ja disse sou iniciante na area de programação e eu tenho aqui tres pics que apresenta um erro de osccal e nw sei o que é isto até encontrei na net um site que ensina a recalibrar este osccal e no começo dos dois codigos ASM vc fala o seguinte CERTIFIQUE-SE DE TER O BYTE DE CALIBRAÇÃO NO ENDEREÇO 0X3FF SALVO e este 0X3FF é o erro que apresenta no meu caso .No seu caso o que significa ter o byte de calibração salvo no endereço 0x3FF como salvo ele neste local .Desde ja obrigado e um abraço .Edmilson LS se vc quiser dar uma olhada segue link onde ensina recalibrar um pic com osccal perdido srsrsrsrsrrsrsr meu caso mas eu ainda nw tentei recuperar o osccal então se funciona ja é outra historia http://picprojects.org.uk/projects/recal/recal.htm.

    1. 0

      Olá Edmilson! Obrigado pelo seu comentário apreciativo. Vamos falar um pouco do byte de calibração. Quando o pic vem de fábrica, é colocado no endereço 0x3ff (1023 decimal) , o byte que é usado para calibrar a frequência do oscilador interno de 4mhz. Se voce ler um pic novo usando por exemplo, o Winpic800, você verá toda a memória escrita com 0xff, exceto o endereçõ 0x3ff, que deverá ter um byte escrito. É o ultimo endereço da flash, nos pics 12f675/629. Quando estamos fazendo um programa qualquer, é boa prática recuperar este valor desta posição de memória e carrega o registrador ‘osccal’, responsável pela frequência do oscilador interno. Você verá uma porção de código parecida com isto:
      bank1
      call 0x3ff ;busca e coloca em ‘w’ o valor do byte de calibração
      movwf osccal ; pega o valor de ‘w’ e coloca no registrador responsável pela frequência do oscilador interno
      bank0

      Quando apagamos a memória flash, este byte também será apagado. No Winpic800 tem um recurso de salvar este byte de programação, apagar e na programação, devolver o valor original.
      Mas, se acontecer um erro e perdermos este byte? O oscilador irá trabalhar em uma frequência que não será a correta de fabrica. Para certa aplicações não tem o menor problema. Mas em aplicações que exige precisão nas temporizações, teremos problemas. Como obter este valor novamente? Você citou um site, com um artigo que ajuda a recuperar este byte. Eu prefiro usar esta solução deste blog, no artigo ‘como calibrar a frequência do oscilador interno do pic 12f675/629’. No seu caso, leia a flash dos pics e veja se o valor no endereço 0x3ff é diferente de 0xff. Se for, ainda está com o byte de calibração intacto. Se for 0xff, já foi apagado e precisa ser recuperado usando as sugestões do artigo acima citado.
      Cláudio

  14. 0

    Dar mérito a quem é merecido é justo, e elogio a quem faz por onde, também é. Parabéns por este fantástico e flexível projeto Lários. A robótica e as inúmeras aplicações te agradece.

Os comentários estão fechados.