FAÇA UM PEQUENO CONTROLE REMOTO PWM DE 2 CANAIS (1MS A 2MS) – COM PIC 12F675 (REF113)

Gostaria de fazer um controle remoto compacto para sua diversão? Com apenas 2 canais PWM (1MS a 2MS)? Com opção de acionar mais 3 funções do tipo ‘on/off’? Então você vai querer ler mais…

Recentemente, foi publicado neste blog o artigo ‘FAÇA UM CONTROLE REMOTO PWM 8 CANAIS (1MS A 2MS) – COM PIC 16F628A’ com 8 canais PWM e 5 acionamentos do tipo ‘on/off’.
Mas para alguns hobistas, isto acaba sendo um exagero, sendo que alguns canais não são usados. Pensando naqueles que usam no máximo 2 canais PWM, e que querem uma montagem mais compacta, foi feita esta versão com PIC 12F675, de apenas 8 pinos, sendo ele pequeno e barato.
O padrão de muito servos se baseia no uso de um pulso entre 1ms a 2 ms . Quando ele recebe um pulso de 1ms corresponderá a posição inicial do servo. Se for colocado 1,5 ms de pulso, o servo se deslocará para a posição central e com 2ms irá para o extremo oposto. Valores intermediários irão resultar em posições proporcionais. Isto facilita o controle, por exemplo, da direção de um carrinho elétrico.

Veja o esquema abaixo do par transmissor/receptor:

O ‘TX’ é um módulo comercial de transmissão, cuja frequência deverá ser escolhida para a aplicação desejada (27mhz, 49mhz, 72mhz, etc). Para meus testes, usei um tx de 433mhz do tipo parecido com controle remoto de portão. Os 3 interruptores em modo on/off foram ligados aos pinos 4,6 e 7. Para obter o valor do PWM foram usados 2 potenciômetros de 4k7, sendo um ligado no pino 5 e outro no pino 3. Visto que o PIC12f675 tem internamente 4 canais de conversão analógica/digital, ficou mais fácil obter os valores proporcionais. O código ASM é bem simples e o HEX resultante da compilação é pequeno.

Na parte de recepção, foi usado outro PIC12f675, sendo que o receptor comercial entrega o sinal para o pino 4 e as outros pinos são unicamente saídas (excetuando a VCC e o GND).
O receptor tem que ser na mesma frequencia do transmissor. No teste, usei um receptor de 433mhz (comercial), mas, em uso, deverá ser usada as faixas legais permitidas para isto (consulte a legislação do seu país, quanto a potências e frequências, bem como de licenças de uso).
Em uma recepção completa são recebidos 5 bytes na sequência: byte de conferência (valida a transmissão), byte dos botões, byte pwm canal 2, byte do canal 1 e byte do serial number (sempre recebe o bit LSB de cada byte primeiro). Somando-se todos os bytes de dados tem que ter o mesmo valor do byte de conferência. Isto assegura a qualidade da transmissão. Quando ocorre um interrupção de sinal, o receptor mantém os valores anteriores nas saídas (tanto proporcionais como botões).
As saídas são PWM são acionadas sequencialmente, usando a rotina de interrupção do timer1 e timer 0 para controlar cada etapa.
O protocolo de transmissão de bits é o adotado nos receptores de HT6p20B, por já estar disponível com mais facilidade nos projetos deste blog.
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 foi montada e testada em placa de protoboard apenas, sujeito a bugs ainda não identificados. Esta sendo fornecido o arquivo ASM e HEX que poderão ser alterados segundo as necessidades do hobista.

Segue o arquivo ASM do TX:

CR_TX_2PWM_3B_ASM

Segue o arquivo HEX do TX:

CR_TX_2PWM_3B_HEX

Segue o novo arquivo ASM do RX:

CR_RX_2PWM_3B_ASM

Segue o novo arquivo HEX do RX:

CR_RX_2PWM_3B_HEX

