Hola Yonkis de la robótica!
¿Cansado de los típicos belenes navideños? Con tu placa de Arduino puedes animarlo y sorprender a todos tus invitados.
Objetivo:
Animar un Belén navideño con luces, música y mensajes en pantalla LCD.
Características:
- Tres tonos musicales que suenan aleatoriamente desde un buzzer pasivo.
- Pantalla LCD 16×2 que muestra mensajes y los títulos de los tonos musicales que estan sonando.
- Sensor de ultrasonidos que detecta proximidad para iniciar los tonos musicales.
- Tiras de luces LED que se encienden al ritmo de los tonos musicales.
Materiales:
- Placa Arduino Uno
- Sensor de distancia por ultrasonidos
- Pantalla LCD Azul 16×2
- Adaptador IIC/I2C (no es necesario, pero ayuda a simplificar la instalación)
- Tira de leds 12v
- Fuente de alimentación DC 12V
- Transistor NPN PN2222
- Cables de conexión.
Índice
- Melodías navideñas con buzzer pasivo.
- Pantalla LCD 16X2
- Sensor de distancia ultrasónico
- Iluminación LED al ritmo de la música.
1. Melodías navideñas con buzzer pasivo.
Con este código suenan aleatoriamente tres melodías navideñas: Jingle Bells, Santa Claus is coming to town y We wish you a Merry Christmas.
Si abrimos el monitor serie veremos el título de la melodía que está sonando y el numeral de cada melodía.
Conexiones:
Conectar el Buzzer a la salida digital 9 y a GND.
Código melodías navideñas
Es necesaria la librería pitches.h
2. Pantalla LCD 16X2
Una vez configurada la parte de los tonos, pasamos a la pantalla LCD.
En ella mostraremos el título de la canción que está sonando y en la segunda línea mostraremos un mensaje de “Felices Fiestas!”
He usado el controlador I2C para controlar la pantalla a través de únicamente 4 hilos (5v, GND, SDA, SCL).
Incluimos las librerías para la pantalla y configuramos la dirección al inicio del programa: LiquidCrystal_I2C.h y Wire.h
En el Setup incluimos un mensaje de bienvenida
Añadimos el código del LCD después de cada serial.println (“título del tono”)
Así nos iría quedando el código:
Conexiones:
He de reconocer que tuve bastantes problemas a la hora de configurar el LCD con el controlador I2C. No me mostraban caracteres, solo se encendía la pantalla con bloques blancos. El I2C tiene un potenciómetro para regular el contraste, pero aún así no mostraba mas que bloques.
Usé este escáner para comprobar la dirección de mi I2C. Me marcaba que no reconocía ningún I2C. Intercambie las conexiónes de sda con scl y me detectó enseguida la dirección. La 0x3F.
3. Sensor de distancia ultrasónico
Por último, a nuestro código tenemos que añadirle el ingrediente final. Será un disparador que hará que arranque la fiesta.
La librería para el sensor: SR04.h
Añadir en el bucle un condicional para que se active la música cuando se detecte una distancia inferior a 20cm, es decir cuando pongas un obstaculo, como una mano por ejemplo, delante del sensor ultrasónico.
El código quedaría así definitivamente:
Conexiones:
Trig a D12; Echo a D11
4. Iluminación LED al ritmo de la música
En el código de las melodías está incluido el parpadeo del led 13, por lo tanto, en el pin 13 tenemos 5v a ritmo de la música. Yo he usado una tira de led de 12v, por lo que necesitamos instalar un transistor que nos alimente los led cuando haya un HIGH en el pin 13. He usado un transistor NPN PN2222 que me venía en el kit de elegoo.
La función del transistor es que cuando activemos la base 2 con el pin 13 del Arduino, tendremos paso de corriente entre el colector 3 y el emisor 1