Geräusch beim Start der Box, allerdings nicht bei jedem Start

Mit wie viel spannung wird denn der dfplayer versorgt :stuck_out_tongue_winking_eye:

Schon klar, handelt es sich bei der Kondensator-Voltzahl um ein Maximalwert?

Genau, das ist der maximalwert also die Spannungsfestigkeit. Bei höheren Spannungen schlägt das Dielektrikum durch. Man sollte etwas Luft lassen aber 10V reichen in dem Fall.

1 „Gefällt mir“

Ok, habe jetzt mal diese hier zum Testen bestellt und werde berichten:

  1. Elko Panasonic FR 100uF 10V Kondensator 105°C Low ESR

  2. Elko Panasonic FR 22uF 50V Kondensator 105°C Low ESR

  3. Elko Panasonic FC 220uF 16V 105°C Low impedance

So, habe es jetzt mal ausprobiert.
Zwischen VCC und GND am Player hat leider mit keinem Kondensator etwas gebracht (weder aufs Knacken noch aufs Rauschen).

Habe den 100uF Kondensator dann mal testweise direkt zw. + und - vom Lautsprecher gehängt, das reduziert die Knackgeräusche beim Ein- und Ausschalten um ca. 60-70%.

Hast du den Kondensator parallel zum Lautsprecher gehängt?Ändert das was am klang wenn du Musik abspielst? Denn dies ändert ja die Impedanz des Lautsprechers gerade bei den höheren Frequenzen.

Ja, genau, parallel.
Konnte gestern nicht mehr richtig testen, da die Familie schon geschlafen hat.
Aber klar, das ist nicht die Lösung im Sinne des Erfinders. Dann würde ich lieber die Startgeräusche in Kauf nehmen und dafür besseren Sound haben.

Ich würde es vielleicht auch nur testen, falls du noch einen Ersatz dfplayer hast. Denn der 100uF hat bei 1000Hz nur noch 1,5 Ohm Impedanz und bei höheren Frequenzen ist es quasi ein Kurzschluss.da kommt der Verstärker wahrscheinlich schon ganz schön ins schwitzen.

Hallo zusammen, mich hat das Geräusch auch gestört und ich habe mal einen anderen Ansatz.
Ich schalte den Lautsprecher über einen Mosfet zu. Aufbau ist ein simpler N Kanal Mosfet mit Vorwiederstand, im Speaker 2 Pfad.
Über Pin 8 wird dieser im Setup zugeschalten.

Mein Tony nutzt ausschliesslich den DAC und nicht den DFPlayer-eigenen Verstärker. Dort tritt das Geräusch auch auf. Es liegt also nicht am Verstärker.

Hallo @Dennis,
ich komme zwar mehr von der Software-Seite, aber hier muss ich doch nachfragen:

Habe den 100uF Kondensator dann mal testweise direkt zw. + und - vom Lautsprecher gehängt…

Hast Du (oder jemand anders) Dir denn die Ausgangsstufe des Players vorher angeschaut?
Ich würde erwarten, dass der Lautsprecher mit Wechselspannung angetrieben wird, d.h. die Spannung am Lautsprecher ist also immer auch wieder negativ.Die Bezeichnung +/- an den Klemmen würde ich eher darauf zurückführen, dass z.B. im Stereo-Betrieb, beide Lautsprecher in Phase betrieben werden müssen und ein Verpolen einen Phasenversatz von 180° ergibt (aber wie gesagt, das ist nicht mein Gebiet).
Auf jeden Fall sehe ich die Gefahr dass der Elko zeitweise verpolt betrieben wird, was dazu führen kann, dass er platzt. Dabei treten giftige Gase aus, je nachdem können diese sogar heraus spritzen - ein Szenario, dass man weder im Kinderzimmer haben möchte, noch während man sich gerade über den Testaufbau beugt…
Ich erinnere mich auch daran, dass für Frequenzweichen bipolare Kondensatoren verwendet werden.

Wie gesagt: Ist nicht mein Fachgebiet und hängt sicherlich von weiteren Komponenten ab, aber ich wäre hier sehr vorsichtig!

Da bin ich ehrlich gesagt überfragt. Bin ja nur testweise so vorgegangen wie in diversen Foren beschrieben wurde.
Habe es dann aber wg. genannten Nachteilen verworfen.

Mein Vorschlag war etwas Voreilig hier veröffentlicht. Ich hatte das Gestern noch ausgiebig getestet und ein einfacher MOSFET schaltet den Lautsprecher nicht 100%ig ab.
Ich habe mich weiter informiert und bin auf die Möglichkeit gestoßen den MOSFET antiseriell zu verschalten. Das soll für Wechselspannungssignale geeignet sein. Ich teste das und werde weiter berichten.

Ich hab es gelöst!
Ein MOSFET war zu wenig, aber mit zweien gehts.
Antiserielle Schaltung heißt das, man lernt nie aus.
Hier mein Aufbau:

Im Programm schalte ich im Setup D8 zu und beim Ausschalten wieder ab. Die erste Sekunde in der der DFPlayer den Ton ausgibt, ist der Lautsprecher aus und das Störgeräusch nicht hörbar.

Ich überlege ob sich ein abschaltbarer Lautsprecher noch für etwas anderes eignet, aber mir fättl nichts sinnvolles ein :thinking:

6 „Gefällt mir“

Das klingt gut.
Wären das hier die richtigen Bauteile?
https://www.amazon.de/IRLML2502-Transistor-N-LogL-MOSFET-20V-SOT23/dp/B07RD6D1TM
Verbraucht die Box dadurch mehr?

