Práctica 7. Cambiar la posición de un servo motor mediante el paquete Servo.h

7.1  Objetivo General:

Controlar la posición o velocidad de Servo Motor que gire en un sentido se detenga y luego gire al otro sentido mediante el paquete <Servo.h>

7.2  Materiales y Métodos:

  1. Una tarjeta Arduino Uno-R3 o Arduino Mega 2560.
  2. Un cable USB impresora.
  3. Un computador.
  4. Cables para el montaje del circuito.
  5. Tarjeta Protoboard.
  6. Un servomotor.

La aplicación principal que tiene esta práctica es controlar la velocidad o posición en el giro de algún objeto que esté acoplado al servomotor, como por ejemplo, la dirección de las ruedas, el giro de un brazo robótico. Normalmente los servos están construidos para girar en un ángulo de 0 a 180 grados y en ambos sentidos. También hay los que tienen giro continuo, en los que se puede controlar la posición pero si la velocidad.

En la práctica se posicionará  el eje del servomotor a posiciones específicas.

7.3  Montaje de la práctica: 

Con el fin de comprender el funcionamiento del circuito, así como verificar todas las conexiones existentes, se realiza en primer lugar el montaje del circuito mediante el uso del programa Fritzing.

Los servomotores tienes tres cables: alimentación (rojo), tierra (que puede ser negro o marrón) y señal (que puede ser blanco o amarillo). Normalmente la señal se controla con PWM, con los que se puede mover el servomotor a cualquier punto dentro de su radio de acción.

Figura 1. Montaje del circuito en el programa Fritzing.

De la figura se observa que el cable rojo va conectado al pin de 5V el cual da la alimentación del servo motor. El cable amarillo que sale del servo al Arduino va conectado al pin 9, se elige el pin 9 ya que en la tarjeta Arduino al lado del pin hay un símbolo ( ̴ ) , esos puertos o pines que contienen al lado este tipo de símbolo permite enviar señal PWM.

Figura 2 - P7

Figura 2. Servomotor utilizado en la práctica.

Luego que se realiza el circuito en el programa Fritzing, se desarrolla el programa en el IDE de Arduino.

7.4 Código IDE Arduino:

– Se debe seleccionar en la IDE de Arduino el tipo de tarjeta con el que vamos a trabajar siendo Arduino Uno-R3 o Arduino Mega 2560.

– Se selecciona el Puerto Serial, es decir el puerto USB donde se va a conectar la tarjeta Arduino al  computador.

– Se realiza el código:

  • Inicialmente se identifica el programa que estamos desarrollando, por tanto se asigna un nombre al programa, esto se hace empleando el símbolo //. El símbolo permite colocar comentarios a lo largo del código para facilitar la comprensión de la instrucción que se realiza en cada línea.

  • Se deben declarar las variables globales que serán utilizadas en el programa. Antes de eso, se debe incluir a un paquete dentro de la IDE de Arduino llamado <Servo.h>. Luego se debe crear el objeto Servo.  El comando para llamar incluir el paquete es #include<Servo.h>. Note que la línea de comando no lleva ; al final de la instrucción.

  • Seguidamente se crea un objeto de la librería Servo. Se da un nombre al objeto como Servo myServo;

  • Seguidamente, se realiza la declaración de las configuraciones de las variables o la inicialización de la comunicación serie dentro de los corchetes que delimitan el bloque de programa void setup (). Se debe indicar al programa donde está conectado el servomotor, es decir, esa señal que se le suministra estará en el pin 9; el comando para mencionar en qué posición se encuentra el servo dentro del Arduino es myServo.attach(9). Para la realización de esta práctica se trabaja con la comunicación serie o puerto serie, es decir, la comunicación de datos con el computador. Para abrir el puerto serie se utiliza el comando Serial.Begin (9600).

  • Luego de iniciar la comunicación serie, se procede con el bloque de programación que se encuentra ubicado en el interior de los corchetes del comando void loop () el cual se ejecutará continuamente leyendo las entradas y generando las salidas. Se debe indicar que los valores del ángulo que se quiere mover el servo motor. Así que a través del comando myServo.write(); e indicando dentro del paréntesis el al cual queremos mover el servo. Si el servo es de posición los valores permitidos son 0 a 180. Si el servo es de rotación continua 0 es máxima velocidad en un sentido, 90 es el motor sin movimiento y 180 máxima velocidad en sentido contrario.

  • Finalmente se debe verificar que al final de cada instrucción se haya colocado el respectivo punto y coma, de lo contrario habrán errores a la hora de compilar.

NOTA: Para que el IDE de Arduino pueda entender los comandos es necesario que al final de cada instrucción se coloque punto y coma (;).

En la siguiente algoritmo se muestra como queda plasmado en el IDE de Arduino los procedimientos anteriormente señalados:

// Uso de potenciómetro y señales analógicas
#include<Servo.h>
Servo myServo;
void setup(){
myServo.attach(9);
Serial.begin(9600);
}
void loop()
{
myServo.write (0);
delay (1000);
myServo.write (90);
delay (1000);
myServo.write (180);
delay (1000);
myServo.write (90);
delay (1000);
}

Algoritmo 1 Código de cambio de velocidad de un servomotor a través de una tarjeta Arduino.

Implementación del algoritmo 1 en el simulador https//123d.circuits.io:

https://circuits.io/circuits/2898217-practica-7-laboratorio-mecabot

7.5 Conclusión:

Un servo puede ser controlada con el paquete <Servo.h> mediante señales PWM. Esta práctica  ayuda a comprender como mover un servo bien sea de posición o de velocidad. La  práctica es útil por ejemplo para desarrollar un brazo robótico controlado mediante comandos.