Piano con teclado capacitivo TTP229 de 16 canales y un zumbador

Publicado el 30 marzo 2016 por Villalba2006

Hoy os traigo un fabuloso piano táctil, realizado con un teclado matricial capacitivo TTP229 de 16 canales, mediante el cual vamos a poder enviar diferentes frecuencias al zumbador piezoeléctrico activo, para conseguir la escala de todas las notas musicales en diferentes octavas, en concreto desde la 2ª a la 6ª octava, o lo que es lo mismo desde los 65,40Hz hasta los 1975,53Hz. He modificado el teclado original con unas pegatinas que podéis descargar en el siguiente enlace, para que sepamos a que tecla corresponde cada nota musical y también poder reconocer las diferentes octavas.


Teclado matricial capacitivo TTP229 de 16 canales


Este teclado está basado en el sensor capacitivo TTP229 y se utiliza mucho como una buena alternativa a los teclados mecánicos existentes, proporcionando mayor durabilidad a nuestros proyectos en situaciones donde haya que realizar gran cantidad de pulsaciones. El teclado por defecto viene configurado en el modo de 8 teclas, estando las salidas de la 1 a la 8 mapeadas directamente al conector del teclado, pero cuando se requiere utilizar las 16 teclas, que es nuestro caso, es necesario la utilización de un “Jumper” que lleve a nivel BAJO el pin TP2/KYSEL para poder cambiar al modo de 16 teclas, configurándolas como nos apetezca con Arduino a través de comunicación I²C y por supuesto gracias al código de programación que le cargamos. Según la configuración de la siguiente imagen tendremos un teclado en modo de 16 teclas, salidas activas a nivel BAJO y sin multi-key (las teclas solamente se pueden pulsar de una en una).
 

Configuración del teclado matricial capacitivo TTP229 de 16 canales

Para poder comprender mejor el funcionamiento y el código de programación de este singular piano táctil, os tengo que comentar que el oído humano capta solamente frecuencias que estén por encima de los 20Hz y por debajo de los 20.000Hz (muy aproximadamente). Así pues, y con mucha suerte, sólo podemos oír unas 10 octavas como mucho, con doce notas cada una. Las 12 notas tienen distintas representaciones en el lenguaje musical (Do, Do#, Re, Re#, Mi, Fa, Fa#, Sol, Sol#, La, La# y Si), pero la diferencia de frecuencia entre cada nota y la siguiente es lo que las caracteriza, y lo que nos permite identificarlas. Además, las 12 notas de una octava, están separadas por lo que en música se denomina un semitono, y que es la mínima distancia tonal que puede haber entre dos notas cualesquiera (siempre hablando del esquema básico de la música occidental). Para finalizar esta pequeña introducción sobre las notas musicalesme queda por comentaros que una melodía es una sucesión de "notas", que hacen vibrar el aire a frecuencias distintas, que es ni más ni menos lo que se pretende realizar en este POST, y que cada octava se extiende a través de un rango de frecuencias que es del doble del tamaño que el rango de frecuencias de la octava anterior como se puede observar en la siguiente tabla.
 

Frecuencia de las notas en las octavas de la 2ª a la 6ª

Una vez conectado el hardware y cargado el código en nuestro Arduino, podemos ir pulsando las diferentes teclas para componer nuestras propias melodías. Para saber en qué octava nos encontramos en cada momento se ha dotado al sistema de una serie de LEDS que se encenderán únicamente cuando estemos en la octava que les corresponda como se muestra a continuación.

Tabla de LEDS y Octavas

Lista de Materiales: ·   Arduino UNO Rev.3.·   Cable USB tipo A-B.·   Teclado matricial capacitivo TTP229 (16 canales).·   5 LEDS de 3mm (blanco, verde, amarillo, rojo y azul).·   5 Resistencias de 220Ω.·   Zumbador piezoeléctrico activo (Buzzer).·   Protoboard.·   Cables de conexión.  Programa: Descarga del Programa Video: