Paso 3: Navidad guirnalda código de Arduino
Archivos MP3
Lugar los archivos MP3 en tu SD tarjeta en el escudo de MP3, asegúrate de tener uno llamado: merry02.mp3 para el saludo cuando se detecta movimiento. Lo que sea lo que tu quieras pero actualiza su código para que coincida con.
También asegúrese de que usted tiene por lo menos 20 MP3 y actualizar la matriz está configurado para que coincida con los nombres y convenciones de nombres (información que a continuación).
Código
Descargar el archivo ZIP o texto y copiar en el IDE de Arduino.
Aquí están algunos artículos notables que querrá cambiar:
Cambiar a su partido pin entrada digital que uno conectó su línea del sensor de PIR, cuenta que la siguiente "intputPin" se establece en 2.
/* * PIR sensor tester */ int ledPin = 13; // choose the pin for the LEDint inputPin = 2; // choose the input pin (for PIR sensor) <br>
Cambiar los nombres de pista para que coincida con los archivos MP3 que tienes en tu tarjeta SD en la pantalla del MP3. Tenga en cuenta que hay un límite a la longitud de nombre de archivo, definida en las instrucciones de la pantalla de MP3. Mina son todos nombrado track00 #. mp3
//this array is initialized once, randomly selected in the loop//Instead of using a random load of MP3s from the file system, I ran into problems after looping through the filesystem about 10 times the board would lock up//I believe there was a problem opening the file system over and over again to query for random files//secondly, I have files on the system that I dont want to playchar* myFiles[]={"track001.mp3", "track002.mp3", "track003.mp3","track004.mp3", "track005.mp3","track006.mp3","track007.mp3","track008.mp3","track009.mp3","track010.mp3","track011.mp3","track012.mp3","track013.mp3","track014.mp3","track015.mp3","track016.mp3","track017.mp3","track018.mp3","track019.mp3","track020.mp3"};
Recopilar y validar funciona. El sensor de espera 15 segundos para "calibrar" (tengo que partir de los ejemplos de código de paralaje. Entonces cuando el movimiento se detecta el archivo al azar en el búfer serial y reproducir el archivo, guarda bucle sobre cada segundo y entonces si no hay ningún movimiento para por lo menos quince loops(seconds) la música deja de jugar y vuelvo a activar la tarjeta de Mp3 (musicPlayer.softReset();) - la razón es hacerlo parecía cuando se inicio una nueva pista más adelante con nuevo movimiento conseguiría un bache en la pista vieja. Con el reset que me sale siempre un inicio limpio en el siguiente MP3 de jugado. Supongo que debería decir algo a Adafruit y determinar si se trata de un error o si lo estoy haciendo correctamente como yo soy con el resto.
if ( (millis() - detectTime) >= 15000){
Serial.println("No motion for 15 seconds"); musicPlayer.stopPlaying(); musicPlayer.softReset(); delay(200); digitalWrite(ledPin,LOW); val = 0; // we start, assuming no motion detected detectTime = 0; }