Forum: Mikrocontroller und Digitale Elektronik „Touch Button“ als Sensor-Strecke LED - Photodiode ?


von Andi H. (andish)


Lesenswert?

Hallo!

Ich suche eine einfache und dynamische Methode, Absorption oder 
Reflektion zu messen.

Also eigentlich eine Kreuzkorrelation.

Jetzt mag ich mich dem Prinzip des TouchButton zuwenden, und wollte 
wissen, ob jemand schon eine andere Signalkette dazwischen gehangen hat 
als ein paar isolierte Drähte.

Ich habe als ersten Ansatz überlegt, das mit Timern selber zu 
programmieren

Also „Sender“ würde einen Rechteck-Puls senden.
Über RC-Glied geht das auf die LED, die einen exponentiell abfallenden 
Strom aussendet.
Dito an der Photodiode, also RC-Hochpass, was Gleichanteil wegwirft.

Über das Benutzen mehrerer Ausgänge (oder auch Eingänge) mit 
unterschiedlichen Widerständen könnte man eine Art Bereichsumschaltung 
realisieren.

Natürlich wäre ein Stromspiegel schön, so dass der Sendestrom durch die 
LED eine strenge mathematische Funktion ist.
Mit etwas Glück ist der Spannungsabfall der LED aber nicht zu sehr 
störend.

Misst man die Zeit zwischen Sprung auf High an LED und dem Punkt, wo der 
Sensor das Signal beim Umschaltpunkt (1/2 U_batt?) am Eingang wieder zum 
Umklappen H-L bringt, hat man Absorption der Strecke über eine 
Zeitfunktion gemessen. Muss man noch linearisieren.
 Läuft das Timerregister schön schnell, kann das recht auflösend werden. 
(Gibt da ja auch 32bit mit Interrupt.)

Ich möchte hier um Anregungen bitten, wie man durch Software den 
„Lock-In“, oder Kreuz-Korrelations-Anteil hinein bekäme.


Vorbild bei den Anlog-Chips:

Eigentlich hat der alte Lichtschrankenchip IS471 alles an Board, 
Signalgenerator, LED-Treiber und Kreuzkorrelation. Gibt es da so was mit 
externem Detektor?
Ich muss im Sichtbaren / UV-A messen.
IS471 hat eine Photodiode mit IR-Filter im Resin fest verbaut. 
Freischleifen sollte die Bondingdrähte zerstören.

Ganz vielen Dank!

Andi.




P.s. ich hoffe, es kommen noch viele Sensor-Beispiele. Den 
Kreuzkorrelation ist universell verwendbar.

Ich bin mit Cypress PSOC-1 fündig geworden, aber dke alten Beispiele 
bekomme ich als Neuling nicht auf neuen IDEs zum Laufen.

Die Anwendungsnotiz beschreibt auch die Kreuzkorrelation sehr schön, UA 
Elektronik-Prof hat das für Cypress verfasst.

https://www.cypress.com/documentation/application-notes/an2042-psoc-1-multifunctional-optical-sensor

Man bekommt die Design-Dateien in diesem ZIP:
https://www.infineon.com/dgdl/Infineon-AN2042_PSoC_1_Multifunctional_Optical_Sensor-ApplicationNotes-v03_00-EN.zip
Verlinkt sind die nirgends mehr, archive antwortet nicht. Der Support 
schickt das alte auf Anfrage. (Spendet archive org und fordert wehrhafte 
Transparenz!)

Zum Thema LED als Sender und Empfänger habe ich ais der Spektroskopie 
fefunden, dass dort durchaus mit einer Art PWM gemessen wird, was den 
A/D überflüssig macht. Sagte ein Paper zum Messen für Spektro. Dort 
wurde zu LEDs verwiesen auf:

Absorbance Based Light Emitting Diode Optical Sensors and Sensing 
Devices
by Martina O’Toole and Dermot Diamond

https://www.mdpi.com/1424-8220/8/4/2453

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Andi H. schrieb:
> Ich suche eine einfache und dynamische Methode

?????????? Welche Drogen nimmst du für so wirres Zeug ?

Andi H. schrieb:
> Gibt es da so was mit externem Detektor?

NE567 http://www.trigonal.de/sel/blobs/relisch.png

von Felix A. (davinciclaude)


Lesenswert?

Muss hartes Zeug sein ;)

Nein aber zu deinem Vorhaben. Vllt mache ich mir das gerade zu einfach. 
Ginge das nicht auch so?

https://electronics.stackexchange.com/questions/902/detecting-light-with-an-led?origin=serp_auto

Den Puls ersetzt du durch ständige Beleuchtung in der Nacht. 
Empfangs-LED dunkel = Taste gedrückt.

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


Lesenswert?

Andi H. schrieb:
> Also eigentlich eine Kreuzkorrelation.
Du meinst die Kreuzkorrelation zwischen Sende- und Empfangssignal?
Insgesamt scheint mir, du willst hier ein einfaches Problem mit 
möglichst vielen komplexen Komponeten und Fachbegriffen angehen. Das 
beginnt mit der Kreuzkorrelation, geht über die e-Funktion und den 
Stromspiegel bis hin zur "strengen mathematischen Funktion"...

> Also „Sender“ würde einen Rechteck-Puls senden.
Das ist üblich, denn nur so kann dein Sender von Fremdlicht 
untershcieden werden.

> Über RC-Glied geht das auf die LED, die einen exponentiell abfallenden
> Strom aussendet.
Das ist ein unnötiger Zwischenschritt.

> Dito an der Photodiode, also RC-Hochpass, was Gleichanteil wegwirft.
Das schafft ein C allein.

Insgesamt würde mich interessieren, was du denn überhaupt machen willst. 
So ein einfacher optischer Touchbutton braucht keine Raketentechnik. Es 
reicht aus, wenn der Sender eine bestimmte Frequenz ausgibt und der 
Empfänger erkennt, ob die Sendefrequenz im Empgangssignal enthalten ist.

von J. S. (engineer) Benutzerseite


Lesenswert?

Lothar M. schrieb:
> Insgesamt würde mich interessieren, was du denn überhaupt machen willst.
Er möchte Absorbtion und Reflektion messen, steht doch da :-)

Im Ernst, bei so einer dürftigen Beschreibung kann niemand helfen.

> So ein einfacher optischer Touchbutton braucht keine Raketentechnik.
Ich sehe nicht, wo wie an welcher Stelle Reflektionen gemessen werden 
sollen oder Absorbtionen. Ich sehe nicht mal, dass das optische Wellen 
sind, oder sein sollen.

> Es reicht aus, wenn der Sender eine bestimmte Frequenz ausgibt und der
> Empfänger erkennt, ob die Sendefrequenz im Empgangssignal enthalten ist.
Eventuell hilft dem TE ein Hinweis auf diese Art von touch buttons, wo 
das genau so gemacht wird: Es sind 2 Frequenzen, die durch den Finger 
mehr oder weniger gut absorbiert werden. Durch die Frequenzwahl kann man 
das steuern und nachregeln. Im Ausgangssignal sind dann beide Frequenzen 
enthalten. Die Amplitude macht die Entfernung, die Mischung die 
Feinposition.
http://www.96khz.org/htm/capacitivesensormusickeyboard.htm

Im Bereich der Blutanalyse (Sauerstoff und Hämoglobin) wird das auch mit 
Lichtsensorik gemacht.

: Bearbeitet durch User
von Rahul D. (rahul)


Lesenswert?

Klingt irgendwie nach einem Regensensor für Finger.
Der Brewster-Winkel ist da doch die Größe, die zwischen Reflexion und 
Transmission unterscheidet.
Bei Regensensor wird der Brechungsindex der Glasscheibe derart durch das 
Wasser verändert, dass das List vom Emitter nicht mehr beim Empfänger 
ankommt.

Wie sich das bei Fingern verhält, müsste man ausprobieren.

von Oliver R. (orb)


Lesenswert?

Für einen einfachen Touch-Button kann man eine Reflexlichtschranke 
hinter eine Glasplatte packen. z.B. 
https://de.farnell.com/osram-opto-semiconductors/sfh-9206/reflexlichtschranke-0-05a-5mm/dp/2981800
Sowas läuft hier zu hunderten als vandalensicherer Taster.

von Andi H. (andish)


Lesenswert?

Ziel war,
- Konzentrationsmessung (Pool-Desi sowie Algen, über Absorption in 4 
Wellenlängen RGB+UV) und Streuung=Trübung
- ohne Analog-Digital-Wandlung und ohne aufwändige externe Beschaltung
- Messung von Abschwächung des eigenen per LED ausgesandten Signals
- über eine Zeitmessung eben ähnlich der Touch-Button Routinen.

Dabei erhoffe ich mir mit Tricks mehr als 10-12 bit Auflösung.

Sozusagen mit 3 Bauteilen pro Kanal bzw. ein RC pro Messbereich (Sende- 
bzw Empfangs-Kanal) extern: LED, Fotodiode, und je RC-Glied(er). Fertig.

Ich möchte das Projekt dann mit nicht elektronisch vorbelasteten 
Menschen teilen, die eine kleine begrenzte Einkaufsliste wie ESP32 oder 
Arduino und ein Breadboard als Einstiegs-Ticket in primitive 
Spektroskopie nutzen können.
Es geht nicht um die Elektronik, sondern um die Mess-Möglichkeiten.
Der Pool ist nur ein Beispiel.


Deshalb sollte externe Beschaltung mit Spezial-ICs vermieden werden, wie 
komplexe Modulator- und Demodulator-Technik.

(Man kann für die benötigte Funktion das Blockschaltbild des IS471 von 
Sharp ansehen, der Auto-Korrelation macht.)

Trotzdem besteht das Potential, mit Pulsen über mehrere Größenordnungen 
mit „Bereichsumschaltung“ präzise zu messen.

Absorption wird in Durchlicht gemessen.
Streuung wird gemessen, indem seitlich in der Messkammer (ein Stück 
Plexi-Rohr im Rücklauf oder ein Bypass oder eingeschraubte „Fenster“ 
etwa) ein zweiter Empfänger oder Sender angebracht wird.

Das soll hier nicht weiter interessieren, da die Elektronik für alle 
möglichen Messaufgaben auch außerhalb von „Licht“ gleich ist.

Störlichtfestigkeit soll neben Elimination des Gleichanteils über 
ausreichend viele Messungung zu (pseudo-) zufälligen Zeitpunkten gemacht 
werden, eventuell mit Erkennung von Fehlmessungen.

Ich denke, dass ein RC-Glied inklusive R nötig ist, da man sonst mit 
unbekannten und eventuell Zustands-abhängigen inneren Widerständen von 
Ausgangsstufe des Microcontrollers und dem Spannungsabfall an der 
Sendediode als Fehlerquellen zu kämpfen hat.

Eigentlich wäre ein Stromwandler mit einem (Leistungs-) OP-Amp nötig. 
Der bekommt das exponentiell abfallende Spannungssignal und prägt 
proportional einen Strom in die Sende-LED ein.  Das meinte ich mit 
Stromspiegel, war wohl das falsche Wort.

Denn der Strom ist genau die ausgesandte Lichtmenge, da die Effizienz in 
weiten Teilen konstant ist (bei konstanter Temperatur).
Prinzipiell sucht man den Sendestrom, bei dem das Signal am Empfänger 
gleich ist wie bei der Wasserprobe ohne zu messenden Zusatz-Stoff. Dann 
ist der Sender linear, der zeitliche Verlauf des Stroms in der LED 
bekannt, und der Empfänger sagt nur: jetzt! ist es gleich. Somit ist die 
Zeitdauer zwischen Start des Rechteck-Pulses und dem Zurückfallen des 
Phtotdioden-Eingangs auf 0 unser Roh-Messwert. Das mag mit 
Timer-Registern auflösend gemessen werden, wo man über 16 bit hinaus mit 
Interrupt-gesteuerter Erweiterung des Timer-Zählers arbeiten kann.

Der exponentielle Abfall des Stroms nach
I(t)=U0/R * e^(-t/tau) mit tau=R*C ist ja bekannt.
Das gilt aber nur, wenn keine nicht-linearen Anteile von Ausgangs-Stufe 
oder Diode zum Tragen kommen. Ohne R tun sie das sicher.
Stört das, muss der Op-Amp her.

Die Schaltschwelle am Empfänger - bei immer der gleichen Intensität - 
hat den Vorteil, dass nichtlineare Kennlinien eines Empfängers keine 
Rolle spielen.
(Naja, solange man die 0-Messung (Vergleichsprobe mit Wasser) ständig 
mitmisst mit baugleichem Gefäß, oder (wenn man das nur zu Anfang macht) 
auf halbwegs konstantes Hintergrundlicht achtet. Ein halbwegs linearer 
Sensor ist von Vorteil, ich suche günstig eine Art OPT101 (den ab 4€) in 
etwas besserer/gleichmäßigerer Empfindlichkeit von Rot bis UV.

 Im Endausbau wird in einigen Wellenlängen gemessen, so dass man einige 
gelöste Stoffe unterscheiden kann.)


Hat man einmal eine solche Messung mit einem „DIY-A/D-Wandler“ 
geschafft, kann man dieses Prinzip auf viele Dinge, die „sensorisch“ 
interessieren, übertragen.

Mit Sensor-Strecke meinte ich, dass ich sowohl das anregende Signal wie 
auch den Empfang kontrollieren will.
Sonst konzentriert man sich meist nur empfangend auf das Messen 
physikalischer Größen. Da wir die Menge und das zeitliche Verhalten des 
ausgesandten Lichts ebenfalls kontrollieren, ist das in sich wie eine 
Pseudo-Regelstrecke. Wir „gestalten“ auf bestmögliche Auflösung und 
Linearität (etwa der Absorptionsmessung) und kleinstmöglichen 
Störeinfluss.


Hat man mehrere Ausgänge zur Verfügung, kann man dazu Bereichs- oder 
Skalen-Umschaltung betreiben. (Da die Kapazitätswerte der RC-Glieder um 
Größenordnungen über denen der Endstufe liegen, geht das, indem man 
nicht benötigte Ausgänge für R oder C Tri-State schaltet.)

(Skalen: also unterschiedliche „Frequenzbänder“ per Dimensionierung von 
im einfachstem Fall einem RC-Gluid: Denn je ein Filter unterteilt die 
Signale in eine Skale, und wenn ich mehrere orthogonale Filter nutze, 
bekomme ich nebenbei eine Wavelet-Analyse, also eine vollständige 
Aufspaltung der Eigenschaften der Strecke bezüglich des verwendeten 
Filters.)
Im Bedarfsfall den letzten Satz ignorieren. Oder google wavelet-analyse 
mit hochpass-filter bemühen, scheint zu gehen.


Hier werde ich mir die Source-Codes von wasser-erkennenden und damit das 
gegenüber dem „echten Finger“ ignorierenden Touchbutton-Routinen 
ansehen, auch wenn der Quelltext da (bei Cypress mal angesehen in PSOC 
Creator) tief verschachtelt ist und in Libraries vergraben.
Jedenfalls ist da immer auch eine Störsignal-Sicherheit drin.

Leider „kranken“ fertige Touchbuttons immer an Auto-Adapt, und für das 
absolute Messen möchte man ja gerade nicht ein Eliminieren eines 
langsamen Trends.
Man kann also maximal an deren Routinen lernen, wie sie etwa das 
Verhalten in verschiedenen Frequenzen messen, und das nur mit Pulsen und 
Zeitmessung.


Ich danke herzlich für die konstruktiven Inputs, auch wenn niemand auf 
die von mir ausgesuchte Messung analoger Signale mittels Pulsen ähnlich 
der in Touch-Button-Routinen zur Kapazitätsmessung verwendeten 
eingegangen ist.



Ich hoffe, dass die Rumpler hier genau sagen, was nicht verständlich 
ist, wenn ich schreibe, vielleicht auch nach dem zweiten Lesen, und 
bitte um präzises Feedback, wo es klemmt (statt stumpfsinniger 
Beleidigungen).

Wenn Innovatives, also neue Gedanken, immer so rigoros abgelehnt werden, 
wie hier überwiegend erfahren, nur wegen Formulierungsschwächen gar, 
oder weil das Einsatz-Szenario nicht „ankam“ als präzises Bild, gibt es 
eben keine Feedback-Kultur, das wäre ein schlimmes Symptom für MC net.

So weit ich weiß, hat jeder Microcontroller als einen Input-Mode eine 
Art Komparator, und mehr braucht es nicht.
Bleibt abzuwarten, wie sehr der dann rauscht.

Soweit ich weiß, hat noch niemand hier ein Projekt gemacht, wo man ohne 
weitere Bauteile den D/A oder A/D Wandler selbst gestaltet für eine 
Signal-Strecke.


Gruß!

Andi

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Irgendwas bringst Du völlig durcheinander. Ein kapazitiver Touchbutton 
detektiert keine Strahlung, sondern eine Wegänderung. Je geringer der 
Abstand, umso mehr Ladungen werden transportiert d.h. umso größer ist 
der Wechselstrom.

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


Lesenswert?

Andi H. schrieb:
> Dabei erhoffe ich mir mit Tricks mehr als 10-12 bit Auflösung.
Die Hoffnung stirbt zuletzt. Aber im Ernst: da wären ja alle anderen 
irgendwie dumm, wenn die statt eines RC-Glieds teure ICs kaufen.

> Soweit ich weiß, hat noch niemand hier ein Projekt gemacht, wo man ohne
> weitere Bauteile den D/A oder A/D Wandler selbst gestaltet für eine
> Signal-Strecke.
Ich habs getan: der DA-Wandler als PWM-Ausgang mit RC-Glied. Und der 
AD-Wandler so, wie früher die Joysticks am PC eingelesen wurden. Aber da 
hatte ich weder in die Linearität noch in die Langzeitkonstanz noch in 
die absolute Auflösung irgendwelche Hoffnungen gesetzt.

von Frank K. (fchk)


Lesenswert?

Andi H. schrieb:

> Ich hoffe, dass die Rumpler hier genau sagen, was nicht verständlich
> ist, wenn ich schreibe, vielleicht auch nach dem zweiten Lesen, und
> bitte um präzises Feedback, wo es klemmt (statt stumpfsinniger
> Beleidigungen).
>
> Wenn Innovatives, also neue Gedanken, immer so rigoros abgelehnt werden,
> wie hier überwiegend erfahren, nur wegen Formulierungsschwächen gar,
> oder weil das Einsatz-Szenario nicht „ankam“ als präzises Bild, gibt es
> eben keine Feedback-Kultur, das wäre ein schlimmes Symptom für MC net.

Mir kommt es so vor, als hättest Du eine Lösung und suchst ein Problem 
dafür. Du möchtest Signalverarbeitung möglichst analog und diskret 
machen. Kann man machen, muss man aber nicht. Im echten Leben entwickeln 
nur noch wenige Leute beispielsweise in Assembler, einfach weil es nicht 
mehr notwendig ist und man anders einfacher und schneller und damit 
billiger ans Ziel kommt. Genauso ist es in der Signalverarbeitung. Wo 
man früher aufwendige Filter abgestimmt hat, wird jetzt ein komplettes 
Frequenzband einfach digitalisiert - der Rest ist Software. 
Rechenleistung ist da, ADCs und DACs bis in den GHz-Bereich sind da, und 
es wird auch genutzt, weil man damit mehr Möglichkeiten hat, flexibler 
ist und schneller ans Ziel kommt, und das wiederum spart Geld.

Deine Gedanken und Deine Lösungsansätze sind nicht innovativ, sondern 
gehören eher ins letzte Jahrhundert, wo die technischen Möglichkeiten 
noch beschränkter waren. Aus diesem Grund erntest Du hier auch nur 
Kopfschütteln und Unverständnis.

fchk

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.