Está en la página 1de 7

ServoMotor

Servo Motor
Un motor eléctrico es una máquina
que transforma la energía
eléctrica en energía mecánica
rotativa continua.

Un servomotor es un motor de
corriente continua pero en vez de
conseguir un giro continuo, está
diseñado para conseguir que gire
un determinado ángulo en
respuesta a una señal de control, y
que se mantenga fijo en esa
posición.
¿Cómo funciona el servo
motor?

Esta señal de control es dada por los pines


digitales PWM. Para controlar el servomotor
se le envía pulsos cada 20 ms es decir a 50Hz.
La anchura del pulso es lo que determinará el
ángulo de giro, es decir lo que se conoce
como PWM.
Esta anchura varía según el servomotor, pero
normalmente va entre 0.5 y 2.5 ms aunque
puede variar. Esto hace que el servomotor
tenga un margen de operación, por lo que se
puede mover entre 0º (pulso con una anchura
de 0.5 ms) y un máximo, que suele ser, de
180º (pulso con una anchura de 2.5ms).
¿Cómo se conecta un
Servomotor?

Un servomotor tiene 3 pines: 1 rojo (5V), 1


marrón o negro (Ground) y 1 amarillo o
blanco (Control).
Rojo – Alimentación(Normalmente 5 V aunque
pueden ser mas)
Negro o Marrón -GND
Blanco o Naranja – Señal de control (pulso
enviado al servomotor)
Se puede conectar directamente el servo al
arduino.
Materiales
Arduino
Servomotor (Motor-PWMServo)
Tierra (Ground en Terminales)
Energía (Power en Terminales)
Programación Ardino
1. Usar el Ejemplo que tiene Arduino.
2. Archivo -> Ejemplos -> Servo -> Sweep
3. Verficar que el pin donde conecto su
arduino con el servo motor sea el
señalado o cambie al que tiene.
Programación usar el ejemplo de Ardino de Servo-Sweep

#include <Servo.h>

Servo myservo; // crear una variable llamada myservo

int pos = 0; // variable inicializarla a cero, que es de donde partira el servomotor.

void setup() {
myservo.attach(9); // conectar al pin 9 el servo motor.
}

void loop() {
for (pos = 0; pos <= 180; pos += 1) { // iniciara desde 0 grados hasta 180 grados, en un sentido
// en pasos de 1 grado
myservo.write(pos); // le dice al servo que vaya a la posición de la variable 'pos'
delay(15); // espera 15ms para que el servo alcance la posición
}
for (pos = 180; pos >= 0; pos -= 1) { // va de 180 grados a 0 grados
myservo.write(pos); // decirle al servo que vaya a la posición en la variable 'pos'
delay(15); // espera 15ms a que el servo alcance la posición
}
}

También podría gustarte