Kopfhörerausgang PC als Schaltsignal für Arduino

#7884775
Lesenswert?

Hallo Wer kann mir weiterhelfen? Ich möchte ein Signal aus dem Kopfhörerausgang vom PC nutzen um ein analoges Schaltsignal an einen Arduino zu senden. Also Ton an gleich Arduino Signal HIGH. Ton aus gleich Arduino Signal LOW. Gibt es da irgendwelche fertigen Bauteile oder wie kann ich so etwas erreichen?

#7884779
Lesenswert?

Dieter K. schrieb:

Gibt es da irgendwelche fertigen Bauteile

Das nötige Bauteil, um ein ca. 1Vpp Signal zu erfassen, ist in den Arduino sogar schon eingebaut und nennt sich Analog Comparator.

Nutze den passenden Eingang und warte auf ein Analog Comparator event.

Wie führt man das Signal zu ? Nun, der Audioausgang wird +/-0.5V um GND herum aussenden, der analoge Komparator wird um 1.1V herum (VRef) auslösen, also nutze einen Koppelkondensator (z.B. 10nF, du musst ja keine tiefe Frequenz übertragen) und einen Spannungsteiler zwischen GND und +5V auf 1V mit 100k + 390k.

Und dann erzeuge ein 1kHz Signal am PC

(Firma: matzetronics) #7884786
Lesenswert?

Wenn du in der Wahl der Töne frei bist, kannst du auch DTMF Töne am Rechner erzeugen und z.B. mit so einem Modul dekodieren: https://www.amazon.de/Audio-Decoder-Modul-16-Kanal-Voice-Modul-DTMF-Audio-Decoder-Board-Dekodieren-Festnetztelefonen/dp/B07R39PKNM https://www.roboter-bausatz.de/p/mt8870-dtmf-sprach-audio-decoder-telefon-modul-fuer-arduino-phone

Bis zu 16 verschiedene Schaltausgänge sind damit möglich. Das ist sehr robust, denn die Wähltöne sind dafür gedacht, auch über schlechte Telefonleitungen zu funktionieren. Wenn du allerdings nur auf Sound ja oder nein entscheiden musst, ist der Aufwand zu hoch und du nimmst Michaels Lösung.

#7884845
Lesenswert?

So ein AVR wäre sogar schnell genug, DTMF rein in Software zu decodieren

https://de.wikipedia.org/wiki/Goertzel-Algorithmus

(Nicht vom cos() und sin() abschrecken lassen, die damit berechneten Koeffizienten hängen nur von der gesuchten Frequenz und deiner ADC-Samplerate ab, wären also Compile-Time-Konstanten)

Wenn man keine 4 Zeilen & 4 Spalten von so einem Tastenfeld braucht, mit entsprechend weniger Aufwand.

Für rein "AN/AUS" natürlich trotzdem Overkill.

#7884862
Lesenswert?

Matthias S. schrieb:

Bis zu 16 verschiedene Schaltausgänge sind damit möglich.

Dafür brauch man zusätzlich noch einen 4-zu-16 Decoder (z.B. CD74HC154M), falls der Arduino sich nicht darum kümmern soll.

Dieter K. schrieb:

Gibt es da irgendwelche fertigen Bauteile oder wie kann ich so etwas erreichen?

Ja (s.o.) oder per Software. Der Goertzel-Algorithmus ist dein Freund, z.B. https://github.com/AI5GW/Goertzel

#7884887
Lesenswert?

Dieter K. schrieb:

Also Ton an gleich Arduino Signal HIGH.

Einfach mit nur einem Transistor eine Emitter NF Verstärkerschaltung aufbauen und dahinter eine Villard-Kaskade schalten. Diese richtet nicht nur das Wechselspannungssignal gleich, sondern erhöht gleichzeitig auch noch das Triggersignal auf 5 Volt.

