Sesión 3: Servo Motor

En esta sesión aprenderemos a usar un Servo Motor.
Este elemento sirve para girar una aspa a una cierta cantidad de grados según le especifiquemos. Esto puede ser útil para transferir movimiento a algún otro elemento de nuestro sistema.
Por ejemplo una palanca para abrir una caja o una puerta, un dosificador o incluso una papelera automatizada!

Para ello necesitaremos:
- 1 Micro Servo
- 1 Condensador de 100µF


#1 - Diseño del circuito

Aquí simplemente debemos conectar el servo motor y el condensador con la Arduino. Ambos elementos tienen polaridad, es decir que habrá que conectar las patas negativas y positivas donde toquen!! Como de costumbre, la pata corta es la negativa y la larga la positiva; en el caso del condensador, la pata negativa también suele ir marcada con una línea gris en el propio condensador y símbolos de "-".
El cable central del Servo será con el que le indicaremos desde el código cuantos grados debe girar con lo cuál deberemos conectarlo a algún pin digital de la placa.

#2 - El código

Para poder controlar el Servo necesitaremos importar una librería. En este caso será Servo.h. Recuerda que podemos aprender sobre las librerías y otros conceptos de programación en esta otra entrada

Para hacer una prueba, podemos probar a mover el servo hasta 180 grados, y que luego vuelva a girar a su posición inicial, así nos familiarizamos con el código y la librería!

Ya tenemos a nuestro servo funcionando!
A partir de aquí solo falta integrarlo en algún sistema como este y que haga su trabajo!

# Conectar un potenciómetro

En vez de programar por código cuánto debe girar el Servo, podemos probar de controlarlo físicamente con un potenciómetro. Este elemento nos permite girarlo 180 grados, con lo cuál podemos leer el valor actual que tiene y mandarlo a nuestro Servo!
Para usarlo, deberíamos añadir un segundo condensador, para asegurar un flujo estable de voltaje y leer así con exactitud el valor del potenciómetro.


Una vez tengamos el potenciómetro conectado, podemos añadirlo a nuestro programa con 2 sencillas lineas:
- int voltage = analogRead(PIN);
De esta manera leemos el voltage que está tomando el potenciómetro. Si lo tenemos "cerrado" emitirá 0 milivoltios, y si lo giramos para abrirlo al máximo, emitirá 1023mV, con lo cuál podemos obtener fácilmente los grados apartir de los voltios de la siguiente manera:
- int angle = map(potVal, 0, 1023, 0, 179);
Ya tenemos el ángulo que ahora pasaremos a nuestro Servo con la instrucción servo.write(angle);
Y ya está! Ahora el servo debería moverse igual que movemos el potenciómetro :)
Otros usos del potenciómetro sería por ejemplo aumentar o reducir el brillo de una pantalla LCD, dejando pasar más o menos voltage para alimentarla. Su función es de regulador.

# Próximos pasos

Para proyectos más complejos, podemos necesitar un motor potente que simplemente gire indefinidamente y con más fuerza. Este sería el DC Motor que vemos a continuación. Con la Arduino solamente no llega el Voltaje suficiente para alimentarlo, con lo cuál necesitaríamos añadirle una pila de 9V o un adaptador de corriente de 12V.


Esto es todo! Se os ocurre qué podríamos crear con el Servo para hacer nuestro día a día más fácil?

Comments

Popular posts from this blog

Sesión 1: Llavero 3D

Sesión 2: Sensor de temperatura

Sesión 1: Introducción a Raspberry Pi