Paso 3: Código de fuente
Mi perfil en Pastebin.com, aquíencontrará el listado completo del código fuente. Cubriré unos conceptos clave del código para los nuevos desarrollo de Arduino.
Biblioteca de tono
La biblioteca de tono se puede obtener en Google Code desde aquí. Esta biblioteca es increíblemente fácil de usar. Una vez que tenemos el archivo descomprimido en el directorio de las bibliotecas en nuestro directorio raíz de instalación del IDE de Arduino, podemos empezar jugando tonos. Esta biblioteca es realmente ideal para este proyecto ya que produce, como muchos dispositivos electrónicos, Plaza de las ondas de sonido que es lo que también fue producido en el hardware de la NES original. Veamos un ejemplo rápido. Ya que los pines 12 y 13 van directamente en el altavoz, tenemos que inicializar usando dos objetos de tono como,
a continuación, en nuestro bucle setup() , inicializamos les para salida de sonido con las dos líneas siguientes de código,
Ahora, simplemente podemos llamar al método play() en cada uno de los objetos de tonos como,
que en el caso anterior, jugaría un 440 (la nota musical: A4) para 900 milisegundos (ms). Para jugar dos tonos al mismo tiempo es fácil. Como de la escritura de este tutorial, al método play() toma un entero como valor de frecuencia, frecuencias que con fracciones, como B4 que es realmente 493.883 hz, deberá ser redondeado hacia arriba o hacia abajo. Las horquillas de método play() y el flujo de trabajo sigue la siguiente línea de código. Por ejemplo el código
jugarán los tonos 440hz y 122hz simultáneamente 900ms y al hacerlo el Arduino hace una pausa mediante la función delay() de 900ms. Inmediatamente después, los tonos 622hz y 784hz se juegan simultáneamente para 900ms y las pausas de Arduino, una vez más, de 900ms jugando los tonos.
Es importante recordar como las horquillas de método play() delay() . Un buen ejemplo es durante un bucle for() . Si quieres jugar un tono varias veces en una fila y no pausar el Arduino con el delay(), sonará como si juega el tono que especificar sólo una vez!
También recuerda que hay muchas referencias que se pueden encontrar fácilmente en línea con un motor de búsqueda para encontrar las frecuencias aproximadas de notas de un piano que se puede hacer referencia al hacer proyectos que canciones. Nuestra canción no tiene que preocuparse por averiguar ya que ya he hecho eso por nosotros y ponerlos en el código de C++. Para mostrar un pequeño ejemplo sin embargo, utilizamos las siguientes frecuencias para la sección del verso.
Las frecuencias bajas (sólo hay dos) son 122hz (~ B2) y 116hz (A #2). El bajo tiene una duración de 3 notas, para jugar al mismo tiempo, utilizamos la función personalizada definida playSection() en el código de C++.
Código del botón de empuje
El código de botón utiliza una función de simple digitalRead() para verificar la tensión que viene a través en el pin especificado. En nuestro caso es pin 2. No requiere una biblioteca especial de terceros a utilizar.
En nuestra función setup() , tenemos que inicializar el pin de entrada y utilice la siguiente línea de código para hacerlo,
Ahora en nuestra función bucle loop() gestión de eventos, podemos simplemente tomar una lectura de la tensión mediante la función digitalRead() , como,
Si el valor devuelto es igual a la constante de alto voltaje (1), luego comenzamos la reproducción de la música. En caso contrario debe devolver como bajo (0).