Wenn nach 5 Minuten kein NF Signal mehr zum Nachtriggern kommt, dann kann sich der Arduino per entsprechendes Programm selbstständig abschalten.

#7884906
Lesenswert?

Dieter K. schrieb:

Danke für die vielen Rückmeldungen. Ich benötige nur ein analoges Signal um im Arduino einen Pin mit HIGH und LOW anzusteuern.

Was soll es denn mal werden, wenn es fertig ist? Ansonsten haben viele Audio-Systeme (Computer-Lautsprecher, Subwoofer) eine "Auto-Ein" Funktion, die das Gerät beim Vorhandensein eines Signals einschaltet. Und noch früher gab es Funkgeräte die hatten eine "Squelch" Funktion, die ebenfalls das Vorhandensein eines Nutzsignals detektieren konnten. Könnte man alles als Vorlage nehmen.

Aber ich gehe davon aus, daß es mal wieder ein XY-Problem ist. Sag uns doch einfach mal, welches dein richtiges Problem ist und nicht wo du mit etwas das du für eine Lösung hältst nicht weiterkommst.

#7884910
Lesenswert?

Wie gesagt, das ist simpel. Ginge auch mit dem Analog-Comparator statt dem ADC, k.A. ob der vom Arduino-Framework aus einfach ansprechbar ist. Oder wenn man sich zutraut, Kondensatoren, Dioden und Widerstände zu verwenden, dazu noch einen Transistor, auch mit einem Digital-Pin.

Das alles unter Interpretation deiner "beliebiger Ton"-Aussage mit gesundem Menschenverstand. Ansonsten ist ein ein einzelnes "0"-Sample, was mit Lautstärkeregler auf 0 gedreht ausgegeben wird, auch ein "beliebiger Ton", und du kannst deine ganze Schaltung durch eine Kurzschluss-Brücke auf "HIGH" ersetzen. Also: "Beliebiger Ton, der laut und lange genug ausgeben wird, dass auch ein Mensch den hören könnte, nicht nur ein kurzes Knacksen oder Störgeräusche von der CPU, HDD, SSD, VGA usw."

#7884918
Lesenswert?

Axel S. schrieb:

Dieter K. schrieb:

Danke für die vielen Rückmeldungen. Ich benötige nur ein analoges Signal um im Arduino einen Pin mit HIGH und LOW anzusteuern.

Was soll es denn mal werden, wenn es fertig ist? Ansonsten haben viele Audio-Systeme (Computer-Lautsprecher, Subwoofer) eine "Auto-Ein" Funktion, die das Gerät beim Vorhandensein eines Signals einschaltet. Und noch früher gab es Funkgeräte die hatten eine "Squelch" Funktion, die ebenfalls das Vorhandensein eines Nutzsignals detektieren konnten. Könnte man alles als Vorlage nehmen.

Aber ich gehe davon aus, daß es mal wieder ein XY-Problem ist. Sag uns doch einfach mal, welches dein richtiges Problem ist und nicht wo du mit etwas das du für eine Lösung hältst nicht weiterkommst.

Also, Ich will wenn bei XToys und Estim ein Schockbotten gedrückt wird, den da erzeugten Ton vom Lautsprecher abgreifen. Der Ton kann von einer bis fünfzehn Sekunden dauern, je nach Einstellung. Diesen Ton will ich abgreifen um eine Vorrichtung über einen Arduino ein und ausschalten zu können

#7884937
Lesenswert?

Wenn der Arduino sonst nichts zu tun hat, würde ich einen ADC-Pin nehmen, den mittels 10kOhm+10kOhm Spannungsteiler auf halbe Versorgung legen und das Audio über 10µF einspeisen. Dann in Software den AD auslesen in einer schnellen Schleife, min und max über z.B. 100 Samples ermitteln. Und nach den 100 Samples die Differenz max minus min berechnen. Ist die größer als ein Schwellwert (ja nach Rauschen des Audioausgangs und Lautstärke vielleicht 5 oder 10 oder 50), dann war da ein Ton. Natürlich unterscheidet der dann nicht, ob das dein gewünschter Ton oder eine Benachrichtigung vom Messenger oder Virenscanner oder was auch immer war.

