Étape 3: Noël guirlande Arduino Code
Fichiers MP3
Place vos fichiers MP3 sur votre SD card sur le bouclier de MP3, assurez-vous que vous avez un nommé : merry02.mp3 pour le message d’accueil lorsqu’un mouvement est détecté. Vous pouvez nommer ce que vous voulez, mais mettez à jour votre code pour correspondre.
Assurez-vous également que vous avez au moins 20 MP3 et que vous mettez à jour le tableau est mis en place pour faire correspondre les noms et les conventions de nommage (plus d’infos sur cela ci-dessous).
Code
Télécharger le fichier ZIP ou texte joint et copiez dans votre IDE Arduino.
Voici quelques éléments notables que vous aurez envie de changer :
Changer votre match de broche d’entrée numérique que l'on vous connecté à votre ligne de sortie du capteur PIR, noter que le suivant « intputPin » est défini sur 2.
/* * PIR sensor tester */ int ledPin = 13; // choose the pin for the LEDint inputPin = 2; // choose the input pin (for PIR sensor) <br>
Changer vos noms de piste pour faire correspondre les fichiers MP3 que vous avez sur votre carte SD sur le bouclier de MP3. Notez qu’il y a une limite à la longueur de nom de fichier, définie dans les instructions de bouclier de MP3. Mine sont tous nommés 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"};
Compiler et validez-le œuvres. Le capteur attend pendant 15 secondes pour "calibrer" (j’ai obtenu que des exemples de code de parallaxe. Ensuite, lorsqu’un mouvement est détecté, j’ai le fichier aléatoire serial dans la mémoire tampon de sortie et de lire le fichier, il conserve une boucle sur chaque seconde et puis s’il n’y a aucun mouvement au moins quinze loops(seconds) la musique s’arrête de jouer et j’ai réinitialiser la carte Mp3 (musicPlayer.softReset();) - la raison pour laquelle je le fais c’est semblait quand je commencerais une nouvelle piste plus tard avec le nouveau mouvement j’obtiendrais un soubresaut de l’ancienne piste. Avec la remise à zéro, je reçois toujours un démarrage propre sur le MP3 suivant les de joué. Je suppose que je devrais dire quelque chose à Adafruit et déterminer si c’est un bug ou si je le fais correctement, que je suis avec le reste.
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; }