Probleme Dfplayer alimentation

Bonjour, je suis débutant et je suis bloquer depuis quelque jour sur un problème que je n'arrive pas a comprendre
J'ai un Arduino nano sur le quel j'ai brancher 4 boutons (chaque bouton a une LED) + une LED solo et un dfPlayer (avec 2 haut parleurs branchés)
Voici mon problème:
Prise USB tout fonctionne correctement.
Batterie externe qui alimente le Arduino nano en USB -> Bouton et LED solo fonctionne mais pas le dfPlayer
Pile 9v qui alimente le Arduino nano -> même problème qu'avec la batterie externe

Si une personne peux m'expliquer pourquoi j'ai ce probleme.
Merci

postez un dessin du circuit en mentionnant bien les alimentations et leur type ainsi que le code

(Lire les recommandations listées dans "Les bonnes pratiques du Forum Francophone” pour poster tout cela correctement notamment l'usage des balises de code. Merci)

#include "mp3tf16p.h"

const int buttonPlayer1 = 4;
const int ledPlayer1 = 5;
const int buttonPlayer2 = 6;
const int ledPlayer2 = 7;
const int buttonPlayer3 = 8;
const int ledPlayer3 = 9;
const int buttonPlayer4 = 10;
const int ledPlayer4 = 11; 

const int ledRed = 12;

bool buzzerIsActive = false;

MP3Player mp3(2, 3);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  mp3.initialize();

  pinMode(buttonPlayer1, INPUT);
  pinMode(ledPlayer1, OUTPUT);
  pinMode(buttonPlayer2, INPUT);
  pinMode(ledPlayer2, OUTPUT);
  pinMode(buttonPlayer3, INPUT);
  pinMode(ledPlayer3, OUTPUT);
  pinMode(buttonPlayer4, INPUT);
  pinMode(ledPlayer4, OUTPUT);
  pinMode(ledRed, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:

  if (buzzerIsActive == false){
    int etatButton1 = digitalRead(buttonPlayer1);
    int etatButton2 = digitalRead(buttonPlayer2);
    int etatButton3 = digitalRead(buttonPlayer3);
    int etatButton4 = digitalRead(buttonPlayer4);

    if (etatButton1 == HIGH){
      BuzzerOn(1);
    } else if (etatButton2 == HIGH){
      BuzzerOn(2);
    }else if (etatButton3 == HIGH){
      BuzzerOn(3);
    }else if (etatButton4 == HIGH){
      BuzzerOn(4);
    }
  }
}

void BuzzerOn(int player){
  buzzerIsActive = true;
  digitalWrite(ledRed, HIGH);
  if (player == 1){
    digitalWrite(ledPlayer1, HIGH);
    mp3.playTrackNumber(1, 30, true);
  } else if (player == 2){
    digitalWrite(ledPlayer2, HIGH);
    mp3.playTrackNumber(2, 30, true);
  } else if (player == 3){
    digitalWrite(ledPlayer3, HIGH);
    mp3.playTrackNumber(3, 30, true);
  } else if (player == 4){
    digitalWrite(ledPlayer4, HIGH);
    mp3.playTrackNumber(4, 30, true);
  }

    delay(3000);
  
    mp3.playTrackNumber(5, 30, true);

    digitalWrite(ledPlayer1, LOW);
    digitalWrite(ledPlayer2, LOW);
    digitalWrite(ledPlayer3, LOW);
    digitalWrite(ledPlayer4, LOW);
    digitalWrite(ledRed, LOW);

    buzzerIsActive = false;
}

le schéma est un peu illisible mais les GNDs semblent bien connectés (je suppose que tout est soudé ?)

ça ressemble à un souci de puissance (courant) délivré par votre batterie 9V

l'USB va fournir 500mA mais pas forcément la pile 9V surtout si elle est un peu usagée.
Avez vous essayé avec 4 piles AA en série par exemple?

Bonjour,

Quand tu alimentes par l'usb la carte peut délivrer 500mA moins environ 30mA consommé par la carte.

Quand tu alimentes par Vin on passe par le régulateur qui peut dissiper environ 1W.
Donc le courant qu'il peut débiter est I=P/U soit 1/(9-5)=250mA ce qui n'est peut être pas suffisant.

Oui tout est soudé et tout est bien connectés (Tout fonctionne comme il se doit sur USB)

J'ai testé avec 4 piles AA en série j'ai les leds qui s'allumes mais toujours pas de son qui se joue.

Je vais teste avec des accus de ce type après les avoirs rechargé, avec 2 cela devrait suffir?

2 en séries ça devrait aller oui

Avez vous moyen de débrancher facilement un des deux haut parleurs ?

Si cela peut me permettre de résoudre le problème je peux le couper sans problème :slight_smile:

"Bon bah j'ai coupé" cela a fonctionné une fois et depuis je n'arrive pas a le refaire fonctionné (avec la pile bien sûr) :confused:

quelle est l'impédance de vos HP ? (8 Ohms au moins ?)

Oui 8 Ohms 2 Watt
Haut parleur
DfPlayer

une puissance de 8W sous 2Ω veut dire un courant minimum de 0.5A par HP et sans doute plutôt plus que moins sera demandé

si vous en avez 2, ça fait plus de 1A à 1.5A qui seront tirés. c'est beaucoup trop pour le régulateur de votre carte (et la taille de la piste qui fournit le 5V) qui à mon avis se met en protection.

quand vous utilisez l'USB, le 5V provient directement de l'USB et est limité par l'USB à 500mA donc vous ne fournissez pas plus même si les HP en demandent plus et le régulateur n'est pas impliqué

Si vous avez un moyen d'alimenter sous 5V (en joignant les GND) directement votre DFPlayer, ce serait bien d'explorer cette hypothèse.

Est ce que ce module peut correspondre?

Je l'alimente via la pile 9v avec sortie "ronde" (désolé j'ai oublié le nom) et et je connecte le 5v en direct au DfPlayer? Ou autre module si tu a des propositions je suis preneur :slight_smile:

Merci

ils ne disent pas le courant max dispo en sortie mais oui si vous connectez à la pile en parallèle l'Arduino et ce transfo qui irait au DFPLayer au moins vous ne passeriez plus par l'arduino pour fabriquer du 5V. ça se tente

Il y a le nouveau module Sparkfun 21256 dispo chez Mouser entrée 6 à 32V sortie 5V 3A5.

J'ai trouvé ce module qui fait le 9v -> 5v 2a

oui ces chinoiseries ne sont pas très précises mais ça peut faire le job

Je vais tester ça aujourd'hui quand j'aurais recus le module et je vous tiens au "courant".

J'ai reçus le module et tout fonctionne comme il faut, même avec les 2 hauts parleurs.

Grand merci a vous pour votre aide :slight_smile:

Super
Amusez-vous bien !

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.