(Firma: matzetronics) #7885273
Lesenswert?

Axel S. schrieb:

Und noch früher gab es Funkgeräte die hatten eine "Squelch" Funktion, die ebenfalls das Vorhandensein eines Nutzsignals detektieren konnten.

Diese Squelch Schaltungen haben so gut wie alle das Rauschen ausgewertet, das bei einem unbelegten Kanal vorhanden war und taten das über einen Audio-Hochpass. Das ist überhaupt nicht geeignet für die Zwecke des TE.

Mittlerweile sollte es genug Vorschläge zur Losung geben.

#7885281
Lesenswert?

Dieter K. schrieb:

XToys und Estim

Dieter K. schrieb:

eine Vorrichtung

LOL

Dieter K. schrieb:

Schockbotten

Button, kommt von "Knopf"

Ich bin sicher, das es schon genug Geräte gibt, die direkt mit Xtoys und Estim angesteuert werden, vermutlich über eine API. Die einfach anzapfen, z.B. über einen Vibrationssensor, oder einfach parallel zum Motor, ist keine Option? Außerdem reagiert dein Selbstbaudildo dann auf alle Signale aus dem Lautsprecher, auch z.B. USB-Töne, und du verlierst den Anschluss an die Boxen, d.h. die Kunden hören den Alarm gar nicht mehr. Ist dann aber langweilig, wenn ich was "spende" und der Performer evtl. nicht reagiert, und ich den Ton nicht höre. Wie bei leisen Türklingeln: "hab ich jetzt gedrückt? Oder ist die Glocke kaputt?"

#7885304
Lesenswert?

Jens M. schrieb:

Dieter K. schrieb:

XToys und Estim

Dieter K. schrieb:

eine Vorrichtung

LOL

Dieter K. schrieb:

Schockbotten

Button, kommt von "Knopf"

Hmm. Ich kenne "Botten" noch als mundartlich für "dreckige, abgeranzte Schuhe". Also was nicht mehr als "Latschen" durchgeht.

Aber jetzt habe ich mal "XToys" und "Estim" gegoogled. Paßt nicht dazu :) Vielleicht meint er ja "Schockbottom"? Wie in "wenn du mit dem Hintern auf den Boden plumpst, kriegen die Tassen einen Schock und fallen aus dem Regal"? Und die "Vorrichtung" ... ist das ein Orgasmussimulator? Fragen über Fragen.

Ich bin sicher, das es schon genug Geräte gibt, die direkt mit Xtoys und Estim angesteuert werden, vermutlich über eine API. Die einfach anzapfen, z.B. über einen Vibrationssensor, oder einfach parallel zum Motor, ist keine Option?

Und noch mehr Fragen. Erstaunlich wofür Arduino alles verwendet wird.

#7885321
Lesenswert?

Axel S. schrieb:

Vielleicht meint er ja "Schockbottom"?

Nein er meint Button, der Zuschauer kann dem Performer einen "summen"... ;)

Axel S. schrieb:

Erstaunlich wofür Arduino alles verwendet wird.

Geht halt einfach, im Sexbusiness zählt nur die Show.

Axel S. schrieb:

Und die "Vorrichtung" ... ist das ein Orgasmussimulator?

Vermutlich eher ein Auslöser. Einen den man nicht kaufen kann oder will.

Moderator (Firma: Titel) Persönliche Seite #7885356
Lesenswert?

Dieter K. schrieb:

Ich will wenn bei XToys und Estim ein Schockbotten

Botten? Heißt das da tatsächlich so?

ein Schockbotten gedrückt wird, den da erzeugten Ton vom Lautsprecher abgreifen.

Das "Abgreifen" ist ja recht einfach. Das nachfolgende "Auswerten" ist das, woran die meisten scheitern...

Also sollten mal die Grundlagen ermittelt werden: was kommt an dem Ausgang für ein Ton heraus? Was kommst sonst noch aus dem Ausgang heraus? Kann man das eine vom anderen unterscheiden? Wie bzw. woran kann man es unterscheiden? Welche Pegel misst du da?

Georg M. schrieb:

Axel S. schrieb:

gegoogled

https://www.duden.de/konjugation/googeln

Zwei Fragen:

  1. Warum heißt das auf Deutsch konsequenterweise nicht gleich "gugeln"?
  2. Heißt das dann auch konsequenterweise "googel.de"?

Und tatsächlich, die Autokorrektur korrigiert das: www.googel.de

Nur bei www.gugel.de geht es nicht mehr... ;-)

#7885388
Lesenswert?

Georg M. schrieb:

Axel S. schrieb:

gegoogled

https://www.duden.de/konjugation/googeln

Hmm. Jetzt hab ich mal auf den Link geklickt und da bekomme ich so eine gruselige Vorschaltseite, die mir die Wahl läßt €2,99 pro Monat zu latzen oder mir alternativ eine Cookievergiftung zu holen.

"Danke", aber "Nein Danke"!

Zudem hilft der d00dN bei Anglizismen nicht wirklich weiter. Es gibt nun mal zwei Sätze von Grammatikregeln die anwendbar sind. Und die ergeben nur in seltenen Fällen identische Ergebnisse.

Last not least: ich traue dem Sprachgefühl des Dude'n nicht mehr, seit er ernsthaft Worte wie "Studierendenwohnheim" für korrektes Deutsch ausgibt anstatt bei Verwendung dieses Wortes lebenslange Fronarbeit in den Tippex-Minen anzudrohen.

#7885547
Lesenswert?

Falls die Transistorstufe übersteuert wird, dann ist das nicht schlimm, weil direkt nach der Transistorstufe sowieso gleichgerichtet wird. Die Villardkaskade erhöht das Signal am Ausgang sogar noch zusätzlich auf knapp 4 Volt. Das müsste auf jeden Fall reichen, um das Signal mit dem Arduino weiterverarbeiten zu können.

Für die beiden Schottkydioden könnte man auch normale Siliziumdioden einsetzen, dann hätte man sogar noch eine künstliche Hürde von 0,7V geschaffen, die vom Rauschen überschritten werden muss.

Angehängte Dateien:
#7885614
Lesenswert?

ich finde die duden-googeley eigentlicch nicht verkehrt, allerdings die präteritum-form singular 2 person, "du googeltest" gefällt mir nicht, als wenn da was fehlt. ich denke da in richtung "du googelstes" oder "du googeltestes(t)" so vom gefühl, klingt natürlich auch nicht besser. ich kann abers auch einen defekt haben.

(Firma: matzetronics) #7886103
Lesenswert?

Enrico E. schrieb:

Die Villardkaskade erhöht das Signal am Ausgang sogar noch zusätzlich auf knapp 4 Volt.

Da ist ein Schaltungsfehler drin. Abgesehen davon, das vermutlich sowieso so gut wie keine Hardware nötig wäre, leitest du über die beiden Dioden einfach 5V auf den Arduino Eingang. Das ergibt wenig Sinn. Das mit dem Analogkomparator scheint das einfachste zu sein. Eingang leicht vorspannen und mit einem Koppelkondensator Audio auf den AC Eingang. Damit einen Timer als Monoflop starten und fertig.

#7886215
Lesenswert?

Matthias S. schrieb:

Die Diode, die du an 5V anschliesst, soll eigentlich mit der Anode an Masse statt an +5V. Sonst sollte das so klappen.

