Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


projets:lecteurs_audio_dfplayer:accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
projets:lecteurs_audio_dfplayer:accueil [2019/07/10 10:28]
laurent [Lecteurs audio DFplayer]
projets:lecteurs_audio_dfplayer:accueil [2019/07/10 10:34] (Version actuelle)
laurent [Code]
Ligne 36: Ligne 36:
 Le code utilisé par l'arduino utilise la librairie standard SoftwareSerial ainsi que la librairie [[https://github.com/DFRobot/DFRobotDFPlayerMini|DFRobotDFPlayerMini]] . Il est écrit de façon modulaire pour pouvoir aisément ajouter des lecteurs. Un //struct// représente chaque lecteur, les pins de ses boutons de lecture, une entrée analogique pour le volume ainsi qu'un pointeur vers l'instance de SoftwareSerial par qui il communique. Le code utilisé par l'arduino utilise la librairie standard SoftwareSerial ainsi que la librairie [[https://github.com/DFRobot/DFRobotDFPlayerMini|DFRobotDFPlayerMini]] . Il est écrit de façon modulaire pour pouvoir aisément ajouter des lecteurs. Un //struct// représente chaque lecteur, les pins de ses boutons de lecture, une entrée analogique pour le volume ainsi qu'un pointeur vers l'instance de SoftwareSerial par qui il communique.
 Un //define// ligne 5 permet d'activer ou de désactiver le contrôle numérique du volume via un potentiomètre connecté sur une entrée analogique. Un //define// ligne 5 permet d'activer ou de désactiver le contrôle numérique du volume via un potentiomètre connecté sur une entrée analogique.
-<file c++> +En première lecture, la sortie DAC émet un buzz audible de quelques secondes, probablement le temps de charger un condensateur. Pour éviter ce défaut, un fichier est lu pendant 3 secondes à l'initialisation du lecteur. Cette astuce ne fonctionne que si un casque est connecté. 
-#include "Arduino.h"+ 
 +<file c++>#include "Arduino.h"
 #include "SoftwareSerial.h" #include "SoftwareSerial.h"
 #include "DFRobotDFPlayerMini.h" #include "DFRobotDFPlayerMini.h"
-#define MAXVOLUME 25+#define MAXVOLUME 30 
 +#define MAX_INITIALISATION_ATTEMPTS 5
 //#define volumeControl //#define volumeControl
  
Ligne 62: Ligne 64:
 player player1 = {"player1", 4, 5, A0, HIGH, HIGH, 0, &softwareSerial1, Player1}; player player1 = {"player1", 4, 5, A0, HIGH, HIGH, 0, &softwareSerial1, Player1};
 player player2 = {"player2", 6, 7, A1, HIGH, HIGH, 0, &softwareSerial2, Player2}; player player2 = {"player2", 6, 7, A1, HIGH, HIGH, 0, &softwareSerial2, Player2};
 +
 +
 +void printDetail(uint8_t type, int value);
  
 void setup() void setup()
Ligne 68: Ligne 73:
   pinMode(LED_BUILTIN, OUTPUT);   pinMode(LED_BUILTIN, OUTPUT);
   digitalWrite(LED_BUILTIN, LOW);   digitalWrite(LED_BUILTIN, LOW);
 +  delay(300);
   initialise(player1);   initialise(player1);
   delay(2000);   delay(2000);
Ligne 85: Ligne 91:
   pinMode(DFplayer.button1pin, INPUT_PULLUP);   pinMode(DFplayer.button1pin, INPUT_PULLUP);
   pinMode(DFplayer.button2pin, INPUT_PULLUP);   pinMode(DFplayer.button2pin, INPUT_PULLUP);
-  DFplayer.serial->begin(9600); +  for (int i=0; i< MAX_INITIALISATION_ATTEMPTS; i++) { 
-  if (!DFplayer.player.begin(*DFplayer.serial)) {  //Use softwareSerial to communicate with mp3. +    DFplayer.serial->begin(9600); 
-    Serial.println(F("Unable to begin:")); +    if (!DFplayer.player.begin(*DFplayer.serial)) {  //Use softwareSerial to communicate with mp3. 
-    Serial.println(F("1.Please recheck the connection!")); +      Serial.println("Unable to begin " + DFplayer.name); 
-    Serial.println(F("2.Please insert the SD card!")); +      Serial.println(F("1.Please recheck the connection!")); 
-    while (true// blink fast on initialisation error +      Serial.println(F("2.Please insert the SD card!")); 
-      digitalWrite(LED_BUILTIN, HIGH);+      } 
 +    else { 
 +       
 +      Serial.println(F("DFPlayer Mini online.")); 
 +      DFplayer.player.setTimeOut(500); //Set serial communication time out 500ms 
 +      //----Set volume---- 
 +      DFplayer.player.volume(MAXVOLUME);  //Set volume value (0~30). 
 +      //----Set different EQ---- 
 +        DFplayer.player.EQ(DFPLAYER_EQ_BASS); 
 +      //----Set device we use SD as default---- 
 +      DFplayer.player.outputDevice(DFPLAYER_DEVICE_SD); 
 +      //----Mp3 control---- 
 +      DFplayer.player.enableDAC();  //Enable On-chip DAC
       delay(300);       delay(300);
-      digitalWrite(LED_BUILTIN, LOW); +      DFplayer.player.play(1); //play for 3 seconds to eliminate the buzz which occurs the first time any file is played. 
-      delay(300); +      delay(3000); 
-      }+      DFplayer.player.stop(); 
 +      return; 
 +    } 
 +    //delay(2000);
   }   }
-  delay(1000); +  Serial.println("Unable to initialise "+ DFplayer.name+ ", rebooting\n\n"); 
-  Serial.println(F("DFPlayer Mini online.")); +  delay(300); 
-  DFplayer.player.setTimeOut(500); //Set serial communication time out 500ms +  asm volatile ( jmp 0"); // reboot the arduino hoping this would help somehow
-  //----Set volume---- +
-  DFplayer.player.volume(MAXVOLUME);  //Set volume value (0~30). +
-  //----Set different EQ---- +
-    DFplayer.player.EQ(DFPLAYER_EQ_BASS); +
-  //----Set device we use SD as default---- +
-  DFplayer.player.outputDevice(DFPLAYER_DEVICE_SD); +
-  //----Mp3 control---- +
-  DFplayer.player.enableDAC();  //Enable On-chip DAC+
 } }
 +
  
 void playerHandle (player *DFplayer) { void playerHandle (player *DFplayer) {
Ligne 120: Ligne 134:
   int volume = map(potValue, 0, 1023, 0, MAXVOLUME);   int volume = map(potValue, 0, 1023, 0, MAXVOLUME);
   if (volume != DFplayer->volume) {Player.volume(volume); Serial.println(volume);}   if (volume != DFplayer->volume) {Player.volume(volume); Serial.println(volume);}
 +  DFplayer->volume = volume;
   #endif   #endif
   DFplayer->button1State = button1;   DFplayer->button1State = button1;
   DFplayer->button2State = button2;   DFplayer->button2State = button2;
-  DFplayer->volume = volume; 
 } }
 </file> </file>
  
/home/resonancg/www/wiki/data/attic/projets/lecteurs_audio_dfplayer/accueil.1562747312.txt.gz · Dernière modification: 2019/07/10 10:28 de laurent