Controlando
un servo motor
En
esta ocasión observaremos como funciona
en específico este servomotor “futaba s3003” el cual manipularemos en orientación
a los grados, pero antes de ponerlo en marcha hay que saber cómo son sus
conexiones de operación fundamental en
este servo.
Para que se pueda manipular el servo se debe de aplicar una señal
periódica de 50hz , 20ms el periodo y lo ancho que tenemos del pulso determina
la posición del servo, si la anchura de la señal es de 2.3 milisegundos entonces el servo se posicionara en 180º pero si su anchura es de 0.3 milisegundos se
colocara en 0 grados por lo tanto será la clave para que te transporte de
extremo a extremo.
Este servo podría manipularse hasta 360 grados pero se tendría
que considerar un tope mecánico físico que se tendría que quitar, pero todo
depende del funcionamiento para lo que se vaya a utilizar, en este caso sería
parte de una articulación de un robot articulado, una vez sabiendo nuestro
extremos podemos observar que a 1.3
milisegundos nos daría 90º y nos quedaría una tabla como la siguiente.
Sabiendo que para conseguir 180º necesitamos enviar un
pulso de 2300 milisegundos podemos aplicar una regla de tres para calcular los ángulos
en los cuales el servomotor avanzara por
lo que tendremos una variable llamada tiempo
y otra llamada Angulo la cual nos indicara el ángulo deseado a calcular
por arduino.
Tiempo= (angulox2300/180)
La función de void moverServo recibe como parámetros el pin del Servomotor y
el ángulo al que este debe girar. Donde se utilizó la regla de tres para calcular el tiempo que
debe estar encendido el pin digital del servo. Este se utiliza de forma manual
donde se puede modificar si se desea agregarle 180 grados más para que sean los
360º. La variable donde ira la fórmula de
regla de tres se llamara pausa.
A continuación de mostramos la programación.
int servoPin = 13;
int pausa = 20;
void setup()
{
pinMode(servoPin,
OUTPUT);
digitalWrite(servoPin,
LOW);
}
void loop() {
moverServo(servoPin,180);
}
void moverServo(int pin, int angulo)
{
float pausa;
pausa = angulo*2300.0/180.0;
digitalWrite(pin,
HIGH);
delayMicroseconds(pausa);
digitalWrite(pin,
LOW);
delayMicroseconds(2300-pausa);
}
En la configuración del
bucle podemos modificar los grados de 0 a 180 dependiendo el uso que se le
valla a dar, a continuación te mostramos el video donde el servomotor futaba
s3003 gira de 0 a 180 grados, comprobado.
Te recordamos que en Robótica
Educativa RED Matamoros ya iniciamos con
el curso de Robótica en desarrollos que
relaciona los servomecanismos en donde recibirás el entrenamiento necesario para
que tú puedas crear un brazo manipulador de una manera detallada y entretenida si quieres tener más información puedes llamar a los
teléfonos 01 (868) 8134817 o síguenos en Facebook como “Robótica
Educativa RED
No hay comentarios.:
Publicar un comentario