Servo motores
fonte: http://sistemaembutido.com.br
Os servo motores necessitam de um sinal pulsado digital como referência, o PWM (pulse with modulation), controlado por sua largura e utiliza um sensor de posicionamento para verificar sua posição denominado encoder.
O encolder utiliza sensores ópticos instalados internamente que fornecem pulsos que são interpretados como direção, movimento ou direção.
fonte: próprio autor
Compõem sua estrutura uma caixa onde encontram-se acondicionados todas as suas partes:
- engrenagens de redução que são responsáveis pela redução da rotação do motor e transferem torque para o eixo principal, além de movimentar o potenciômetro acoplado ao mesmo;
- motor;
- potenciômetro, monitora a posição do eixo de controle;
- circuito de controle, faz monitoramento do potenciômetro e o acionamento do motor obtendo uma posição pré-determinada
Para testar seu micro servo, copie e cole o código fonte exemplo. No primeiro exemplo o servo movimenta sua rotação com variações angulares de 0°, 90°, 180° e 45° constantemente e com intervalos de 2 segundos entre os movimentos e no segundo exemplo é possível conseguir movimentar o eixo do motor por meio de um potênciomentro.
Para esses exemplos devem ser usadas a biblioteca <Servo.h> que está inserida na IDE do próprio Arduino.
Exemplo 1
/** Código Exemplo **/
// Elaborado por Tony Emerson Marim em 29/10/2016.
/** mecatronizei@gmail.com **/
/** Sequencia angular do servo**/
//Carrega a biblioteca Servo
#include <Servo.h>
Servo motor;
void setup()
{
motor.attach(3);//Pino de controle do sinal do servo
}
void loop ()
{
motor.write(0);//movimento angula 1
delay(2000);
motor.write(90);//movimento angular 2
delay(2000);
motor.write(180);//movimento angular 3
delay(2000);
motor.write(45);//movimento angular 4
delay(2000);
}
Exemplo 2
/** Código Exemplo **/
// Elaborado por Tony Emerson Marim em 29/10/2016.
/** mecatronizei@gmail.com **/
/** Movimento angular do servo por potenciometro**/
//Carrega a biblioteca Servo
#include "Servo.h"
Servo motor;
void setup()
{
motor.attach(3);//Pino de controle do sinal do servo
}
void loop()
{
// Lê o valor do Potenciometro
int angle = analogRead(0);
// Mapeia o valor de 0 a 180 graus
angle=map(angle, 0, 1023, 0, 180);
// Repassa o angulo ao ServoWrite
motor.write(angle);
// Delay de 15ms para o Servo alcançar a posição
delay(15);
}
Ligação do circuito
A ligação do circuito para o funcionamento é simples, existem conectados ao Servo 3 fios, vermelho normalmente relacionado ao pino de alimentação +5V, preto ou marrom no GND e laranja ou branco conectado ao pino de controle do Arduino que pode ser definido pelo usuário.
fonte: http://automationbrasil.com/servo-motor-arduino/
No blog existem diversos outros artigos de projetos que podem ser revistos ou usados como exemplo em outras aplicações, como o Braço robótico. Vamos voltar a aplicar os conceitos do servo motor durante as próximas etapas de fabricação dos nossos carros robóticos.
Curtiu? Compartilhe!
Assine o nosso canal!
Bons estudos!
Referências:
https://www.arduino.cc/
https://www.sparkfun.com/
Boa noite.
ResponderExcluirSaberia me dizer como usá-lo para trabalhar 0 e 90 graus e voltar a zero. Apenas duas posições mesmo.
Sem o ARduino