Paso 4: Código de Arduino
En este punto, espero que tenes el compilador de Arduino que te platiqué anteriormente. De todos modos, aquí voy a publicar mi código finalizado para el mecanismo de toda la caja de música. Sabe que no se requiere para el código para cambiar a la adaptación instrumental.
También incluyo mi expediente que me ayudó a aprender a escribir jingles musicales simple con la función de tono. En el que hice, he desarrollado la canción Fur Elise. Usted puede cambiar el tempo, observa cuantas quieras, cuánto quieras, exactamente qué frecuencia de cada nota, etc.. Tienes un montón de control, pero que también significa que hay bastante un poco de lío para arriba. Así que voy abundando en lo que podría ir muy mal para que no sienta mi dolor.
En caso de que no puede abrir los archivos de código de Arduino, os adjunto algunos documentos que sólo pueden copiar y pegar el código en su lugar. Debería funcionar igual. (El FinalFinalFinal_attempt2 = finalizado código de Arduino... Ellos son la misma cosa por lo que no se confunda).
Tan sólo voy a hacerle saber cómo cambiar lo que necesita cambiar para hacer canciones y hacer otras cosas con él.
Voy a empezar con la parte de código de Arduino finalizado ya que es nuestro principal esbozo aquí después de todo (te pido que tenga el código abierto mientras lees esto para que veáis lo que estoy hablando). En la parte superior del bosquejo verá pernos para su paso a paso, un tiempo de retardo para el paso a paso, valores de los sensores para las resistencias de la foto y el pin para el piezo. TODO lo cual no se necesita tocar necesariamente. Pero justo debajo de eso Perno para el piezo "const int buzzerPin = 5;", verá todos los enteros importantes para la parte musical.
int duración le permitirá cambiar la duración de notas y cuánto tiempo se realizan hacia fuera. es decir, cada bucle tarda al proceso.
int umbral podrá modificar la cantidad de luz que es necesaria para las resistencias de la foto activar y reproducir una nota. Cuanto más alto es, más luz necesita para activar. Si necesita cambiar este valor, porque su no responde a la luz que necesita, puede verificar la lectura serial de impresión y verificar qué cantidad de resistencia que leen a un nivel de base, sin luz y luego con la luz. Entonces puede colocar el umbral en algún nivel entre eso.
int photoResistPins [6] = {A0, A1, A2, A3, A4, A5}; Hay un par de cosas querrá tener en cuenta aquí. Primero y principal, no estoy seguro si puede utilizar cualquiera más seis foto reóstatos para este proyecto si está utilizando un Arduino UNO. Por la muy sencilla razón que una fotorresistencia funciona de un pin analógico y no hay codigo postal pernos bastante análogos en la ONU. Tal vez con un micro controlador con más de ellos podríamos crear más posibilidades de nota, pero a partir de este proyecto con un UNO, usamos sólo seis resistencias. Pero aún así, nos deja con algo alrededor de 30 a 40 notas o más. Su todavía bastante bien. Así que esta función va a ser el donde asignar foto reóstatos sus propios pins. La A significa su un pin analógico en el Arduino.
int onValue [6] = {1, 2, 4, 8, 16, 32}; Esta línea sólo asigna los valores bool para cada combinación de notas para que pueda determinar el código más adelante que foto reóstatos están siendo activados. No a resistente esto a menos que están sumando o restando foto reóstatos por alguna razón.
Así que en la configuración de vacía realmente no necesitamos cambiar nada porque no hay nada allí que podría modificarse para obtener nuevas notas o cualquier cosa. Sólo no moleste con eso. Sin embargo en el bucle vacío de que podemos tocar en el caso de interruptor función que atraviesa y determina que nota de juego basado en la entrada lo recibe. Usted debe ver una larga lista de cosas llamado "caso 1... case2... case3... etc." que detalle cada frecuencia Nota posible basado en qué foto reóstatos se exponen a la luz. Aquí puede cambiar las frecuencias de las notas, así como muchas notas que están disponibles para jugar, así como qué combinaciones de resistencias de la foto son necesarios para cada nota.
¿IMPORTANTE: Recuerde línea de código para arriba en la parte superior donde hemos asignado valores bool cada fotorresistencia? Esto es donde se vuelve importante. Para cada combinación de nota, tenemos que sumar los valores de bool de cada fotorresistencia que desea que se active para poder jugar la frecuencia en este caso específico. Por ejemplo, la diferencia entre "caso 1" y "caso 7" que es "caso 1" es sólo el primera foto resistor (A0 que tiene bool valor 1) expuestos a la luz mientras que el "caso 7" es una combinación de tres resistencias de la foto (A0, A1 y A2 = bool los valores de 1, 2 y 4). Si usted agrega tenía un valor de 7. Eso es por qué su "7 del caso" y sólo se activa cuando las resistencias de la tres foto se exponen a la luz.
Sabiendo todos que puede seguir adelante y hacer más combinaciones de notas mediante la adición de diferentes combos de los valores de bool de cada fotorresistencia. También puede cambiar el valor de frecuencia justo por debajo de él.
Eso es todo lo que necesitas realmente para preocuparse en ese sketch para divertirse experimentando con él!
Y solo por diversión que te incluyo mi bosquejo de Fur Elise que se puede utilizar simplemente un piezo jugar una canción para ti. En él, puede especificar cuántas notas que quieras, de qué frecuencia desea que las notas, cuánto tiempo desea que la canción sea en términos de beats, el tempo que quieras, y le permite escribir la canción en una sola línea larga del código. como se ve en la parte superior. Eventualmente comencé a cambiar entre letras mayúsculas y minúsculas ya que pueden contar como las diferentes variables. Diviértete jugando con eso también. Creo que para empezar a trabajar en que tomé el código base de la biblioteca Arduino de ejemplos. Usted puede encontrar esto por ir a archivo, ejemplos, luego 02.Digital, y verás las funciones de tono en la parte inferior.