top of page

Práctica 4: Servomotor 0º-180º

El objetivo de esta práctica consiste en mover un servomotor desde su posición o ángulo de 0º hasta 180º y vuelta a empezar, de forma repetida. Además, se desplazará de 10º en 10º.

 Materiales:

  • 1 Arduino UNO

  • 3 Cables de Conección 

  • 1 Servomotor

Características Servomotor

Polarizado: Sí

Rotación: 0º - 180º

Tensión de trabajo: 5V

Descripción breve dispositivos:

Un servomotor es un tipo especial de motor que permite controlar la posición del eje en un momento dado. Esta diseñado para moverse determinada cantidad de grados y luego mantenerse fijo en una posición.

Creo que todos a muchos de nosotros cuando éramos pequeños nos gustaba jugar con motorcitos de esos de los que traían ciertos juguetes y que funcionaban con un par de baterías. En mi caso muchos de mis juguetes terminaron siendo víctimas de autopsias con el único propósito de extraer el órgano encargado de brindarles vida (movimiento), es decir, el motor.

Un servomotor (o servo) es un tipo especial de motor con características especiales de control de posición. Al hablar de un servomotor se hace referencia a un sistema compuesto por componentes electromecánicos y electrónicos.

El motor en el interior de un servomotor es un motor DC común y corriente. El eje del motor se acopla a una caja de engranajes similar a una transmisión. Esto se hace para potenciar el torque del motor y permitir mantener una posición fija cuando se requiera. De forma similar a un automóvil, a menor mayor velocidad, menor torque. El circuito electrónico es el encargado de manejar el movimiento y la posición del motor.

La presencia del sistema de engranajes como el que se muestra en la figura hace que cuando movemos el eje motor se sienta una inercia muy superior a la de un motor común y corriente. Observando las imágenes que hemos presentado nos podemos dar cuenta que un servo no es un motor como tal, sino un conjunto de partes (incluyendo un motor) que forman un sistema.

Los servomotores de modelismo operan a voltajes bajos en corriente directa, típicamente entre 4 y 6 voltios. Los servomotores industriales operan tanto en DC como en AC (monofásico o trifásico).  Los servos de modelismo, en cambio, se pueden adquirir a muy bajo costo en Internet y son populares entre los usuarios de Arduino.

Se debe resaltar que, dentro de los diferentes tipos de servomotores, éstos se pueden clasificar según sus características de rotación.

  • Servomotores de rango de giro limitado:  son el tipo más común de servomotor. Permiten una rotación de 180 grados, por lo cual son incapaces de completar una vuelta completa.

  • Servomotores de rotación continua: se caracterizan por ser capaces de girar 360 grados, es decir, una rotación completa. Su funcionamiento es similar al de un motor convencional, pero con las características propias de un servo. Esto quiere decir que podemos controlar su posición y velocidad de giro en un momento dado.

Los servomotores de rango de giro limitado se pueden adecuar para que funcionen como servomotores de rotación continua. Sin embargo, si requerimos un servo de 360 grados es mejor comprar uno que haya sido diseñado para este tipo de uso.

Imagen interna servo.png
pines de un  servo.png

Conectamos el cable rojo (positivo del servomotor) al pin 5V de la placa de arduino, el cable negro (negativo del servomotor) al pin GND de la placa de arduino y el color amarillo al pin analógico PWM 9 de la placa de arduino.

Programación en Arduino IDE

En primer lugar, se importa la librería a utilizar <Servo.h> y se inicializa el objeto llamado servomotor. Además se configura el pin analógico PWM 9 a utilizar por el servomotor. Esta configuración se establece en la función setup(), ya que solamente se ejecuta una vez.

Por otro lado, al ejecutar el código se recorre 18 veces el cambio de ángulo por 10º esperando una décima de segundo. De esta forma el servomotor se desplazará hasta la posición 180º. Y como tiene que regresar se vuelve a crear un bucle pero en este caso la variable irá decrementando de 10º en 10º.

servomotor-esquema.png
servomotores png.PNG

 Códigos para copiar:

/**

* Servomotor 0-180

*/

 

#include <Servo.h>

Servo servomotor;

void setup() {

servomotor.attach(9);

}

 

void loop() {

 

for(int i=0; i<=180; i+=10){

      servomotor.write(i);

      delay(100);

         }

 

for(int i=180; i>=0; i-=10){

        servomotor.write(i);

        delay(100);

         }

 

}

​

​

Otros códigos:

/*
 
  Primer programa que mueve el servomotor de 0 a 180 grados cada cinco segundos y
  se usa para determinar el valor practico del pulso minimo y maximo.

  Autor: Sara Peña

*/

#include <Servo.h>      // incluye libreria de Servo

Servo servo1;     // crea objeto

int PINSERVO = 3;   // pin 2 conectado a señal del servo
int PULSOMIN = 1000;    // pulso minimo en microsegundos
int PULSOMAX = 2000;    // pulso maximo en microsegundos


void setup()
{
  servo1.attach(PINSERVO, PULSOMIN, PULSOMAX);  // inicializacion de servo
}

void loop()
{

  servo1.write(0);    // ubica el servo a 0 grados
  servo1.write(180);    // ubica el servo a 180 grados
 

​

bottom of page