FAÇA UM CIRCUITO DE CONTROLE P/ SERVO MOTOR – C/ PIC 12F675 (REF203)

1

Uma solução alternativa para sua necessidade…

Os servos motores são muito usados em radiocontrole. No entanto, são geralmente limitados quanto a força que podem exercer em seu braço atuador.
Mas muitos hobistas gostariam de usar o sinal de 1-2 ms de receptores comerciais de controle remoto para acionar algo que exija mais força. Neste caso, terá que construir um servo mais robusto.
Em geral, o servo se compõem de 4 elementos: um motor DC, um conjunto de engrenagens para a redução de velocidade e aumento de torque no braço atuador , um potenciômetro de recópia e a eletrônica de controle.
No comércio especializado, encontramos vários motores DC montados em conjuntos que tem reduções de engrenagens, de diferentes tamanhos e tensões de funcionamento. Então bastaria acoplar um potenciômetro de recópia e a eletrônica de controle para torna-los um servo motor. Daremos atenção a parte da eletrônica de controle, deixando de lado a parte de cálculos de redução por engrenagens (redutor) e potência necessária do motor DC.
Veja o esquema abaixo:

Fazendo uso de um PIC 12F675, podemos ler o tempo ‘on’ do sinal 1-2ms (duty cycle) que chega no pino 4. Para isto usamos o Timer 1, com ajuda de interrupções por mudança de estado do pino 4.
O valor obtido na leitura do sinal de entrada é comparado com a leitura da tensão no cursor do potenciômetro de recópia. A partir desta comparação obtemos 3 possibilidades:

1) o motor deve girar para esquerda – a tensão no potenciômetro é maior que o valor do sinal de entrada
2) o motor deve girar para direita – a tensão no potenciômetro é menor que o valor do sinal de entrada
3) o motor deve ficar parado – a tensão no potenciômetro é igual ou próxima do valor do sinal de entrada (zona desligada)

Em outras palavras, quando o sinal na entrada aumenta, o motor é ligado, movimentando o eixo, que por sua vez faz girar o potenciômetro de recópia, alterando o seu valor. Movimenta até obter uma igualdade de valores. Se o sinal de entrada diminuir, o motor girará em sentido contrário, para compensar a mudança.
Portanto, o sistema recebe um ‘feed-back’ da posição do braço por meio do potenciômetro de recópia.
No esquema acima, foi usado transistores bipolares em ponte ‘H’ para controlar o sentido e a corrente do motor elétrico. Conforme a tensão e a corrente do motor usado, deverá ser usado transistores que suportem as condições de trabalho. Poderá usar transistores MosFet no lugar dos bipolares, desde que sejam polarizados corretamente, conforme já explicado por vários sites na internet.
Existem várias possibilidades de acoplar um potenciômetro ao eixo do redutor. Poderá ser de forma direta ou com uso de polias ou mesmo com um tirante (potenciômetro deslizante).
Note que esta montagem é ainda um protótipo, que precisará ser melhorado para algumas aplicações mais exigentes, mas serve de base para experimentos interessantes.
Obs. Esta montagem é experimental, sendo de caráter mais didático, montada apenas em placa experimental (do tipo Protoboard), sujeita a bug’s ainda não detectados. Está sendo fornecido os arquivos para que cada hobista possa alterar o programa segundo suas necessidades.

Segue pasta com os arquivos desta montagem, com versão para compilador CCS C e XC8:

Drive_servo_Files

Adicionalmente, segue pasta com versão de 10/12/2015, usando o método PID (proporcional, integrativo e derivativo).
Note que os fatores Kp, Ki e Kd devem ser ‘sintonizados’ para obter um melhor funcionamento da sua montagem.
Na pasta tem apenas para compilador CCS C, visto que com a versão ‘free’ do XC8 não se consegue compilar, dando mensagem de ‘falta de memória Ram’:

DRIVE_SERVO_PID_FILES

Manuais:
PIC12F675

Curiosidades:

