Étape 2: Code Final d’Arduino et installation du matériel
Le code final combinant les deux codes pour déclencher le son chaque fois que le détecteur de mouvement détecte des mouvements est :
#include
#define PIR_MOTION_SENSOR 8 //Use broche 2 de recevoir le signal du module
#define LED 13 / / cette LED s’allume lorsque le capteur détecte un mouvement
SoftwareSerial mp3 (2, 3) ; Modifiez-la avec le connecteur que vous utilisez.
someoneThere booléen = false ;
someoneWasThere booléen = false ;
void setup() {}
MP3.Begin(9600) ;
Serial.Begin(9600) ;
Delay(100) ;
Si (== true SetPlayMode(0x00))
Serial.println ("définir le Mode de jeu à 0 x 00, Single Mode Loop") ;
d’autre
Serial.println ("Playmode Set Error") ;
PauseOnOffCurrentMusic() ;
randomSeed(analogRead(0)) ;
pinMode (entrée, PIR_MOTION_SENSOR) ;
pinMode (LED, sortie) ;
SetVolume(0x1F) ;
}
void loop()
{
Si (isPeopleDetected()) {//if il détecte le mouvement peuple ?
digitalWrite (LED, haute) ;
quelqu'un il vaut maintenant
someoneThere = true ;
int NB = aléatoire (1, 12) ;
Serial.println(num) ;
SetMusicPlay (00, num (uint8_t)) ;
Delay(2500) ; ce retard est pour le fichier MP3
} else {}
someoneThere = false ;
someoneWasThere = false ;
Serial.println ("no one") ;
digitalWrite (LED, faible) ;
PauseOnOffCurrentMusic() ;
}
Si (someoneThere == true & & someoneThere! = someoneWasThere) {}
Serial.println ("quelqu'un est là!") ;
someoneWasThere = true ;
}
}
Définissez l’index de la musique à jouer, l’index est décidée par la séquence d’entrée
de la musique ;
hbyte : l’octet haut de l’index ;
lbyte : l’octet de poids faible de l’index ;
Boolean SetMusicPlay (uint8_t hbyte, uint8_t lbyte)
{
MP3.Write(0x7E) ;
MP3.Write(0x04) ;
MP3.Write(0xA0) ;
MP3.Write(hbyte) ;
MP3.Write(lbyte) ;
MP3.Write(0x7E) ;
Delay(10) ;
tandis que (mp3.available())
{
Si (0xA0 == mp3.read())
retourne la valeur true ;
d’autre
retourne la valeur false ;
}
}
Faire une pause marche/arrêt de la musique actuelle
PauseOnOffCurrentMusic(void) booléenne
{
MP3.Write(0x7E) ;
MP3.Write(0x02) ;
MP3.Write(0xA3) ;
MP3.Write(0x7E) ;
Delay(10) ;
tandis que (mp3.available())
{
Si (0xA3 == mp3.read())
retourne la valeur true ;
d’autre
retourne la valeur false ;
}
}
Le volume, la gamme est 0 x 00 à 0x1F
booléenne SetVolume (uint8_t volume)
{
MP3.Write(0x7E) ;
MP3.Write(0x03) ;
MP3.Write(0xA7) ;
MP3.Write(volume) ;
MP3.Write(0x7E) ;
Delay(10) ;
tandis que (mp3.available())
{
Si (0xA7 == mp3.read())
retourne la valeur true ;
d’autre
retourne la valeur false ;
}
}
Boolean SetPlayMode (uint8_t playmode)
{
Si (((playmode == 0x00) | (playmode == 0 x 01) | (playmode == 0 x 02) | (playMode == 0x03)) == false)
{
Serial.println ("paramètre PlayMode erreur!") ;
retourne la valeur false ;
}
MP3.Write(0x7E) ;
MP3.Write(0x03) ;
MP3.Write(0xA9) ;
MP3.Write(playMode) ;
MP3.Write(0x7E) ;
Delay(10) ;
tandis que (mp3.available())
{
Si (0xA9 == mp3.read())
retourne la valeur true ;
d’autre
retourne la valeur false ;
}
}
/***************************************************************
* Fonction : Détecter que si quelqu'un se déplace détecté gamme *
* Retour:-booléen, true est quelqu'un détectés.* /
isPeopleDetected() booléenne
{
int sensorValue = digitalRead(PIR_MOTION_SENSOR) ;
Si (sensorValue == HIGH) //if la valeur de la sonde est haute ?
{
return true ; //yes,return true
}
d’autre
{
return false ; //no,return faux
}
}