Arduino tiene una amplia variedad de aplicaciones. Se puede utilizar en casi todos los campos. Sus aplicaciones aumentan día a día porque es de código abierto y cualquiera puede crear un nuevo conjunto de funciones y biblioteca para conectar cualquier dispositivo nuevo con Arduino. La aplicación proporcionada demuestra el uso de Arduino como generador de tonos y melodías. Incluye teclado y LCD para interfaz de usuario. Las notas musicales o melodías se generan cuando se presiona la tecla y la frecuencia del sonido generado se muestra en la pantalla LCD. En realidad, la aplicación dada ilustra la interfaz del teclado y la pantalla LCD con Arduino además de generar tonos y melodías.

Figura 1: Prototipo de nota musical y generador de melodías basado en Arduino
Descripción del circuito:
Como se muestra en el circuito, una pantalla LCD de 16×2, un teclado matricial de 4×3 y una interfaz de altavoz de 8Ω con la placa Arduino.
• El pin Vcc (2) y el pin Vss (1) de la pantalla LCD están conectados a los pines +5 V y Gnd de la placa Arduino respectivamente para proporcionar polarización.
• El pin LED+ (15) y el pin LED- (16) de la pantalla LCD también están conectados a las patillas +5 y Gnd respectivamente para encender la retroiluminación LED de la pantalla LCD.
• El pin Rs (4) y el pin En (6) están conectados a los pines digitales 8 y 9 de Arduino, mientras que el pin Rw (5) está permanentemente conectado a tierra para permitir la escritura.
• Los pines de datos D4 – D7 de la pantalla LCD están conectados a los pines digitales 10 – 13 de Arduino
• 3 columnas C1, C2 y C3 del teclado matricial están conectadas con 0,1 y 2 pines de la placa Arduino mientras que 4 filas R1, R2, R3 y R4 están conectadas con 3, 4, 5 y 6 pines.
• Un altavoz de 8 Ω está conectado al pin 7 como se muestra en el diagrama del circuito.
Operación del circuito:
• Inicialmente, el mensaje se muestra en la pantalla LCD como "generador de tonos de teclado"
• Cuando se presiona cualquier tecla, se detecta la pulsación de la tecla y Arduino identifica qué tecla se presionó
• Según el número de tecla presionado, se genera un sonido de frecuencia específica* (tono) a través del altavoz durante 1 segundo
• El número de clave se muestra en la pantalla LCD y la frecuencia del sonido generado se muestra en la pantalla LCD.
• Como se muestra en la figura, el teclado es el teclado del teléfono (numérico) e incluye la tecla * y la tecla #. Entonces, cuando se presiona la tecla *, genera la melodía del tono 1 y cuando se presiona la tecla #, genera la melodía del tono 2 que se muestra en la pantalla LCD.
*Nota: La frecuencia del sonido generado se elige para producir 'sa', 're', 'ga', 'ma', 'pa', 'dha' y 'ni' las siete notas musicales.
La funcionalidad completa de este proyecto se debe al programa de software cargado en la memoria FLASH interna del microcontrolador de la placa Arduino ATMega328. Así que veamos el programa y su explicación lógica.
Programa de software y lógica:
El programa de software está escrito en el lenguaje Arduino. Se compila utilizando la herramienta de software Arduino IDE y se carga en la memoria FLASH interna del microcontrolador de la placa Arduino. Todos sabemos que Arduino IDE tiene un potente paquete de biblioteca que incluye un conjunto completo de funciones para un dispositivo periférico específico. En este programa, utilizamos tres bibliotecas:
1) teclado matricial: para interconectar el teclado matricial con Arduino
2) cristal líquido: para interconectar la pantalla LCD con Arduino
3) generador de tonos: para generar sonido de diferente frecuencia
La biblioteca de teclado matricial nos permite configurar nuestro teclado matricial como un número de filas-columnas, patrón de teclas, etc. Detecta pulsaciones de teclas, identifica qué tecla se presiona y realiza muchas otras funciones. La biblioteca de cristal líquido es, como sabemos, especialmente para interconectar diferentes tipos de LCD con Arduino. Configura la pantalla LCD, muestra texto, datos numéricos, borra la pantalla LCD, establece las posiciones del cursor, etc. El generador de tonos se utiliza para generar sonido de una frecuencia específica desde cualquier pin digital de Arduino.
Código fuente del proyecto
###
//Programa para #incluir#incluir FILAS de bytes constantes = 4; // Cuatro filas byte constante COLS = 3; // Tres columnas int sonido(10) = {1047,1109,1245,1319,1397,1480,1568,1661,1760,1865}; int sonido_pin = 7; // Definir el mapa de teclas teclas de caracteres (FILAS) (COLS) = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'#','0','*'} }; // Conecte el teclado ROW0, ROW1, ROW2 y ROW3 a estos pines Arduino. bytes de filaPins (FILAS) = {3, 4, 5, 6}; // Conecte el teclado COL0, COL1 y COL2 a estos pines Arduino. byte colPins(COLS) = { 0, 1, 2 }; //Crea el teclado Teclado kpd = Teclado (makeKeymap(teclas), pines de fila, pines de columna, FILAS, COLS); LCD de cristal líquido (8, 9, 10, 11, 12, 13); #definir pin LED 13 configuración vacía { pinMode(ledpin,SALIDA); escritura digital (pin LED, ALTA); lcd.comenzar(16, 2); lcd.claro; lcd.print("tono del teclado"); lcd.setCursor(4,1); lcd.print("generador"); } bucle vacío { ent i; clave de carácter = kpd.getKey; if(key) // Comprueba si hay una clave válida. { interruptor (llave) { caso '*': lcd.claro; lcd.print("reproduciendo la melodía 1"); para(i=0;i<10;i++) tono(sound_pin,sonido(i),500); romper; caso '#': lcd.claro; lcd.print("reproduciendo la melodía 2"); para(i=0;i<10;i++) tono(sound_pin,sonido(10-i),500); romper; por defecto: lcd.claro; lcd.print("clave:"); lcd.print(clave); lcd.setCursor(0,1); lcd.print("sonido "); lcd.print(sonido(tecla-48)); lcd.print("Hz"); tono(sound_pin,sonido(clave-48),1000); romper; } } } ###
Diagramas de circuito
Diagrama-de-circuito-generador-de-melodías-de-notas-musicales-basado-en-Arduino | ![]() |
Vídeo del proyecto