Você pode melhorar sua saúde
O mergulhão-do-norte — uma ave que encanta
O Dicionário Assírio — 90 anos de trabalho
O Cáucaso — a “montanha das mil línguas”
O segredo da borboleta bela-dama
A capacidade de armazenamento do DNA
Os desafios da menopausa

Outros assuntos:

Podemos confiar nos noticiários?
O que preciso saber sobre sexting?
Sou um fracasso?
O sofrimento precisa acabar
Quem são meus verdadeiros amigos?
Por que evitar a ostentação?
Como posso lidar com o estresse?
O impacto das notícias em seus filhos
Como vencer a obesidade infantil
Os perigos da impaciência
Vídeo: Vejo a vida com as mãos

Até o próximo artigo!

1

40 comentários sobre “FAÇA UM CIRCUITO DE CONTROLE P/ SERVO MOTOR – C/ PIC 12F675 (REF203)

  1. 0

    lario tudo bem? gostaria de saber se é possivel utilizar este projeto no pic 16f628 ou outro? e assim aumentar as saidas para mais 2 ou 3 motores? é possivel? obrigado.

    1. 0

      Olá José Luiz!
      Infelizmente o 16f628a não dispõe de conversor analógico para digital internamente, o que impossibilita a migração.
      Cláudio

  2. 0

    Boa Tarde!!
    Poderia mostrar como eu acionaria um led no pino 5 onde:
    Quando a referência de posição for igual ao retorno do potenciômetro o led fique aceso.
    se não,
    o led pisque.
    Tipo uma confirmação de posição solicitada.
    A entrada também teria que ser de 0-5v, pois pretendo usar um potenciômetro na entrada. 😀

      1. 0

        Sim claro.
        vou usar para adaptar uma caixa de marchas com reduzida da Amarok em uma Rural Willys.
        A Amarok possui um sistema elétrico para fazer a mudança de 4×2, 4×4 e 4×4 reduzida onde um motor aciona um fuso, onde a castanha faz o trabalho de engatar. Na caixa de marchas tem um sensor hall analógico, que já testei e funciona com 5 volts que irá mandar o feedback. Então vou montar 3 divisores de tensão sendo que sei os valores exatos que necessito para fazer o engate na posição certa. Vou usar uma seletora manual de 3 posições para mudar o referência. O led é para eu saber se engatou certo. E a entrada 0-5 para facilitar o hardware.

        1. 0

          Olá Gelson Staudt!
          Obrigado por compartilhar a aplicação. Achei bem interessante, apesar de parecer bem trabalhoso a adaptação de todos estes componentes.
          Para fazer a alteração, terá que usar um canal do conversor analógico para digital. Este lerá a tensão da entrada (do seu divisor de tensão) e comparará com o potenciômetro de recópia. Isto alterará significativamente a forma que foi escrito o programa, talvez sendo mais fácil fazer um outro novo.
          Claudio

          1. 0

            Tá então para facilitar a modiicação. Manter entrada 0-5 para referência e fazer o led apenas piscar quando o motor estiver ligado, tanto pra esquerda ou para a direita e aceso se o motor estiver desligado. Que teoricamente é a mesma coisa pois com o motor desligado sei que está na posição solicitada!! Não concorda?

          2. 0

            Olá Gelson Staudt!
            Pelo que entendi, você vai usar um sensor hall (tipo ponte??) no lugar do potenciômetro de recópia, é isto? Conforme a distância muda o valor da tensão de saída? Quantos pinos tem este hall? Ou o modelo?

            Cláudio

          3. 0

            Boa Tarde..
            Ham não sei o modelo do sensor, apenas sei que tem 3 pinos. Ele é todo encapsulado e é original da Amarok. Consegui com testador de diodos identificar a pinagem e testar, onde ele tem um ímã na parte externa. Girando esse ímã o sensor tem na saída uma variação de 0-5v .

          4. 0

            Olá Gelson!
            Quando você escreveu “uma variação de 0-5v” quer dizer uma variação de “0 até 5 volts” (como se fosse o cursor de um potenciômetro) ou seria “0 ou 5 volts” (somente 2 valores)?
            Cláudio

          5. 0

            Opa
            Desculpa se me expressei mal. É um sinal analógico que varia de 0 até 5 volts. Sim como se fosse um potenciômetro usado como divisor de tensão.

          6. 0

            Olá Gelson!
            Entendi bem agora. Com respeito a redução, haverá o perigo de ficar oscilando quando chegar na referência. O motor quando desliga continua girando bastante ou para de imediato? Se não parar, tem que prever algum tipo de freio, geralmente elétrico, na ponte h. O motor usa imã permanente no estator? Se for, pode se pensar em usar 2 relés ao invés da ponte h. Um ligará para frente e outro para trás. Quando ambos estão desligados curto-circuita o induzido, e freia bruscamente.
            Cláudio

          7. 0

            Boa Noite.
            Acredito que não vai ter problema com a desaceleração pois o motor está acoplado a uma caixa de redução. Pelo que testei até agora não será necessário frear no momento de desligar o motor.

  3. 0

    olá seria muito complicado cria um programa para um circuito inversor DC-DC que usa-se um 12f675 2 mosfet e um nucleo de ferrite, mais seria interesante poder mudar a frequencia mesmo alterando e copilando novamente o codigo C (para realizar os testes iniciais )a finalidade desse circuito era para usar em um aplificador (e outros que usem tensoes elevadas) para o carro ou seja esse circuito elevaria a tensaao de 12v para 45v simetrico e dai alimentava o circuito amplificador como a frequecia e bastante elevada usarei utra fast diodo(diodo de chaveamento rapido) ache esse mais nao cosigo mudar a frequencia.pois é em asm

    http://www.electro-tech-online.com/attachments/rb-sine-wave-2-png.36069/

    desde já agradeço pelo blog e os projetos contidos neles.

    1. 0

      Olá Morais!
      Fazer o pic gerar uma frequência de onda quadrada em 2 saídas opostas não é difícil, sem pwm. O difícil é a rede de realimentação para o controle da tensão de saída usando o pwm. Os cálculos do transformador também são bem complicados. Qual a frequência de base que tem em mente usar?
      Cláudio

      1. 0

        geralmente esses circuito usam 25khz o trafo e um toroide com poucas volta, nao sabia que tem que ter o controle de tensao no caso é porquer a tensao sobe desodenadamente é isso?

        1. 0

          Olá Morais!
          Quando colocamos uma carga na saída do inversor a tensão de saída tende a cair. O controle citado tenta corrigir para evitar esta queda. Mas pode ser feito sem ele, desde que a carga não seja sensível a estas variações.
          Cláudio

          1. 0

            entendo.um desse circuito observados realmente tem um resistor conectado ao ci chaveador vindo direto da tensao alta acho que e justamente o controle referido.
            Bem valeu pelo o esclarecimento. 😉

          2. 0

            Olá Morais!
            Quando tiver um tempinho vou dar uma pesquisada sobre isto. Quem sabe sai algum artigo!
            Cláudio

      2. 0

        a respeito do controle de tensao acho que vc quiz dizer pra deixar exatamente 45v isso é feito nos enrrolamentos do nucleo de ferrite mais voltas mais tensao menos voltas menos tensao.

  4. 0

    amigo fiquei numa duvida em uma ideia de projeto , tenho ate uma ideia de como seria porem ainda fico agarrado em umas partes , preciso que um pci 12f675 mesmo tenha 3 entradas com opção botão para ligar e manter enquanto pressionado e desligar se soltar a chave e 3 saidas para cada entrada mickroc faria o igaul ou diferente do atual estado mas não sei como fazer enquanto pressionado apenas , e uma das entradas queria fazer tipo com um sensor lm35 para identificar a temperatura e acionar a saida enquanto estiver alta temperatura mas isso se der pra fazer

    1. 0

      Olá Liliano!
      Muito obrigado por seus bons desejos! Quanto ao seu comentário, infelizmente não consegui entender exatamente o que você pretende fazer. Talvez você possa fazer um descritivo com mais detalhes do seu funcionamento. Por favor, procure usar frases mais curtas, se possível.
      Cláudio

      1. 0

        o que preciso é fazer um circuito tipo monitor para amplificador de audio , one o pic vai monitorar a temperatura , detectar tensão DC na saida de audio e desligar o alto falante sendo estereo , posso fazer um desenho de como seria o projeto se quiser

        1. 0

          Olá Liliano!
          Por favor, faça então este rascunho com o esquema e coloque o tipo de sensor, temperatura que acha que deva desligar e qualquer outra coisa mais.
          Cláudio

          1. 0

            vou fazer então o que seria minha ideia , mas a principio pensei em um circuito com 3 entradas e 3 saidas sendo que cada entrada aciona sua saida e usaria transistores para acionar essas entradas , mas vou fazer o rascunho e te mando em um link de imagem ok

          2. 0

            [URL=http://www.imagebam.com/image/3bccad457276406][IMG]http://thumbnails105.imagebam.com/45728/3bccad457276406.jpg[/IMG][/URL]

            é tipo isso ai

            ou algo parecido com isso

          3. 0

            Olá Liliano!
            Eu vi a imagem, mas não ficou claro o funcionamento. Poderia explicar como funciona? Que tipo de sensor usa? Qual a faixa de trabalho?
            Cláudio

  5. 0

    amigo mais um ano que se passa , quero apenas te desejar saude e paz , não por ser nessa data que muitos comemoram mas como vc ja me disse e ame abriu os olhos realmente uma festa Pagã então eu te desejo pelos bons projetos que vc sempre postou em aberto para todos e que Jesus esta sempre no seu coração , que sua familia tenha muita saude e que vc tenha muito trabalho em 2016 pois o dinheiro pe consequencia desse trabalho .

  6. 0

    hello lario so uma perguntinha posso usar qualquer um dos tx deste site que controla servo, para controlar este controle de servo? gracias.

    1. 0

      Olá José!
      O circuito visa construir um servo para aplicações que se exija mais força ( no caso, a parte eletrônica de controle). Assim, qualquer circuito que entregue o sinal de 1-2 mseg na saída deverá operar. Como exemplo, poderá usar o conjunto Tx/rx da montagem “faça um pequeno controle remoto pwm de 2 canais..”, ligando no canal 1 ou 2, pois estas saídas geram sinais de 1-2 mseg ( ou seja, ligue um servo comercial ou faça um conforme o artigo em questão). Para testar, usei o circuito ‘FAÇA UM TESTADOR DE SERVO CONTROLE (1MS A 2MS)’, que também gera o sinal de 1-2 mseg na sua saída.
      Espero que tenha entendido.

      Claudio

  7. 0

    lario bom dia,projeto show de bola, voce com sua humildade de fazer as coisas está nos ajudando a exclarescer muitos segredinho de décadas. este ai é um deles, ja tenho uma aplicação pro futuro com este esperado controle de servo.obrigado

  8. 0

    Olá
    Muito Grato por fazer este software, vou testar, com o 12f675 muita gente tentou mas ha problemas de fim de curso e retorno ao centro preciso. Se funcionar bem com ou sem mudanças repasso o arquivo para uso dos leitores.

    Vinci 😀

    1. 0

      Olá Vinci!
      Este circuito não visa obter muita ‘precisão’, uma vez que é uma ‘adaptação’. A centralização poderá ser afetada pela redução mecânica (relação entre número de voltas do motor e o número de voltas da saída), precisão do potenciômetro de recópia, largura da zona neutra no software, etc. Quem sabe você possa otimiza-lo ou mesmo criar um novo, que atenda as suas necessidades.
      Cláudio

    1. 0

      Olá Tossupper!
      Bem que eu gostaria, mas tenho de escolher entre microcontrolador ou modelismo. O tempo é limitado. Mas alguns do blog sempre dão dicas construtivas para ajudar nos artigos. Se tiver, serão bem-vindas!
      Cláudio

  9. 0

    larios muito obrigado por da vida ao projeto do servo, esse eu tenho 120% de certeza que funcionará.
    valeu mesmo. 😀

Os comentários estão fechados.