Last active
January 14, 2019 00:34
-
-
Save ypelletier/5930433 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/***********************PIR_MP3*************************** | |
* Ce sketch joue au hasard un mp3 stocké sur une carte SD | |
* lorsque le capteur PIR détecte une présence. | |
* | |
* Utilisation intensive de la libraire SFEMP3Shield par | |
* Bill Porter et Michael P. Flaga. | |
* | |
* La carte SD doit contenir des fichiers mp3 nommés "Track001.mp3", "Track002.mp3", etc. | |
* | |
* Connexions: | |
* | |
* Module de carte SD: | |
* SD GND // Arduino GND | |
* SD +5 // Arduino 5 V | |
* SD CS // Conversion 5 V à 3,3 V // Arduino 9 | |
* SD MOSI // Conversion 5V à 3,3 V // Arduino 11 | |
* SD MISO // Arduino 12 | |
* SD SCK // Conversion 5 V à 3,3 V // Arduino 13 | |
* | |
* Module VS1053: | |
* VS1053 5V // Arduino 5 V | |
* VS1053 DGND // Arduino GND | |
* VS1053 DREQ // Arduino 2 | |
* VS1053 XCS // Conversion 5 V à 3,3 V // Arduino 6 | |
* VS1053 XDCS // Conversion 5 V à 3,3 V // Arduino 7 | |
* VS1053 XRST // Conversion 5 V à 3,3 V // Arduino 8 | |
* VS1053 MOSI // Conversion 5 V à 3,3 V // Arduino 11 | |
* VS 1053 MISO // Arduino 12 | |
* VS1053 SCK // Conversion 5 V à 3,3 V // Arduino 13 | |
* | |
* Capteur PIR branché à la pin 3. | |
* | |
* http://electroniqueamateur.blogspot.com/2013/07/la-machine-dire-bonjour.html | |
* | |
***********************************************************/ | |
// les librairies necessaires | |
#include <SPI.h> | |
#include <SdFat.h> | |
#include <SdFatUtil.h> | |
#include <SFEMP3Shield.h> | |
SdFat sd; | |
SFEMP3Shield MP3player; | |
#define Infrarouge 3 // capteur infrarouge branché pin 3 | |
unsigned long precedent=millis(); // quand le fichier a été jouée la dernière fois | |
unsigned long delai = 15 * 60000; //délai d'attente avant de jouer à nouveau la mélodie, en millisecondes. | |
void setup() { | |
//Initialisation de la carte SD | |
if(!sd.begin(SD_SEL, SPI_HALF_SPEED)) sd.initErrorHalt(); | |
if(!sd.chdir("/")) sd.errorHalt("sd.chdir"); | |
//Initialisation du VS1053 | |
MP3player.begin(); | |
pinMode(Infrarouge, INPUT); | |
MP3player.setVolume(10, 10); // réglage du volume | |
randomSeed (millis()); // pour la fonction aléatoire | |
MP3player.playTrack(random(1,5)); // optionnel: juste pour vérifier que tout marche correctement | |
} | |
void loop() { | |
if (digitalRead(Infrarouge)){ // détection d'un mouvement | |
if ((millis()-precedent)>delai) { // si aucun mouvement n'avait été détecté depuis longtemps | |
MP3player.playTrack(random(1,5)); // en supposant 5 fichiers nommés Track001.mp3, etc. | |
} | |
precedent=millis(); // on consigne le moment de la plus récente détection de mouvement | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment