Forum: Analoge Elektronik und Schaltungstechnik 3,5mm-LineOut: Einstecken detektieren & Mono->Stereo


von Daniel K. (danie1)


Lesenswert?

Hallo zusammen,

ich möchte einen kleinen MP3-Player auf Ardunino-Basis basteln.

Der LineOut geht einerseits zu einer 3,5mm-Klinkenbuchse, die zwei 
Schalter öffnet, wenn man Kopfhörer einsteckt.
Gleichzeitg sollen die L,R,G-Ausgänge des Music Maker zu einem kleinen 
Verstärker gehen, um einen internen Lautsprecher zu betreiben.
1
Arduino --[SPI]--> Music Maker mit LineOut --> Kopfhörer
2
                                           \-> Verstärker --> interner Lautsprecher


Frage 1)
Falls ich mich für den Mono-Verstärker entscheide, ist dashier: 
https://www.instructables.com/id/Simple-Way-to-Convert-Stereo-to-Mono/ 
der richtige Weg, um beide Kanäle auf einen Lautsprecher zu legen?

Frage 2)
Ich möchte mitbekommen, wenn der Kopfhörer eingesteckt wird und dann den 
internen Verstärker abschalten.
Hierzu dachte ich mir, einen der Buchsen-Schalter als Input mit PullDown 
an den Arduino anzuschließen:
Schalter offen (Kopfhörer angeschlossen) erhalte ich LOW bzw. irgendwas 
nahe 0 Volt
Schalter geschlossen (Kopfhörer nicht angesteckt) erhalte ich irgendwas, 
das selten 0 Volt ist.
Mit mehreren Messungen über sagen wir 500ms sollte man die beiden Fälle 
gut unterscheiden können.

Schalter offen (Kopfhörer angeschlossen):
1
LineOut L --> Verstärker --> interner Lautsprecher
2
          \-> Kopfhörer L
3
          ~~> Arduino-Input = GND durch Pulldown

Schalter geschlossen (Kopfhörer nicht angesteckt):
1
LineOut L --> Verstärker --> interner Lautsprecher
2
          ~~> [nicht eingesteckt]
3
          \-> Arduino-Input = LineOut

Der geplante ATSAMD21 hat 40k PullUp/-Down-Widerstände, dies sollte dem 
am Verstärker hängenden Kanal nicht zu viel Spannung klauen.
Da Line-Level maximal 2V ist, sollte das Signal problemlos an einem 
analogen Eingang anliegen können, richtig?
Wird meine Idee funktionieren oder gibt es dafür eine bessere 
Möglichkeit?

Habt ihr eine andere Idee?
Es gibt von Adafruit auch einen MusicMaker mit Verstärker, aber wie 
kriege ich das auf Mono und auf Line-Level, um daran die Kopfhörer 
anzuschließen?

Ich bin für jeden Tipp dankbar.
Viele Grüße
Daniel

Adafruit Music Maker FeatherWing mit LineOut: 
https://www.adafruit.com/product/3357
Adafruit Music Maker FeatherWing mit Verstärker: 
https://www.adafruit.com/product/3436
3,5mm Buchse: https://www.adafruit.com/product/1699
Mono-Versärker: https://www.adafruit.com/product/2130
Stereo-Verstärker: https://www.adafruit.com/product/1552

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Recht einfach wird es mit so einer Klinkenbuchse:
https://www.reichelt.de/klinkenbuchse-stereo-6-pol-3-5-mm-cliff-fcr1295-p228183.html

Diese hat nämlich an Masse auch einen Schalter, der öffnet, wenn man 
einen Stecker einsteckt. Das kann jeder MC leicht auswerten, dazu reicht 
ein GPIO mit Pullup. Das ganze benöigt dann keinen Eingriff im Audioweg.

Daniel K. schrieb:
> Falls ich mich für den Mono-Verstärker entscheide, ist dashier:
> https://www.instructables.com/id/Simple-Way-to-Convert-Stereo-to-Mono/
> der richtige Weg, um beide Kanäle auf einen Lautsprecher zu legen?

Jo, zwei Mischwiderstände machen alle. Nicht zu gross und nicht zu 
klein, dann klappt das. Ich empfehle irgendwas zwischen 2,2K und 10k.

von Axel S. (a-za-z0-9)


Lesenswert?

Daniel K. schrieb:
> ich möchte einen kleinen MP3-Player auf Ardunino-Basis basteln.

Naja. Du stöpselst da anscheinend ein paar Module zusammen.
Lego für große Jungs.

> Der LineOut geht einerseits zu einer 3,5mm-Klinkenbuchse, die zwei
> Schalter öffnet, wenn man Kopfhörer einsteckt.

Ja. Aber nicht einfach zwei Schalter, sondern Schalter, deren eines Ende 
mit dem Signal für den linken respektive rechten Kanal verbunden ist. 
Die Idee dahinter ist, daß der eingesteckte Kopfhörer das Signal 
abschaltet, das sonst an einen internen Verbraucher weitergeleitet wird.

> Gleichzeitg sollen die L,R,G-Ausgänge des Music Maker zu einem kleinen
> Verstärker gehen, um einen internen Lautsprecher zu betreiben.

> Ich möchte mitbekommen, wenn der Kopfhörer eingesteckt wird und dann den
> internen Verstärker abschalten.
> Hierzu dachte ich mir, einen der Buchsen-Schalter als Input mit PullDown
> an den Arduino anzuschließen

Das wird so nichts. Mit der von dir vorgesehenen Buchse kannst du zwar 
die zum internen Verstärker führenden Signale abschalten. Nicht aber 
den Verstärker selber.

> Wird meine Idee funktionieren oder gibt es dafür eine bessere
> Möglichkeit?

Wenn du das Einstecken eines Kopfhörers mit dem µC detektieren willst, 
dann nimm eine andere Klinkenbuchse. Nämlich eine mit einem 
Schaltkontakt, der nicht mit dem Audiosignal verbunden ist. Ein Beispiel 
für so eine Buchse hat dir Matthias oben ja schon gegeben.

von Daniel K. (danie1)


Lesenswert?

Danke für eure Hinweise.
Der µC soll das Signal detektieren, um dann die Shutdown-Pins der 
Verstärker zu steuern.
Wenn es auch per PullUp am GND-Pin geht, dann nehme ich einfach den.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Daniel K. schrieb:
> Wenn es auch per PullUp am GND-Pin geht, dann nehme ich einfach den.

Entweder schreibst du das jetzt falsch oder du hast es nicht verstanden. 
Die von mir verlinkte Buchse öffnet einen Kontakt, der ohne Stecker mit 
GND verbunden ist.
Ein Pullup am GND Pin verbraucht nur Strom und nützt gar nichts.

von Daniel K. (danie1)


Lesenswert?

Ja, ich habe es etwas verkürzt geschrieben:
Ich detektiere den eingesteckten Klinkenstecker, indem mir am dann 
offenen Kontakt des GND-Pins der Buchse an meinem Ardunio-Input mit 
einem PullUp dann High anliegt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.