En este practica vamos a mover el eje de un servomotor. Los servomotores son motores eléctricos con un mecanismo interno de control, el cual nos permite controlar la posición o ángulo de su eje. Normalmente están construidos para girar en un angulo de 0 a 180 grados y en ambos sentidos. También hay los que tienen giro continuo, en los que no podemos controlar la posición pero si la velocidad.
En este proyecto sólo haremos girar el eje del servomotor de manera continua, primero de 0 a 180 grados y después en sentido contrario, de 180 a 0 grados.
El propósito es usar la biblioteca Servo, que nos facilita el manejo de los servomotores y probar como funciona.
Componentes
Componentes
- arduino
- protoboard
- un servomotor
Circuito
El servomotor de nuestro kit es un servomotor de 5 volts y tiene tres cables para hacerlo funcionar. Un cable rojo, que se debe conectar a 5 volts. Un cable negro, que se debe conectar a tierra. Y un tercer cable, amarillo en nuestro motor, que es el cable de control y que vamos a conectar a un pin de salida del arduino.
Es muy recomendable colocar un capacitor entre las dos patas de alimentación de nuestro servo. Cuando el servo arranca, consume más corriente que cuando se está moviendo, causando caidas en el voltaje, que con el capacitor ayudamos a hacerlas más suaves. Pondremos un capacitor electrolítico de 100 uf, hay que tener cuidado en como lo conectamos, ya que son componentes polarizadas
Código
Para utilizar los servomotores desde el Arduino contamos con la biblioteca Servo, que nos permite controlar los servos de manera muy simple.
Lo primero que debemos hacer es incorporar la biblioteca Servo en nuestro sketch, que es una de las bibliotecas que ya viene con el software del Arduino.
Con esta biblioteca primero hay que crear un objeto Servo. Despues hay que ligarlo al pin con el que lo vamos a controlar y finalmente con la función write() lo colocamos en la posición deseada.
En este caso lo vamos a hacer girar de 0 a 180 y de 180 a 0 grados, utilizando dos ciclos for().
/* En este proyecto movemos un servo de 0 a 180 grados y despues en sentido inverso Para hacerlo utilizamos la biblioteca Servo */ #include <Servo.h> // incluimos la biblioteca Servo Servo miservo; // creamos un objecto servo para controlar el motor void setup() { miservo.attach(9); // liga el servo al pin 9 } void loop() { for(int angulo = 0; angulo < 180; angulo += 1) { // un ciclo para mover el servo entre los 0 y los 180 grados miservo.write(angulo); // manda al servo la posicion delay(15); // espera unos milisegundos para que el servo llegue a su posicion } for(int angulo = 180; angulo >= 1; angulo -= 1) { // un ciclo para mover el servo entre los 180 y los 0 grados miservo.write(angulo); // manda al servo la posicion delay(15); // espera unos milisegundos para que el servo llegue a su posicion } }
imagenes de como se gira el servomotor.
Variantes
Puedes cambiar la velocidad a la que gira el servo, ya sea variando el incremento de la posición en los ciclos for, o cambiando el tiempo del delay(), lo primero será lo más indicado.
Puedes hacer que no haga el giro completo de 180 grados, si no que lo haga por ejemplo entre 45 y 90 grados.
No hay comentarios.:
Publicar un comentario