Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ARTÍCULOS POPULARES
Configuración del módulo bluetooth HC-05 usando comandos AT ago 08, 2015
Tutorial trasmisor de celda de carga HX711, Balanza Digital ago 23, 2015
ARTÍCULOS RECIENTES
PROMOCIONES ESPECIALES
ETIQUETAS
sensorV-SlotFuentehexagonalallenscrewLEDfilamentoLCDrobot
NOVEDADES
S/. 18,00
S/. 75,00
S/. 1,70
S/. 1,20
S/. 1,24
S/. 0,86
S/. 0,66
S/. 0,40
S/. 290,00
S/. 410,00
S/. 300,00
S/. 205,00
Todos los servos usados para robótica, tiene un conector de 3 cables. VCC (rojo),
GND (Marrón) y Señal (Naranja):
La señal o dato que hay que enviarle al servo es una señal de PWM donde el tiempo
en alto es equivalente al ángulo o posición del servo. Estos valores pueden variar
y van desde 0.5 a 1 milisegundo para la posición 0° y 2 a 2.4 milisegundos para la
posición de 180°, el periodo de la señal debe ser cercano a 20 milisegundos.
Librería servo de Arduino
El IDE Arduino trae una librería completa para el control de servomotores, la
documentación completa lo encontramos en su página oficial: Servo Library
Expliquemos brevemente las funciones de la librería.
La biblioteca Servo admite hasta 12 motores en la mayoría de las placas Arduino
y 48 en el Arduino Mega. En las placas que no sean los de Mega, el uso de la
biblioteca desactiva la funcionalidad PWM en las patillas 9 y 10. En el Arduino
Mega, hasta 12 servos pueden ser utilizados sin interferir con la funcionalidad
PWM, pero si se usan de 12 a 23 motores desactivará el PWM en los pines 11 y
12.
A continuación se muestran las funciones de la librería Servo:
attach(Pin)
Establece el pin indicado en la variable servo. Ej: servo.attach(2);
attach(Pin,min,max)
Establece el pin indicado en la variable servo, considerando min el ancho de pulso
para la posición 0° y max el ancho de pulso para
180°.Ej: servo.attach(2,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)
Envía al servo el ancho de pulso=tiempo en microsegundos.
Ej: servo.writeMicroseconds(1500);
read ()
Lee la posición actual del servo, devuelve un valor entre 0 y 180. Ej: angulo=read
() ;
attached(Pin)
Verifica si la variable servo está unido al pin indicado, devuelve true o false.
Ej: if(attached(2))
detach(pin)
Separa la variable Servo del pin indicado. Ej: servo. detach(2);
void setup()
{
myservo.attach(9); // asignamos el pin 9 al servo.
Serial.begin(9600);
}
void loop()
{
int adc = analogRead(A0); // realizamos la lectura del potenciometro
int angulo = map(adc, 0, 1023, 0, 180); // escalamos la lectura a un valor entre 0 y 180
myservo.write(angulo); // enviamos el valor escalado al servo.
Serial.print("Angulo: ");
Serial.println(angulo);
delay(10);
}
Deben cambiar los valores 900 y 2100 hasta lograr las pociciones correctas.
8 Comments
o
Fernando Rubio
sep 28, 2017
Saludos,Tienen usted un titurial que complemente el de los servomotores, donde se pueda agregar la
capacidad de grabar las posiciones deseadas de los servomotores y después se muevan de la manera en la
que se programaron? He visto algunos tituriales pero no explican en si el concepto de como grabar
posiciones en la memoria del Arduino.Muchas gracias y valoro muchos sus titurialesSaludosFernando
Reply
ericksbp
oct 18, 2017
saludos, estaba impresionado con la capacidad de manejo de servos de un arduino mega,pero me queda
una simple duda, en serio el uso de mas de 12 servos implica la desactivacion de pwm en 11 y 12,y los
demas se usarian a traves de lospines digitales de la placa??
Reply
Alfredo
nov 18, 2017
Hola Naylamp serias tan amable de hacer un tuto para manejar un brazo robotico con los servomotores y
ademas un matricial 4x4 y un lcd 2x16
Reply
Luis
jul 6, 2018
A la hora de declarara los motores es posible hacer una arreglo de los objetos como en Java?
Reply
o
Alejandro
jul 23, 2018
Reply
Alejandro
jul 23, 2018
Como puedo hacer para controlar de la mejor manera tengo un servo motor mg995
Reply
Marcelo
dic 16, 2018
Consulta.. el servo rds 3115 necesita de un transistor driver entiendase 2n2222 o similares para entregar
los pulsos o solo con conectarlo a los 5vcc y enviar pulsos desde el micro funciona? Les agradezco
cualquier ayuda . Saludos
Reply
José Javier
ene 11, 2019
Reply