Un servomotor o servo es un motor eléctrico que puede ser controlado tanto en velocidad como en posición.

Características MICRO SG90:
- Consumo de corriente a 6V : 200 mA
- Voltaje de operación: 4.8V ~ 6.0V
- Velocidad de trabajo: 0.07sec/60 grado (4,8V)
- Velocidad de trabajo: 0.09sec/60 grado (6V)
- Velocidad a 6 V : 130 RPM
- Par de salida: 1 Kg-cm( 18 oz/in) (4,8V)
- Par de salida: 1.5 kg-cm(21 oz/in) (6V)
- Peso: 9 gr
Materiales
- 1 Arduino UNO Rev3
- 1 Servo - MICRO SG90
- Cables de conexión
Montaje

- Cable rojo a 5V o 6V (centro) con fuente de alimentación 1 amperio o más
- Cable amarillo (señal) a pin Digital (2) (izquierdo)
- Cable marrón o negro a GND (derecho)

Sketch
Librería Servo.h
#include // incluido en el ID arduino
// Crea un objeto de control para el servo
Servo miServo;// se puede crear 12 objetos servo
Giros básicos
#include
Servo myservo;
const int pinServo = 9;
void setup()
{
miServo.attach(pinServo); // asigna el pin 2 para el servo
}
void loop() {
// 20 ms frecuencia en que trabajan los servos
// la ubicación inicia con 0 grados desde la izquierda
// envía 1 ms y espera 19 ms
// pulso de 1 ms equivale a 0 grados
miServo.write(0);
delay(500);
miServo.write(45); // pulso de 1ms
delay(500);
// envía 1.5 ms y espera 18.5 ms
// pulso de 1.5 ms equivale a 90 grados
miServo.write(90); // pulso de 1ms
delay(500);
// envía 2 ms y espera 18 ms
// pulso de 2 ms equivale a 180 grados
miServo.write(180); // pulso de 2ms
delay(500);
}
Calibración del Servo
// calibración del servo
// no son fijos los valores 1 ms para 0 grados y 2 ms para 180 grados
// giros básicos 0, 45, 90 y 180 grados
#include
Servo miServo;
// la lectura real de la librería es en microsegundos um de manera que el rango es
// entre 1000 um (1 ms) y 2000 um (2 ms)
const int pulsoMin = 650; // gira a 0 grados
const int pulsoMax = 2550; // gira a 180 grados
// se recomienda iniciar en pulsoMin = 1000 y pulsoMax = 2000
// se cambia los valores (balancea) y verificando en el servo el giro real
void setup() {
// se agrega a la función attach los parámteros pinMin y pinMax
miServo.attach(pinServo, pulsoMin, pulsoMax);
}
void loop() {
miServo.write(0);
delay(500);
miServo.write(45);
delay(500);
miServo.write(90);
delay(500);
miServo.write(180);
delay(500);
}
Ejercicios de Aplicación
- Controla la velocidad del servo [ver sitio]
- Girar el servo de 0 a 180 grados y de 180 a 0 grados utilizando un potenciómetro.
- Controlar giros izquierda derecha utilizando pulsadores, cuando no reciba señal de los pulsadores apuntará a la derecha (dirección de un carro)
- Ubicar un puntero utilizando 2 servomotores
- Ubicar una pantalla según la luz que reciba, utilizando 2 servomotores.

