Como Controlar velocidade servo motor Arduino SEM usar muito Código

Você já utilizou algum servomotor que a velocidade era rápida de mais para o projeto?
Precisava controlar velocidade servo motor Arduino .. Se não precisou ainda, com certeza vai precisar futuramente.

Aprendendo usar a biblioteca VarSpeedServo, o que é muito fácil.
Nunca mais você vai ter problema com controle de velocidade de um servomotor.

Neste artigo vamos falar sobre como controlar a velocidade do servo motor utilizando a biblioteca VarSpeedServo, em um passo a passo detalhado.

Em seguida, vou mostrar também um projetinho de um braço mecânico Arduino utilizando esta biblioteca da mesma forma.

Sumário

Controlar servo motor com Arduino

Os servos motores são atuadores utilizados onde é necessário ter um controle de movimento, com posicionamento de alta precisão e reversão. São amplamente usados em projetos robóticos, máquinas CNC, sistemas automatizados, aeromodelismo, entre outros.

Os servos CC (corrente contínua) são formados basicamente por um pequeno motor CC, um potenciômetro interno como sensor de posição, uma caixa de engrenagens para alteração do torque e um circuito eletrônico para o acionamento.

Controlar servo motor com Arduino - Como Controlar velocidade servo motor Arduino SEM usar muito Código
Controlar servo motor com Arduino

Mas, então, como controlar?

Vamos utilizar as portas PWM (modulação por largura de pulso ) do Arduino para fazer este controle.

Controlar velocidade servo motor Arduino

Para controlar velocidade servo motor Arduino, o que mais irá diminuir seu trabalho é a biblioteca VarSpeedServo, pois com a biblioteca convencional Servo, teríamos que fazer um código maior para ter o mesmo efeito.

Então, vamos a montagem e programação?

Lista de materiais

  • Arduino ( pode ser qualquer um, utilizei o uno no exemplo)
  • Servo Motor
  • Jumpers

Esquema de montagem

Controlar velocidade servo motor - Como Controlar velocidade servo motor Arduino SEM usar muito Código
Controlar velocidade servo motor

Será necessário fazer o Download da biblioteca VarSpeedServo
Clique aqui para download

 

Para Incluir a biblioteca basta ir em Sketch>Incluir biblioteca> Adicionar biblioteca .ZIP e posteriormente selecionar o arquivo que você acabou de baixar.

Servo motor arduino codigo - Como Controlar velocidade servo motor Arduino SEM usar muito Código
Servo motor arduino código

Vamos a programação, leia todos os comentários para poder entender o código desta biblioteca.

Servo motor Arduino código


// controlar velocidade servo motor Arduino
// Luan Alves - www.guiarobotica.com

#include <VarSpeedServo.h> // inclusão da bibliotecaa
VarSpeedServo servo;// criando objeto apartir da biblioteca

void setup() {
  servo.attach(3); // pino PWM onde está conectaado o servo
}
void loop() {
  //A velocidade varia de 0 a 255 onde 0 é parado e 255 maximo
  servo.slowmove(90, 10); //posição, velocidade
  delay (3000);// tempo de espera
  servo.slowmove(0, 100);//posição, velocidade
  delay (1000); // tempo de espera
  servo.write(180);//posição com velocidade maxima
  delay (1000);// tempo de espera
}


Desse modo, o servo motor vai variar sua velocidade 3 vezes.

servo.slowmove(90,10);    Posição 90 com velocidade 10
servo.slowmove(0, 100);   Posição 0 com velocidade 100
servo.write(180);   Observe que este é diferente, foi utilizado .write e sem colocar a velocidade, ficando assim com velocidade total.

Por fim, basta você adaptar este código ao seu projeto.

Braço mecânico Arduino, exemplo de utilização

Vou mostrar aqui esta mesma ligação e programação com a biblioteca VarSpeedServo, para um braço mecânico Arduino.

Só para exemplificar a utilização.
As peças foram feitas em uma Impressora 3D, portanto, facilitou muito o projeto rs,

Esquema de Montagem:

Eu utilizei uma fonte externa de PC alimentação de 5V.
E um sensor de Obstáculo para que logo após que o sensor detectar um objeto, empurrar ele.

braco mecanico arduino - Como Controlar velocidade servo motor Arduino SEM usar muito Código
braço mecânico arduino

Com a biblioteca adicionada segue a programação que foi usada neste projeto

Lembrando que a  programação para o seu pode variar conforme sua montagem, vc deve testar a angulação de cada servo no seu braço robótico.


// Braco mecanico com Arduino
// Luan Alves - www.guiarobotica.com

#include <VarSpeedServo.h> // inclusão de biblioteca
VarSpeedServo motora; //cria objeto apartir da biblioteca
VarSpeedServo motorb;
VarSpeedServo motorc;
const int sensor = 4; //sensor para detectar objeto
int estadosensor = 0; //variavel de controle

void setup() {
  motora.attach(3); //motorA pino 3
  motorb.attach(5); //motorB pino 5
  motorc.attach(6); //motorC pino 6
  pinMode(sensor, INPUT); // declara o sensor como entrada

}
void loop() {
   //atribui o valor do sensor a variavel estadosensor
  estadosensor = digitalRead(sensor); 
  if (estadosensor == LOW) { // se objeto estiver na frente
    //retira objeto
    delay (1000); //espera de 1 segundo
    motorc.slowmove(80, 50); //posição , velocidade motorC
    motorb.slowmove(120, 50); //posição , velocidade motorB
    delay (1000); //espera 500 milissegundo
    motora.slowmove(120, 150); //posição , velocidade motorA
    delay (500); //espera 500 milissegundo
  }
  else { //se não detectar objeto fique ou volte nesta posição
    motora.slowmove(60, 50); //posição, velocidade MotorA
    delay (1000); //espera de 1 segundo
    motorb.slowmove(100, 50); //posição, velocidade MotorB
    motorc.slowmove(160, 50); //posição, velocidade MotorC
  }
}


Estou utilizando apenas 3 servos motores neste exemplo.

Explicando a programação

Se nenhum objeto for detectado o servo motores ficarão parados nas posições motorA 60°, MotorB 100° e motorC 160°.

Quando o sensor de obstáculo detectar um objeto, o motorC vai para 80° e o motorB para 120° com velocidade 50, esperar 1 segundo e depois o motorA irá para 120° com velocidade 150, assim empurrando o objeto.

Então, com essa montagem, fica assim o braço mecânico Arduino.

Braço Robótico 1 - Como Controlar velocidade servo motor Arduino SEM usar muito Código
Braço Robótico

 

Conclução

Controlar servo motor com Arduino

É utilizado as Portas PWM (modulação por largura de pulso ) do Arduino para fazer o controle de angulação do servo motor.

Controlar velocidade servo motor Arduino

Um modo simples de controlar a velocidade do servo, é a utilização da biblioteca VarSpeedServo.

Braço mecânico Arduino

Nesse projeto que eu mostrei, foi utilizado 4 servos motores necessitando de alimentação externa para poder funcionar e um sensor de obstáculo para detectar um objeto e executar um conjunto de ação baseado nisso.

Então é isso..
Para mais dicas e projetos acesse o blog do meu parceiro Lobo da Robótica.

Compartilhe esse material com seus amigos e…

Bons projetos.

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *