Cómo conectar un micro servo SG90 (posición 180 grados) a Arduino

En este pequeño tutorial veremos cómo conectar un micro servo SG90 de posición con rango de 180 grados a una tarjeta Arduino, también encontrarás un código de programación para tus primeras pruebas.

Los servomotores son dispositivos electromecánicos que tienen la capacidad de controlar la posición angular de su eje, su funcionamiento consiste en recibir la información del ángulo deseado a través del ancho de pulso de una señal PWM para llevar al eje a dicha posición, por lo regular constan de un motor de corriente directa, un tren de engranes reductores y una tarjeta de control, todo contenido en una caja de plástico.

En este ejemplo usaremos el micro servo motor SG90, que cuenta con engranes de plástico, y para implementar la señal de control utilizaremos la biblioteca <Servo.h>. Cabe mencionar que este servomotor se puede alimentar directamente del Pin 5V en nuestra tarjeta Arduino Uno ya que no demanda demasiada corriente, sin embargo si utilizas otro servo o si deseas controlar más de un SG90 con el mismo Arduino te recomendamos utilizar una fuente externa.

Componentes Necesarios

  • Micro servo SG90
  • Arduino Uno
  • Potenciómetro 10 kohms
  • Protoboard chica
  • Cables de conexión M-M

Diagrama de Conexiones

Arduino Uno – Potenciometro – Micro Servo SG90 – Protoboard

Código de Arduino

Cargamos el código y observamos como podemos controlar la posición angular del eje del motor con el potenciómetro.


//*
 Controlling a servo position using a potentiometer (variable resistor)
 by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>

 modified on 8 Nov 2013
 by Scott Fitzgerald
 http://www.arduino.cc/en/Tutorial/Knob
*/

#include <Servo.h>

Servo myservo;  // Creamos un objeto de clase "Servo" llamado "myservo" para controlar nuestro servomotor

int potpin = 0;  // Pin analógico al cual conectamos la señal de nuestro potenciómetro
int val;    // variable que contendrá el valor leido en el pin del potenciómetro y posteriormente el valor que escribiremos al servomotor

void setup() {
  myservo.attach(9);  // Adjuntamos el objetoque creamos al pin 9, recuerda que solo puedes utilizar pines PWM
}

void loop() {
  val = analogRead(potpin);            // leemos el valor del potenciómetro (valor entre 0 y 1023)
  val = map(val, 0, 1023, 0, 180);     // escalamos el valor para usarlo con el servo (valor entre 0 y 180)
  myservo.write(val);                  // establecemos la posición deseada del servo
  delay(15);                           // esperamos a que el servo llegue a dicha posición
}

¡Sigue explorando!