¿Qué es?
Un servomotor es un motor eléctrico que puede ser controlado tanto en velocidad como en posición. Está conformado por un motor, una caja reductora y un circuito de control. Los servos son sumamente útiles en robótica. Los motores son pequeños, tiene internamente una circuiteria de control interna y es sumamente poderoso para su tamaño.El Servo Motor HS-311 es el servo perfecto para usos educativos, esto es porque el servo tiene muchas características que solo se encuentran en servos más caros. Una circuitería de calidad así como los engranes asegura la durabilidad del servo. Viene con varios accesorios y brazos para montarse. Este servo puede operar a 180°.
Cómo conectar el Servo Motor
El servo motor consta de 3 cables que deben ser conectados adecuadamente en el aduino. A continuación, se detalla la conexión de cada cable.
Cable rojo del servo motor es el positivo y va conectado al pin de 5V del arduino. EN caso de estar ocupado conéctelo al protoboard para tener más salidas de 5v.
Cable negro del servo motor es el negativo puede ir conectado directamente al GND del Arduino o al protoboard donde tiene todas las GNDs referenciada.
Cable amarillo del servo motor al PIN 9 del Arduino o a cualquiera de los PINs marcados como PWM (Pulse Width Modulation, o modulación por ancho de pulsos), es por este cable donde se enviará la señal de control al servo motor para que vaya de 0º a 180º.
Uso del Servo Motor
Ejemplo de programación para el servo motor
#include <Servo.h>
Servo myservo; //crea un referencia al servo motor
int pos = 0; //posición inicial del servo
int positions[] = {0, 45, 90, 135, 180}; //posiciones (en grados) para moverse
int numPositions = 5; //cantidad de posiciones disponibles
void setup()
{
//control servo motor via pin 9
myservo.attach(9, 650, 2350);
Serial.begin(9600);
}
void loop()
{
int i = 0;
//cambia de posiciones
for(i = 0; i < numPositions; i++)
{
pos = positions[i];
//print debug output
Serial.println("SETTING:");
Serial.println(pos);
//cambio de posicion del servo a una nueva
myservo.write(pos);
//espero dos segundos
delay(2000);
}
}
No hay comentarios:
Publicar un comentario