Für Kopfhörer-Anschlüsse, die den Lautsprecher nicht selbst ausschalten?

Ja die habe ich verwendet und sie funktionieren ohne hörbare Einschränkung.

Ich wüsste nicht warum ein höherer Verbrauch zusatnde kommen sollte, da MOSFETs keinen Strom brauchen um zu Schalten, sondern nur Spannung.

Das mit dem Kopfhörer ist eine sehr gute Idee.

Das sind halt SMD Bauteile und relativ klein, ich weiß nicht ob es diese auch als THT gibt.
Aber löten geht, mit Pinzette und einer ruhigen Hand.

Wenn man sich andere aussucht, sollte man auf den Widerstand zwischen Drain und Source achten. Der sollte möglichst klein sein. Die von mir verwendeten haben 0, 45 Ohm. Ich habe auch welche mit 5 Ohm probiert, die haben sehr schlecht funktioniert.

1 „Gefällt mir“

@marco-117

In welcher Zeile hast du deinen Code eingefügt? Hast du das mit delay gelöst, oder noch besser, kannst du dein Codeschnipsel hier reinschreiben? Wär echt cool, wenn das so funktioniert, und danke für deine Hilfe.

void setup() {
  mp3.begin(); 
  
  Serial.begin(115200); // Es gibt ein paar Debug Ausgaben über die serielle Schnittstelle
  
  pinMode(SpeakerOnPin, OUTPUT);
  digitalWrite(SpeakerOnPin, LOW);
  
  // Wert für randomSeed() erzeugen durch das mehrfache Sammeln von rauschenden LSBs eines offenen Analogeingangs
  uint32_t ADC_LSB;
  uint32_t ADCSeed;
  for(uint8_t i = 0; i < 128; i++) {
    ADC_LSB = analogRead(openAnalogPin) & 0x1;
    ADCSeed ^= ADC_LSB << (i % 32); 
  }
  randomSeed(ADCSeed); // Zufallsgenerator initialisieren

  // Dieser Hinweis darf nicht entfernt werden
  Serial.println(F("\n _____         _____ _____ _____ _____"));
  Serial.println(F("|_   _|___ ___|  |  |     |   | |     |"));
  Serial.println(F("  | | | . |   |  |  |-   -| | | |  |  |"));
  Serial.println(F("  |_| |___|_|_|_____|_____|_|___|_____|\n"));
  Serial.println(F("TonUINO Version 2.1"));
  Serial.println(F("created by Thorsten Voß and licensed under GNU/GPL."));
  Serial.println(F("Information and contribution at https://tonuino.de.\n"));

  // Busy Pin
  pinMode(busyPin, INPUT);

  // load Settings from EEPROM
  loadSettingsFromFlash();

  // activate standby timer
  setstandbyTimer();

  // DFPlayer Mini initialisieren
//  mp3.begin();
//  // Zwei Sekunden warten bis der DFPlayer Mini initialisiert ist
//  delay(2000);
  volume = mySettings.initVolume;
  mp3.setVolume(volume);
  mp3.setEq(mySettings.eq - 1);
  // Fix für das Problem mit dem Timeout (ist jetzt in Upstream daher nicht mehr nötig!)
  //mySoftwareSerial.setTimeout(10000);

  // NFC Leser initialisieren
  SPI.begin();        // Init SPI bus
  mfrc522.PCD_Init(); // Init MFRC522
  mfrc522
  .PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader
  for (byte i = 0; i < 6; i++) {
    key.keyByte[i] = 0xFF;
  }

  pinMode(buttonPause, INPUT_PULLUP);
  pinMode(buttonUp, INPUT_PULLUP);
  pinMode(buttonDown, INPUT_PULLUP);
#ifdef FIVEBUTTONS
  pinMode(buttonFourPin, INPUT_PULLUP);
  pinMode(buttonFivePin, INPUT_PULLUP);
#endif
  pinMode(shutdownPin, OUTPUT);
  digitalWrite(shutdownPin, LOW);


  // RESET --- ALLE DREI KNÖPFE BEIM STARTEN GEDRÜCKT HALTEN -> alle EINSTELLUNGEN werden gelöscht
  if (digitalRead(buttonPause) == LOW && digitalRead(buttonUp) == LOW &&
      digitalRead(buttonDown) == LOW) {
    Serial.println(F("Reset -> EEPROM wird gelöscht"));
    for (int i = 0; i < EEPROM.length(); i++) {
      EEPROM.update(i, 0);
    }
    loadSettingsFromFlash();
  }

  digitalWrite(SpeakerOnPin, HIGH);
  // Start Shortcut "at Startup" - e.g. Welcome Sound
  playShortCut(3);

}

Das ist der angepasste Code.
Du musst „SpeakerOnPin“ noch durch die Nummer des Arduino Ausgangs ersetzen
oder wie ich ein #define dafür festlegen.

4 „Gefällt mir“

Im übrigen ist dieser Code noch so optimiert, das der TonUINO 2sec schneller hoch fährt.

@marco-117
wow, so eine schnelle Antwort, hätt ich jetzt nicht erwartet :slight_smile:

Danke, ja ich sehe der delay(2000); ist auskommentiert.
Reicht dann das Anschalten des Lautsprechers am Ende des Code-Teiles, dass der Lautsprecher dann nicht knackt? Ich dachte da hätte man 1 Sekunde abwarten müssen…

Danke