Naja, bei Wikipedia steht es ja auch so, dass die Diode an Plus angeschlossen werden muss. Wo soll denn sonst die positive Spannung für das Aufladen des Kondensators C1 bei deinem Lösungsvorschlag herkommen?

Angehängte Dateien:
#7886221
Lesenswert?

Bei der negativen Spannungserzeugung muss die Diode D1 natürlich tatsächlich an Masse angeschlossen werden. Das klingt dann auch logisch.

Jetzt interessiert mich das aber auch. Ich werde am Wochenende mal alle Schaltungsvarianten testweise auf dem Steckbrett aufbauen, dann mit einer Push-Pull-Treiberstufe und mit einem 1kHz Signal ansteuern und dann messen!

Angehängte Dateien:
#7886375
Lesenswert?

Matthias S. schrieb:

Im Wikipedia ist das der Greinacher:

Der Greinacher wird mit echter Wechselspannung getrieben, dann funktioniert das auch mit der Diode nach unten an Masse.

Die Pushpull-Treiberstufe dagegen, ist im Prinzip nur gepulste Gleichspannung. Da muss die Diode für eine Spannungsverdopplung nach oben. Der Nachteil ist, dass bei ausgeschalteter Treiberstufe am Ausgang dann immer fast die volle Versorgungsspannung anliegt.

Aber wie gesagt, ich werde das alles testen. Ich kann mir nicht vorstellen, dass bei Wikipedia eine falsche Schaltung abgebildet sein soll, das wäre zwischendurch bestimmt auch schon anderen Leuten aufgefallen.

Angehängte Dateien:
#7886391
Lesenswert?

Enrico E. schrieb:

Jetzt interessiert mich das aber auch. Ich werde am Wochenende mal alle Schaltungsvarianten testweise auf dem Steckbrett aufbauen, dann mit einer Push-Pull-Treiberstufe und mit einem 1kHz Signal ansteuern und dann messen!

Mit LTSpice weißt du es in 5 Minuten und läufst nicht Gefahr, beim Ausprobieren über wackelnde Steckbrettkontakte zu stolpern oder gar irgendwelche realen Bauteile zu misshandeln ;-)

(Firma: Privat) #7886462
Lesenswert?

von Enrico E. schrieb:

Der Greinacher wird mit echter Wechselspannung getrieben, dann funktioniert das auch mit der Diode nach unten an Masse.

Durch C1 kann kein Gleichstrom fließen, also Funktioniert daß auch mit nicht echter Wechselspannung, also mit überlagerter Gleichspannung. Und auch die Polarität der überlagerten Gleichspannung spielt keine Rolle.

#7888557
Lesenswert?

Günter L. schrieb:

Durch C1 kann kein Gleichstrom fließen, also Funktioniert daß auch mit nicht echter Wechselspannung, also mit überlagerter Gleichspannung. Und auch die Polarität der überlagerten Gleichspannung spielt keine Rolle.

Dem ist leider nicht so. Ich habe jetzt sämtliche Varianten auf dem Steckbrett durchprobiert und es ist leider doch so wie ich weiter oben bereits vermutet habe, dass es bei einer schwellenden Gleichspannung nicht egal ist, ob die Diode oben oder unten positioniert wird.

Es funktioniert nur so, wie auf dem Schaltplan gezeigt. Sowohl für die positive- als auch für die negative Kaskade!

Auf dem Steckbrett kamen einfach bipolare Kondensatoren zum Einsatz, damit ich bei meinen Versuchen nicht jedes mal die Elkos mit umpolen muss. Der 1M Widerstand dient nur als Grundlast.

Angehängte Dateien:
#7888795
Lesenswert?

Matthias S. schrieb:

Dreh doch mal bitte im unteren Zweig, der im Moment die -4V liefert, beide Dioden um, um den Greinacher zu bauen. Dabei zeigt der Pluspol des Koppelelkos dann in Richtung Dioden.

Du meinst bestimmt so? Ja das habe ich bei meinen Versuchen ebenfalls getestet, hier noch mal ein Foto.

