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

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!!!

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

  1. 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 ñ

  2. 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. 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

  3. 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. 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

  4. 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. 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

  5. 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.

Comments are closed.

Back To Top