Paso 10: Arduino y Sensor piezoeléctrico
Sensores piezo gire a presión o vibraciones en carga eléctrica que puede medirse utilizando una de las entradas analógicas del Arduino. El circuito requiere una resistencia de 1MOhm en paralelo con el sensor piezoeléctrico, con un lado conectado tog redonda, y el otro conectado a un pin analógico Arduino (imagen #1 arriba). Controlar el sensor usando el siguiente código:
Vi que mi sensor piezoeléctrico fue estable de cerca de 0-1 normalmente, entonces al golpearlo, que saltó hasta unos 150 (imagen #2 arriba). Podemos utilizar el piezo como un interruptor por busca de estos picos, en el código siguiente crea una nota MIDI cada vez que el perno piezoeléctrico mide una señal más de 50.
También podemos usar la fuerza del golpe a la velocidad de control:
En el código anterior, he creado una función auxiliar denominada getMaxVal que utiliza un tiempo bucle para registrar el desplazamiento máximo del piezo, por lo que puede ser utilizado para establecer la velocidad de un MIDI Nota. Este código funciona midiendo el piezo y verificar si la medida es mayor que la última medición grabada, si es aferrarse a la nueva medida y repita el proceso. Tan pronto como la nueva medición de la piezo es inferior a la última medición grabada, sabemos que el piezo ha alcanzado su máximo desplazamiento y continuará devolver números más de analogRead(), por lo que la función devuelve el valor máximo.
El número de getMaxVal() está en algún lugar entre 0 y 1023, usé una función map() para escalar a una velocidad entre 50 y 127.