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
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
projets:lecteurs_audio_dfplayer:accueil [2019/06/07 16:48]
laurent [Code]
projets:lecteurs_audio_dfplayer:accueil [2019/07/10 10:28]
laurent [Lecteurs audio DFplayer]
Ligne 1: Ligne 1:
 ====== Lecteurs audio DFplayer ====== ====== Lecteurs audio DFplayer ======
   * Porteur du projet : Réso-nance [[:user:laurent|laurent]]   * Porteur du projet : Réso-nance [[:user:laurent|laurent]]
-  * Date : 07/06/2019/ - ...+  * Date : 07/06/2019/
   * Licence : [[http://creativecommons.org/licenses/by-sa/3.0/legalcode|CC-by-sa-3.0]]   * Licence : [[http://creativecommons.org/licenses/by-sa/3.0/legalcode|CC-by-sa-3.0]]
   * Description : Plusieurs lecteurs audio wav controllés par un arduino   * Description : Plusieurs lecteurs audio wav controllés par un arduino
-  * Fichiers sources : //mettre un lien// +  * Fichiers sources : {{ :projets:lecteurs_audio_dfplayer:audioplayer3.zip |}}
-  * Lien //mettre un lien//+
  
 {{tag>dflplayer, audio, wav, arduino, impédance}} {{tag>dflplayer, audio, wav, arduino, impédance}}
Ligne 35: Ligne 34:
 Le potentiomètre qui ne figure pas sur le schéma est connecté comme suit : {{:projets:lecteurs_audio_dfplayer:potard.jpg?direct&200|}} Le potentiomètre qui ne figure pas sur le schéma est connecté comme suit : {{:projets:lecteurs_audio_dfplayer:potard.jpg?direct&200|}}
 ===== Code ===== ===== Code =====
-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. 
 +<file c++> 
 +#include "Arduino.h" 
 +#include "SoftwareSerial.h" 
 +#include "DFRobotDFPlayerMini.h" 
 +#define MAXVOLUME 25 
 +//#define volumeControl
  
-===== Photos ===== +SoftwareSerial softwareSerial1(10, 11); // RX, TX 
-Code pour afficher les images du projet : +SoftwareSerial softwareSerial2(2, 3); // RX, TX 
-<code>{{gallery>?&crop&lightbox}}</code>+DFRobotDFPlayerMini Player1; 
 +DFRobotDFPlayerMini Player2;
  
 +struct player {
 +  String name;
 +  int button1pin;
 +  int button2pin;
 +  int potPin;
 +  bool button1State;
 +  bool button2State;
 +  int volume;
 +  SoftwareSerial* serial;
 +  DFRobotDFPlayerMini &player;
 +};
  
 +player player1 = {"player1", 4, 5, A0, HIGH, HIGH, 0, &softwareSerial1, Player1};
 +player player2 = {"player2", 6, 7, A1, HIGH, HIGH, 0, &softwareSerial2, Player2};
 +
 +void setup()
 +{
 +  Serial.begin(115200);
 +  pinMode(LED_BUILTIN, OUTPUT);
 +  digitalWrite(LED_BUILTIN, LOW);
 +  initialise(player1);
 +  delay(2000);
 +  initialise(player2);
 +  delay(2000);
 +  digitalWrite(LED_BUILTIN, HIGH);
 +}
 +
 +void loop() {
 +  DFRobotDFPlayerMini *test = &player1.player;
 +  playerHandle(&player1);
 +  playerHandle(&player2);
 +  delay(100);
 +}
 +
 +void initialise(player DFplayer) {
 +  pinMode(DFplayer.button1pin, INPUT_PULLUP);
 +  pinMode(DFplayer.button2pin, INPUT_PULLUP);
 +  DFplayer.serial->begin(9600);
 +  if (!DFplayer.player.begin(*DFplayer.serial)) {  //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) { // blink fast on initialisation error
 +      digitalWrite(LED_BUILTIN, HIGH);
 +      delay(300);
 +      digitalWrite(LED_BUILTIN, LOW);
 +      delay(300);
 +      }
 +  }
 +  delay(1000);
 +  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
 +}
 +
 +void playerHandle (player *DFplayer) {
 +  bool button1 = digitalRead(DFplayer->button1pin);
 +  bool button2 = digitalRead(DFplayer->button2pin);
 +  int potValue = analogRead(DFplayer->potPin);
 +  DFRobotDFPlayerMini Player = DFplayer->player;
 +  if (button1 == LOW && DFplayer->button1State == HIGH) Player.play(1);
 +  if (button2 == LOW && DFplayer->button2State == HIGH) Player.play(2);
 +  #ifdef volumeControl
 +  int volume = map(potValue, 0, 1023, 0, MAXVOLUME);
 +  if (volume != DFplayer->volume) {Player.volume(volume); Serial.println(volume);}
 +  #endif
 +  DFplayer->button1State = button1;
 +  DFplayer->button2State = button2;
 +  DFplayer->volume = volume;
 +}
 +</file>
  
/home/resonancg/www/wiki/data/pages/projets/lecteurs_audio_dfplayer/accueil.txt · Dernière modification: 2019/07/10 10:34 de laurent