Es kommen aber trotzdem nur +4 Volt raus. Wo soll denn auch die positive Spannung für die Plusplatte für C1 herkommen? Da kann die Ladepumpe nix mehr hochpumpen, so dass sich die Spannung nicht verdoppeln kann!

Angehängte Dateien:
#7889052
Lesenswert?

Nehm doch einen Audiotransformator und spann etwas hoch, dann Gleichrichten (Diodensflußspannungsverlust), da wird doch eine Spannung herauskommen, die sich vom Grundrauschen unterscheidet. ich habe versucht mit Mosfet als ideale Diode (sehr kleine Flußspannung) zu denken, aber das funktioniert nur mit höherer Anfangsspannung, wenn ich das richtig verstanden habe.

(Firma: Privat) #7889067
Lesenswert?

von Enrico E. schrieb:

Es kommen aber trotzdem nur +4 Volt raus. Wo soll denn auch die positive Spannung für die Plusplatte für C1 herkommen? Da kann die Ladepumpe nix mehr hochpumpen, so dass sich die Spannung nicht verdoppeln kann!

Die beiden Transistoren im Gegentakt, liefern an ihren Emitter eine Wechselspannung von etwa 2,5V, vielleicht ein klein wenig weniger, wegen Spannungsabfall an den Transistoren. Die Dioden haben auch noch einen Spannungsabfall von typisch 0,6- bis 0,7V. Hinter den Spannungsverdopplungsgleichrichter haben wir nun +4V, also von 2V auf 4V, daß ist für mich eine Spannungsverdopplung. Du kannst nun eine Trafowicklung nehmen, die 2V liefert, und es funktioniert genauso. Die überlagerte Gleichspannung an den Emitter der beiden Transistoren (halbe Betriebsspannung) wird durch den Kondensator abgetrennt.

Wenn nun die erste Diode nach + geschaltet wird, wird zusätzlich auch noch die 5V dazu addiert, daß ist dann mehr als eine Spannungsverdopplung.

#7889074
Lesenswert?

Günter L. schrieb:

also von 2V auf 4V, daß ist für mich eine Spannungsverdopplung.

So gesehen hast du natürlich wiederum Recht. Wenn man davon ausgeht, dass das NF-Signal von Dieter K. nach dem NF-Verstärker, eine Wechselspannung von max. 2,5V erreichen kann, dann sind 4 Volt DC am Ausgang auf jeden Fall schon mal brauchbar und kann vom Arduino problemlos als High-Signal erkannt werden.

Angehängte Dateien:
(Firma: matzetronics) #7889110
Lesenswert?

Für die Wissenschaft könntest du das Oszi anwerfen und die Höhe des Rechtecks mal anschauen - vor und nach den Verdopplern. Man sollte sehen, das am Knotenpunkt der Dioden die Spannung auf ein Plateau angehoben wird und dann von der zweiten Diode und dem Siebkondensator gleichgerichtet wird. Abzüglich der Uf der Diode ist das dann etwa die doppelte Eingangsspannung, wie von Günter vorgerechnet.

(Firma: matzetronics) #7889140
Lesenswert?

Enrico E. schrieb:

Der vorgeschaltete NF-Verstärker kann ja auch nur eine Wechselspannung von maximal 2,5 Volt liefern, wenn er mit einer Versorgungsspannung von 5 Volt betrieben wird.

Ja, die Emitterfolger nehmen dann noch insgesamt 1,4V weg. Wenn du das von z.B. einem CMOS Gatter (oder mehreren parallel geschalteten) antreibst, sieht das alles schon sehr viel besser aus. In den alten Zeiten habe ich mit 5 parallelen Gattern eines 74HC14 und einer 6-stufigen Kaskade die 25-30V Abstimmspannung für PLLs erzeugt. Das 6. Gatter war der Rechteckgenerator.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren