Servomotores
Servomotores
Servomotores
Arduino
- Categorías : Productos
Productos relacionados
Suelen llevar tener un mecanismo reductor que les proporciona muy buen par y muy
buena precisión ya que ellos mismos realizan de forma interna el control de precisión,
siendo en otros motores necesario de forma externa. Sin embargo, proporcionan menos
velocidad que los motores de corriente continua.
Estas características los hacen ideales para el control de aplicaciones de robótica como
brazos robóticos u orientación de sensores o torretas.
Servomotores de rango de giro limitado que son los más usados, cuyo ángulo va
de 0 a 180º.
Servomotores de rotación continua, los cuales giran 360º y se puede controlar
tanto su giro como su velocidad.
SG90
Este es un “micro” servo estándar muy usado en todo tipo de aplicaciones, ya que es
barato y ligero, cuyos engranajes son de plástico.
S3003
Este servomotor es el comúnmente usado de tamaño “grande” y, como el anterior,
también es ampliamente usado en aplicaciones. Muchos componentes como brazos
robóticos o hexápodos vienen preparados para la instalación de este servo. Es perfecto
para proyectos de Arduino, y aeromodelaje.
Servomotor Tipo S3003 Servo Giro 180 Grados Amplitud giro 180º
Arduino
Como hemos dicho, estos componentes son muy útiles para muchas aplicaciones, por lo
que son ampliamente usados en proyectos con Arduino debido a su facilidad. Arduino
viene con una librería para su uso llamada “servo.h”, con la cual puedes controlar hasta
12 servos usando Arduino UNO/Nano o incluso hasta 24 usando Arduino MEGA. Los
servos se alimentan con los propios pines de 5V de la placa, y sin carga pueden
funcionar bastantes motores. Nosotros recomendamos alimentar la placa de forma
externa, ya que por USB podría tener más fallos o, alimentar los servos con una fuente
externa que les proporcione una corriente suficiente para que incluso funcionen varios
con carga. Hay que recordar que, si se usa alimentación externa, hay que unir las masas
(GND).
attach(Pin)
Establece el pin indicado en la variable servo, considerando min el ancho de pulso para
la posición 0° y máx. el ancho de pulso para 180°.Ej: servo.attach(3,900,2100);
write(angulo)
Envía la señal correspondiente al servo para que se ubique en el ángulo indicado, ángulo
es un valor entre 0 y 180°. Ej: servo.write(45);
writeMicroseconds(tiempo)
read()
Lee la posición actual del servo, devuelve un valor entre 0 y 180. Ej:
angulo=servo.read();
attached(Pin)
Verifica si la variable servo está unido al pin indicado, devuelve true o false. Ej:
if(servo.attached(3));
detach(pin)
En el IDE de Arduino viene por defecto dos ejemplos, Knob y Sweep, pero primero
vamos a poner un ejemplo más sencillo y visual para entender su funcionamiento. Abra
un sketch vacío y copie el siguiente código:
Con este código observamos que primero el servo hace girar las aspas hacia en sentido
antihorario (CCW, para 0º), después se desplaza hasta los 90º y por último gira en
sentido horario hasta los 180º.
Sweep
Ahora vamos a ver el sketch “Sweep”, cuya traducción es barrido, entonces como su
nombre indica, las aspas del servo irán haciendo un barrido por cada ángulo hasta llegar
al indicado.
Ahora prueba a aumentar el tiempo, cambiando el 15 por 150 por ejemplo. De este
modo observará más claramente cómo funcionan los servos, donde su giro comienza
lentamente hasta que coge velocidad y luego esta va reduciéndose hasta que llega a la
posición deseada.
Knob
Para el uso del sketch Knob, se necesitará un potenciómetro con el que regularemos la
posición del servo.
Por otro lado, si usamos un servo de 180º, el potenciómetro sirve para guiar el
movimiento de las aspas a la par que lo giras