DFPlayer mini popping when driving 2 speakers
soldiez 2020-03-16 01:59:53 4368 Views5 Replies My DFPlayer Mini works flawlessly when driving one speaker, but when I add another speaker, after a few minutes it starts to get too hot too touch for more than a few seconds and starts making a pop every 2 seconds or so(but still works ok otherwise). The speakers are rated 1W 8 ohm. For my project(mp3 doorbell) I only need a sound being played once in a while, but DFPlayer gets hot and starts popping even if I don't play a song. If I power the arduino from usb it pops every 2 seconds or so, but if I power it directly from 5V it gets crazier, stutters at the start of every song and then starts popping like every half a second or so. Any ideas?
Thanks!
Edit: The arduino led gets slightly brighter every time the pop happens.(Arduino Uno).
This is the code, but I don't think it's too relevant regarding this issue:
Thanks!
Edit: The arduino led gets slightly brighter every time the pop happens.(Arduino Uno).
This is the code, but I don't think it's too relevant regarding this issue:
Code: Select all
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
int buttonPause = 12;
byte oldSwitchState = HIGH;
boolean isPlaying = false;
int count = 0;
int songNumber = 1;
int totalSongs = 5;
int value = 0;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;
int buttonState = 0;
int lastVolume = 0;
void setup() {
pinMode(buttonPause, INPUT_PULLUP);
//digitalWrite(buttonPause, LOW);
mySoftwareSerial.begin(9600);
Serial.begin(9600);
delay(500);
Serial.println();
Serial.println("DFPlayer Mini Demo");
Serial.println("Initializing DFPlayer...");
if (!myDFPlayer.begin(mySoftwareSerial)) {
Serial.println("Unable to begin:");
Serial.println("1.Please recheck the connection!");
Serial.println("2.Please insert the SD card!");
while (true);
}
myDFPlayer.setTimeOut(500);
//----Set volume----
myDFPlayer.volume(10); //Set volume value (0~30).
//----Set different EQ----
myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
}
void loop() {
byte switchState = digitalRead(buttonPause);
value = analogRead(A2);
value = map(value, 7, 1023, 0, 25);
if(value != lastVolume){
myDFPlayer.volume(value);
lastVolume = value;
}
if(oldSwitchState != switchState){
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if(switchState != buttonState){
buttonState = switchState;
if (switchState == LOW) {
myDFPlayer.play(songNumber);
Serial.println(songNumber);
if(songNumber>=totalSongs){
songNumber=0;
}
songNumber++;
}
}
}
oldSwitchState = switchState;
}
2022-03-22 03:13:10 We had a similar problem with two speakers connected - the DFplayer was shutting off after a few seconds. We solved the problem using a resistor of 50 - 100 Ohm in series with the speakers, for both speakers, to reduce power consumption - then the DFplayer acted normally. Of course the sound is less loud with the resistors.
contrechoc
contrechoc 2020-03-17 21:02:20 It doesn't matter if the volume is high or low, it does the same if the volume is 5, 10, or 25. I don't mind if it starts getting hot, because a song only plays for a few seconds, but I don't get why it gets too hot when a song isn't playing. I tried other libraries, implementing sleep and things like that but it does the same thing.
soldiez
soldiez 
