Como Controlar Servo Motores

Como Controlar Servo Motores

Neste post você vai aprender a como controlar servo motores. Para isso vamos inicialmente utilizar a plataforma do Arduino, entretanto podem ser utilizados outros microcontrolador.

No vídeo a seguir são mostrados os detalhes da simulação e do código que vamos utilizar.

Componentes utilizados

Abaixo são listados os componentes utilizados para este projeto:

1 Arduino Uno;
2 Servo Motores;
2 Potenciômetros.

Códigos

O controle da posição do servo motor é determinado de acordo com o tempo que o mesmo permanece em nível lógico alto. Entretanto, o ambiente de programação do Arduino possuí uma biblioteca que facilita o controle de servo motores.

Em nosso primeiro exemplo, foram criados dois laços de repetição for, que variam o ângulo do servo motor de 0º até 180º e depois de 180º até 0º, como mostrado abaixo:

/*
	Steps to use Servo Motors:
    1. Include Library
    #include <Servo.h>
    
    2. Create an objetc Servo:
    Servo servo_1
    Servo servo_2
    
    3. Define pins to control Servo Motor
    servo_1.attach (5)
    servo_2.attach (3)
    
    4. Control Servo Motor
    servo_1.write(90); // Use angle value max = 180
*/
#include <Servo.h>

int i = 0;

Servo servo_1;
Servo servo_2;

void setup() {
  servo_1.attach(5);
  servo_2.attach(3);
}

void loop() {
  for (i = 0; i < 181; i++) {
  servo_1.write (i);
  servo_2.write(i);
  delay(10);
  }
  
  for (i = 180; i > 0; i--) {
  servo_1.write (i);
  servo_2.write(i);
  delay(10);
  }
}

No exemplo a seguir, os dois servo motores são controlados pelos potenciômetros.

/*
	Steps to use Servo Motors:
    1. Include Library
    #include <Servo.h>
    
    2. Create an objetc Servo:
    Servo servo_1
    Servo servo_2
    
    3. Define pins to control Servo Motor
    servo_1.attach (5)
    servo_2.attach (3)
    
    4. Control Servo Motor
    servo_1.write(90); // Use angle value max = 180
*/
#include <Servo.h>

int i = 0;
float control_1 = 0;
float control_2 = 0;

Servo servo_1;
Servo servo_2;

void setup() {
  servo_1.attach(5);
  servo_2.attach(3);
}

void loop() {
  control_1 = analogRead (A0);
  control_2 = analogRead (A1);
  
  control_1 = control_1 * 180 / 1023;
  control_2 = control_2 * 180 / 1023;
  
  servo_1.write (control_1);
  servo_2.write(control_2);
}

Simulação

Abaixo é possível ver a simulação do circuito com dois potenciômetros.

Conclusão

Neste post vimos como controlar servo motores usando a plataforma do Arduino, entretanto é possível fazer o mesmo controle utilizando outros microcontroladores.

Isso é tudo pessoal, e até o próximo post!