Também para os que desejam fazer esta montagem usando um compilador ‘C’, segue os arquivos do TX e RX , bem como a pasta zipada com todos os arquivos originais:

cr_tx_pwm2c_3b_c (transmissor)

cr_rx_pwm2c_3b_c (receptor)

projeto_cremoto_pwm_tx_rx (ambos, em pasta zipada)

Também, segue pasta zipada com uma versão de receptor com pulso de 750 a 2800 useg, ao invés de 1000 a 2000 useg. Isto produz um curso maior no servo controle:

cr_pwm_rx_2ch_extendida

Manuais:
PIC12F675
Servo-motor
Outros esquemas curiosos

Curiosidades:
Por que o mar é salgado?
O que aprendemos dos projetos da natureza
Impressionantes “aspiradores” do mar
Um mar extraordinário — mas morto!
Uma batalha contínua contra as águas
Fantásticas dunas do litoral polonês
Barcelona — galeria ao ar livre de cores e estilos
O passado e o presente dos brinquedos
Alguns mitos a respeito da morte examinados mais de perto
Como estimular o desejo de aprender
O abuso do álcool e a saúde
Projetado com a capacidade de aprender sempre
Sono: supérfluo ou necessário?
Os custos das minas terrestres
Um universo cheio de surpresas
O som da neve
O que estamos fazendo com nosso alimento?
Mestres medievais da astonomia

Outros assuntos:
Fortaleça seu casamento por meio de boa comunicação
Os desafios de uma família com enteados
Como ser feliz no casamento?
Como se sair bem na escola — seja organizado
Como conversar com seu filho sobre sexting
Aprenda a perdoar
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?
Perguntas bíblicas respondidas

Até o próximo artigo!!!

43 comments on “FAÇA UM PEQUENO CONTROLE REMOTO PWM DE 2 CANAIS (1MS A 2MS) – COM PIC 12F675 (REF113)

  1. com tanta materia em asm ja estou me acostumando com os codigos,melhor ainda é que o Lários comenta muito bem as linhas, dai facilita o nosso entendimento estou gostando novamente do asm.agora vou tentar malinar neste codigo,pois pretendo acrescentar mais uma entrada pwm de 1 a 2 miliamperes,e uma entrada pwm de 0 a 5 volts e deixar apenas uma entrada on/off. neste serão 3 entradas pwm de 1 a 2 miliamperes 1 de 0 a 5 volts e uma on/off
    para isto conto com as preciosas ajuda e comentarios dos companheiros.

  2. lario transfomando este notavel projeto em um sistema aerodimámico dar para controlar um pequeno aeromodelo não dar?
    ex tornando ele para 4 entradas pwm de 1 a 2 milisegundos para 4 servos,mais um canal pwm de 0 a 5 volts e um canal on/off parece dar para voar certo isto é possivel rsrsr? abraço.

  3. Ola cladio obrigado pela atenção o servo não vai continua ou seja do percurso ele anda um pouco volta e vai novamente e não para na posição correta como o outro.

    1. Olá Reinaldo! Testei o circuito no protoboard e funcionou ok. Mas tem um detalhe importante que quero que verifique: A alimentação dos servos deve ser separada da alimentação do receptor de 433mhz e do pic. Senão, os picos de corrente irão resetar o pic e também poderão causar má recepção do sinal.
      Claudio

  4. Ola claudio bom dia! montei este esquema funcionou so que a saida 1 o pwm nao esta dando o tempo o servo nao trabalha correto o que sera?
    Obrigado

    1. Olá Ronaldo! Poderia explicar com mais detalhes o que está acontecendo? O que você quer dizer com ‘não trabalha correto’? Aciona o servo? Aciona com pouco curso?
      Claudio

  5. Claudio: ‘congratulation’ por esta econômica e compacta montagem que vai atender a necessidade da grande maioria dos hobista assim como eu,obrigado.

Comments are closed.

Back To Top