En este momento estás viendo ¿Que es un servomotor?

¿Que es un servomotor?

Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición.

Está conformado por un motor, una caja reductora y un circuito de control.

¿Como controlar un servomotor?

A diferencia de los motores DC, los servomotores los controlamos con una señal periódica de 50Hz, de acuerdo al tiempo en alto de esta señal de control el servo se ubicara en una u otra posición. Los servos estándar permiten controlar el movimiento de su eje usualmente entre 0 y 180 grados. Y los servos de rotación continua permiten controlar la velocidad de rotación de su eje.

¿Como conecto un servomotor?

Los servomotores tienen tres cables, uno para la alimentación de 5V (usualmente de color rojo) otro para la conexión a tierra (de color negro) y el de la señal de control (normalmente de color amarillo o blanco).

Libreria Servo.h

Esta librería permite a las placas Arduino controlar RC servos (hobby).

La librería servo soporta hasta 12 servomotores en la mayoría de las placas Arduino, y hasta 48 en la Arduino Mega. En todas las placas menos en la Mega, el uso de la librería deshabilita el uso de analogWrite() (PWM) en los pines 9 y 10, tengan o no tengan un servo conectado a esos pines.

Funciones de la libreria Servo.h

attach(pin,min,max) Convierte un pin en un controlador de servo. Retorna 0 en caso de falla.

detach() Libera un pin de ser un controlador de servo.

write(angulo) Fija el Angulo del servo en grados, 0 a 180.

writeMicroseconds(us) Fija el Angulo del servo en microsegundos.

read() Devuelve valor fijado con el ultimo write().

attached() Devuelve 1 si el servo esta actualmente “attached”.

Para mas información acerca de la librería Servo.h podemos visitar la web oficial de Arduino.

Ejemplo – Controlar un servo con un potenciometro

//Controla la posición de un servomotor de acuerdo a la posición de un potenciometro
#include <Servo.h>    //Incluye la librería para controlar servos

Servo myservo;  // Crea un objeto servo para controlar un servomotor

int potpin = 0;  // Pin analógico usado para conectar el potenciometro
int val;        // variable para leer el valor del pin analógico

void setup() {
  myservo.attach(9);  // "attach" el servomotor en el pin 9 al objeto servo
}

void loop() {
  val = analogRead(potpin);            // lee el valor del potentiometro (valor entre 0 y 1023)
  val = map(val, 0, 1023, 0, 180);     // escalo este para usarlo con el servo (valor entre 0 y 180)
  myservo.write(val);                  // Indico la posición del servo de acuerdo al valor escalado
  delay(15);                           // espero que el servo se mueva
}

Y con esto hemos culminado la lección, espero te allá sido de provecho.

Y si aun no te has suscrito a nuestro boletín, suscríbete y te mantendré informado de  la últimas publicaciones y entregas especiales. Y si tienes alguna pregunta o comentario acerca del post no dudes en hacerla.

Deja una respuesta