Kopfhöreranschluss möglich?

EDIT: Hier jetzt die versprochene Bebilderte Erklärung

Habe es so bei mir am laufen und funktioniert soweit gut, der Vorteil meiner Variante ist, das man das Echte Stereo Signal bekommt und sich um den Mono-Downmix nicht kümmern braucht weil das ja schon der Player On-Board alles macht.

  1. Am Anschluss des Lautsprechers muss nichts verändert werden, dieser bleibt an SPK_1 & SPK_2
    und wird somit weiter vom OnBoard Verstärker (8002) betrieben.
  2. Auf der Unterseite des DFPlayer muss der 0Ohm SMD Widerstand entfernt werden (rot markiert)
  3. Auf der gegenüberliegenden Seite muss am vorderen freien PAD (grün markiert) eine Litze angelötet
    werden (0,35mm² oder kleiner), dieses geht zur Klinkenbuchse (erster Kontakt vom eingang der
    Buchse betrachtet) und zwar auf die Seite welche den Kontakt zum Stecker verliert sobald dieser
    gesteckt wird.
  4. Als Klinkenbuchse benötigt ihr eine welche die Masse trennen kann
    zum Beispiel: 3,5mm
    https://www.develektro.com/SCHURTER-48022300-KLINKENBUCHSE-35MM-EINBAU-3POL
    oder 6,35mm
    CLIFF CL1220A: Einbau-Klinkenbuchse stereo, 3 pol, 6,35 mm bei reichelt elektronik
  5. Der Kontakt auf der gegenüberliegenden Seite wird mit Masse (GND) verbunden.
  6. Die Beiden Anderen Kontakte wie im Bild zu sehen anschließen, vom Buchseneingang aus gesehen erst DAC-L dann DAC-R
  7. Wenn man nur möchte das der Lautsprecher ausgeht sobald ein Kopfhörer gesteckt wird, war es das auch schon.
  8. Möchte man auch über die Software Einfluss nehmen, brauchen wir noch ein Kabel vom öffnenden Massekontakt der Buchse (dort wo auch das zusätzliche Kabel des DFPlayer angeschlossen ist) zu einem freien Pin des Arduino und im Letzten Schritt dan die Software anpassen.

#define headphonePin xx
bool headphoneIn =0 ; // zur Verriegelung der späteren if-Abfrage, damit diese nur einmal ausgeführt wird
unsigned int last_Volume; // Merker für das Volume vor dem Stecken des Kopfhörer
unsigned int last_max_Volume; // Merker für das eingestellte max-Volume for dem Stecken des Kopfhörer
unsigned int max_Volume = 20;


//Dieser Teil kommt in das Setup ( void setup() {...} )
pinMode(headphonePin, INPUT_PULLUP);

//Dieser Teil wird im do {...} Teil der loop() {...} ausgeführt   ( void loop(){ do {...}..} )
//Erkennung ob ein Kopfhörer eingesteckt ist, "headphoneIn" verriegelt jeweils die Abfrage so das sie nur einmal durchlaufen wird
    if ((digitalRead(headphonePin)== 1) && (headphoneIn == 0)){

      Serial.println("Kopfhörer wurde eingesteckt");
      headphoneIn = 1;
      last_max_Volume = max_Volume; // Das letzte max. Volume merken
      last_Volume = myDFPlayer.readVolume();
      max_Volume = 10;
      if(myDFPlayer.readVolume() >= max_Volume){
          myDFPlayer.volume(10);
      }
      
    } else if ((digitalRead(headphonePin)== 0) && (headphoneIn == 1)){
      Serial.println("Kopfhörer wurde entfernt");
      headphoneIn = 0;
      max_Volume = last_max_Volume;
      myDFPlayer.volume(last_Volume);
      }
19 „Gefällt mir“