Experimentando o timer1
Controle de servo com PIC16F628A
com Compilador XC8 Microchip



Um pouco de teoria


Os servos são dispositivos muito empregados no fascinante mundo da robótica educacional e mecatrônica. O fato é que de todos os elementos capazes de converter energia elétrica em "movimento mecânico", o servo é o que permite uma maior gama de aplicações. Podemos emprega-los na construção de braços mecânicos, usa-los como simples caixas de redução para locomoção de pequenos robôs, tratamento e controle de alavancas, entre outras.

Sua simplicidade de operação aliada as suas características mecânicas, permite seu emprego na “microrobótica” para fins didáticos com muita facilidade.

Na figura abaixo você pode ver a estrutura de um servo básico. Ele é constituído de um motor, um dispositivo de realimentação e um sensor de posição (geralmente um potenciômetro). É o dispositivo de realimentação que permite que a “alavanca” seja colocada na posição desejada, de acordo com a "resposta" do sensor de posição. Assim um servo permite transformar sinais elétricos em movimentos proporcionais. Isso porque existe uma “proporcionalidade” entre os sinais que são levados ao servo e a posição da alavanca. 



De acordo com a largura do pulso (sinal) recebido o servo irá posicionar sua “alavanca” para um lado ou para o outro. Estes pulsos têm largura predeterminada que variam de 1ms a 2ms aproximadamente, com espaçamentos de 20ms (dependendo do fabricante). Sendo assim, podemos posicionar sua alavanca simplesmente variando a largura do pulso (sinal) enviado.

Nota: É importante conhecer o servo a ser empregado em um determinado projeto para o seu sucesso e uma consulta ao fabricante poderá ajudar neste sentido. Muitos projetos podem simplesmente não funcionar adequadamente pela simples troca de um servo, previamente indicado.


Configuração e montagem

Para essa experiência você precisará ligar a placa um servo para aeromodelo Futaba S3003 ou similar como MG995, MG996R, etc. Micro servos como MG90S ou outros  também podem ser utilizados nessa experiência sem nenhum problema.

Abra o jumper JP1 da placa (controle do relé) e mantenha fechados os jumpers JP2 e JP3 (controle dos pull-ups para as chaves S1 a S4 e GND para os LEDs LED2 a LED5, respectivamente).

Utilizando 3 fios tipo jumper macho/fêmea de 20cm conecte o servo aos pontos RB7 (pulso/sinal), +5V (+) e GND (-). Abaixo a figura mostra os conectores dos servos de acordo com cada fabricante e a posição dos pontos de conexão. No geral temos o fio na cor branca ou laranja para sinal/pulso, vermelho para +Vcc e preto ou marrom para GND.

Obs.: Na placa PE-PIC16F628A o +5VDC e GND para conexões externas estão em JP4 com 2 pontos à direita para +5VDC e 2 pontos à esquerda para GND (cuidado para não inverter!!!).


Funcionamento

O controle do servo é feito através do Timer 1 do microcontrolador. Ele foi configurado como temporizador com "estouro", gerando uma INT a cada 20ms. Esse é exatamente o tempo entre os pulsos enviados para um servo. Sempre que uma INT é gerada a função move_servo() é chamada recebendo como parâmetro o tempo desejado para o pulso (que irá alterar a posição da alavanca do servo). O timer 1 também controla a frequência do piscar do LED5, que é maior, através de um contador (o incremento até um valor predeterminado deste garante o tempo desejado). A leitura das chaves é feita através da função principal. O programa foi ricamente comentado para facilitar o seu entendimento.

Após gravar o microcontrolador PIC o servo será posicionado no centro. Pressionando a chave S1 a alavanca do servo será movida para sua posição totalmente a esquerda. Ao pressionar a chave S2 a alavanca se moverá para o centro e ao pressionar a chave S3 a alavanca será posicionada totalmente a direita.

Divirta-se modificando o programa para obter novas posições e diferentes tipos de controles!!!


Downloads
- Pacote com arquivos para esta experiência

 



Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor.