Forum: Mikrocontroller und Digitale Elektronik Kopfhörerausgang PC als Schaltsignal für Arduino


von Dieter K. (dieter_k146)


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?

von Michael B. (laberkopp)


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

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


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.

: Bearbeitet durch User
von Εrnst B. (ernst)


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.

von Cartman E. (cartmaneric)


Lesenswert?

Ich wette jetzt schon mal darauf, dass ein simples Ein/Aus nicht
reicht, und man doch richtig Daten übertragen will.

Für ein Ein/Aus wäre auch ein NE567 gut geeignet.

von Rainer W. (rawi)


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

: Bearbeitet durch User
von Enrico E. (pussy_brauser)


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.

von Dieter K. (dieter_k146)


Lesenswert?

Hallo
Danke für die vielen Rückmeldungen. Ich benötige nur ein analoges Signal 
um im Arduino einen Pin mit HIGH und LOW anzusteuern.
Mir geht es darum wenn ein beliebiger Ton am PC erscheint soll am 
Arduino analogen Pin ein HIGH Signal ankommen. Bei Ton aus das Signal 
LOW.

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


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.

von Εrnst B. (ernst)


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."

: Bearbeitet durch User
von Dieter K. (dieter_k146)


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

von Uwe (uhi)


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.

von Rainer W. (rawi)


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.
> Könnte man alles als Vorlage nehmen.

Der PC wird wohl kaum über eine ZF verfügen, deren Pegel man auswerten 
könnte.

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


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.

von Jens M. (schuchkleisser)


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?"

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


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.

von Jens M. (schuchkleisser)


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.

von Georg M. (g_m)


Lesenswert?


von Günter L. (Firma: Privat) (guenter_l)


Lesenswert?

Geht auch ganz ohne Arduino, einfach das Signal verstärken,
gleichrichten und damit ein Schmitt-Trigger ansteuern,
fertig ist das High-Low-Signal. Man kann mit diesen High-Low-Signal
dann auch noch ein Arduino ansteuern, wenn man will.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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... ;-)

: Bearbeitet durch Moderator
von Karl B. (gustav)


Lesenswert?

Matthias S. schrieb:
> 
https://www.roboter-bausatz.de/p/mt8870-dtmf-sprach-audio-decoder-telefon-modul-fuer-arduino-phone

Falls dann doch mit DTMF decodiert werden soll:
Dann hier Schaltbild zum im Bausatz
verwendeten 8870
http://www.datasheet.hk/view_download.php?id=1861292&file=0432%5Cg8870_5365007.pdf

Hat er ergoogelt ggg)

ciao
gustav

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


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.

: Bearbeitet durch User
von Enrico E. (pussy_brauser)


Angehängte Dateien:

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.

von Carypt C. (carypt)


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.

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.