Paso 4: Usando mi código
El código es realmente bastante simple, pero ya que mis lectores vienen de muchos diversos fondos de conocimiento todavía irá sobre los fundamentos de mi código.
Como mencioné antes, tuve que cortar algunas esquinas para añadir botones adicionales para el attiny así tenlo en cuenta que en mi código cada vez que veas algo como "if(analogRead(pot)<POT_THRESHOLD)" que significa estamos comprobando si se presionó el botón.
Así que en mi diseño de este secuenciador, quise programar el derecho pasos cuando el dispositivo esté encendido. Para ello utilizado la función "setup()". Que la función se ejecuta cuando el attiny inicialmente es dado poder, o si su pin de reset está en baja. Se ha añadido un sonido de arranque (que es un pequeño arpegio de un acorde importante de c) para notificar al usuario que están en el modo de programación de frecuencia. Para ver la lógica de las frecuencias de programación, vea la función setFrequencies(). (Básicamente pasa a través de cada paso y establece la frecuencia igual a un valor leído por el potenciómetro y pasa al siguiente paso sólo cuando se pulsa el botón).
En el bucle principal ("loop()), el attiny es dicho para ir a través de cada paso y cada paso, enciende el LED correspondiente. Luego juega la nota asignada a ese paso, a lo largo de la nota especificada. Durante esto, el microcontrolador es comprobar si el botón (analogRead(pot) < 30) se presiona. Si es así, el programa entra en una función llamada "setSustain()". En esta función, el usuario puede seleccionar la longitud de notas, (vía el botón y el potenciómetro).
Eso es todo hay en el código, espero que sea lo bastante claro como para ti. Si no es así estaré encantado de responder preguntas en los comentarios!