En este primer tutorial de arduino para servomotores y sensores de inclinación (tilt sensors) vamos a explorar el sensor de inclinación (tilt sensor) conectado a un servomotor y un par de luces LED. El objetivo del experimento en cuestión es definir la orientación del sensor de inclinación (arriba ó abajo) y en función de la misma definir el ángulo del servomotor y qué luz debe encenderse.
Materiales necesarios para el tutorial arduino:
- Microcontrolador arduino
- 2 luces LED (compra 75 leds por menos de 2€)
- resistores de 220 ohms
- servomotor (a la venta aquí)
- sensor de inclinación (tilt sensor).
- Capacitor de 100 uF
Lo primero que vamos a hacer es ver un vídeo con el ejercicio funcionando para que vean lo que deben esperar.
Tutorial: Usando el tilt sensor (sensor de inclinación) con un servomotor y un par de luces LED
Un tilt sensor ó sensor de inclinación es básicamente un switch que ofrece dos estados; conectado y no conectado. El estado conectado se da cuando el sensor apunta hacia arriba y su valor es 1, el estado no conectado se da cuando el sensor apunta hacia abajo y su valor es 0.
Lo que vamos a hacer es conectar todos los elementos a la breadboard (placa de pruebas) tal y como figura en la fotografía ilustrativa de aquí debajo. Los LEDs están conectados a los Pins 2 y 3 y se conectan a tierra con 2 resistores de 220 ohms.
Notese que en la parte superior del sensor de inclinación verás una flecha que indica hacia qué lado es arriba. |
El servomotor está conectado al Pin 4. Un servomotor cuenta con 3 cables, el blanco es el que recibirá las instrucciones, el rojo conectará a los 5V y el negro conectará a tierra. Es fundamental conectar un capacitor en la misma línea que el servomotor para evitar la caída en corriente.
IMPORTANTE: El capacitor debe conectarse correctamente puesto que de lo contrario puede explotar. Para conectarlo correctamente debes conectar la pata corta (señalizada por el lado donde está la tira oscura) a tierra y la pata larga a la corriente.
Conecta la pata corta del capacitor a la tierra y la pata larga a la corriente. |
Seguimos con este tutorial arduino de servomotores y sensores de inclinación. Para conectar el sensor de inclinación basta con que una para conecte a la corriente y la otra pata estará conectada a la tierra gracias a un resistor de 10k, en la misma línea conectamos el cable que conecta al sensor de inclinación con la placa arduino (en el PIN 8) y lo define como un componente de entrada.
Acerca del código del servomotor arduino...
Finalmente solo nos queda escribir el programa. Ahora haré un breve repaso de los pasos a seguir pero en el código lo encontrarán todo documentado. Así las cosas lo primero que haremos será llamar a la librería de los servomotores con la instrucción #include <Servo.h>. Procedemos luego a instanciar un objeto de la clase Servo con el nombre myServo con la línea: Servo myServo;
Le decimos al programa a qué está conectada cada cosa (en el caso del motor usamos la función attach: myServo.attach(4)) y si es un dispositivo de entrada ó de salida.
En el caso del sensor de inclinación, lo vamos a definir como un componente de entrada (INPUT) y veremos que existen dos valores. Personalmente he usado la función Serial.begin (9600); para poder ver los valores devueltos por el sensor.
Cuando el sensor apunta hacia arriba (haciendo caso a la flecha ubicada encima) el valor devuelto es "1" y cuando apunta hacia abajo el valor devuelto es "0".
Sabiendo a lo que responde cada movimiento podemos definir una estructura condicional IF donde le decimos que si el sensor apunta hacia abajo (0) entonces se enciende la luz roja (comando digitalWrite (redLED, HIGH); ) y el servomotor se coloca a 0º (comando myServo.write(0) ), si el sensor apunta hacia arriba (1) entonces hacemos lo contrario.