
L’idée est d’avoir 4 boutons et d’y associer un son à chacun en utilisant un Arduino.
On a utilisé DFPlayer-Mini-MP3-Player pour lire les fichiers de la mini carte SD.
Suivant le schéma du circuit ci-dessous:

Voici le code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" SoftwareSerial mySoftwareSerial( 2 , 3 ); // RX, TX DFRobotDFPlayerMini myDFPlayer; int boutonA = 8 ; int boutonB = 9 ; int boutonC = 10 ; int boutonD = 11 ; int val; ///////////////////////////////////// void printDetail(uint8_t type, int value); ///////////////////////////////////// void setup () { pinMode (boutonA, INPUT_PULLUP); pinMode (boutonB, INPUT_PULLUP); pinMode (boutonC, INPUT_PULLUP); pinMode (boutonD, INPUT_PULLUP); mySoftwareSerial.begin( 9600 ); Serial.begin ( 115200 ); Serial.println (); Serial.println (F( "DFRobot DFPlayer Mini Demo" )); Serial.println (F( "Initializing DFPlayer ... (May take 3~5 seconds)" )); if ( ! myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3. Serial.println (F( "Unable to begin:" )); Serial.println (F( "1.Please recheck the connection!" )); Serial.println (F( "2.Please insert the SD card!" )); while ( true ); } Serial.println (F( "DFPlayer Mini online." )); myDFPlayer.volume( 30 ); //Set volume value (0~30). //myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms //myDFPlayer.EQ(DFPLAYER_EQ_NORMAL); //myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD); } ///////////////////////////////////// void loop () { int boutonValeurA = digitalRead (boutonA); int boutonValeurB = digitalRead (boutonB); int boutonValeurC = digitalRead (boutonC); int boutonValeurD = digitalRead (boutonD); if (boutonValeurA = = 0 ) { myDFPlayer.play( 1 ); val = 0 ; } else if (boutonValeurB = = 0 ) { myDFPlayer.play( 2 ); val = 1 ; } else if (boutonValeurC = = 0 ) { myDFPlayer.play( 3 ); val = 2 ; } else if (boutonValeurD = = 0 ) { myDFPlayer.play( 4 ); val = 3 ; } Serial.print ( " A = " ); Serial.print (boutonValeurA); Serial.print ( " B = " ); Serial.print (boutonValeurB); Serial.print ( " C = " ); Serial.print (boutonValeurC); Serial.print ( " D = " ); Serial.println (boutonValeurD); delay ( 100 ); } |
Démo à voir ici: https://youtube.com/shorts/-2hG8b7A4vc