PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LED als Sensor und Anzeige



Jimmybot
06.09.2016, 18:02
Hallo Roboternetz-Gemeinde!

Da mir in diesem Thread (https://www.roboternetz.de/community/threads/69470-LED-als-Sensor-ADC_Messung-funktioniert-nur-wenn-ein-Multimeter-angeschlossen-ist) geholfen wurde und darauß eine kleine Diskusion entstanden ist, wie man die LED als Sensor und sowohl auch als Anzeige nutzen kann, möchte ich euch an meinen Erkennnissen teil haben.
Da dort das Eigentliche Thema erledigt ist (das Problem mit dem "Multimeter-Pulldown"), fange ich hier ein neues an.

Ziel ist es, dass man eine LED als Anzeige und als Sensor benutzen kann.
- Erster Schritt: eine einzelne LED benutzen.
- Zweiter Schritt: in einer Matrixschaltung von 3x3 LEDs
- Dritter Schritt: mal schauen wie größ man bauen kann.

Den ersten Schritt habe ich zu 90% geschafft und dabei viel Wissen gesammelt.
Dabei habe ich festgestell, dass man eine "normale" LED man nicht nutzten kann, da die Kapazität der LED einem beim umschalten vom Leuchtbetrieb zum Sensorbetrieb die Messung verfälscht.
Die LED über an Transistor gegen Masse zu schalten und zu entladen hatte nicht funktioniert.

Ich habe aber festgestellt, dass zwei getrennte LEDs problemlos funktionieren. Eine als Sensor und eine als Anzeige. War aber nicht Ziel des ganzen, doch zwei LEDs zu benutzen. War kurz davor das mini Projekt wegen nicht Umsetztbarkeit aufzugeben. Dann kam mir eine kleine Idee.

Die Kathoden der LEDs sind ja über GND miteinander verbunden. Also kann man doch eine Duo-LED mit gemeinsamer Kathode nutzen.
Für Testzwecken wollte ich mir keine 18Cent + Verandkosten aus geben und habe mir dann eben eine eigene Bastelt:
31995

Dabei hat sich die Schaltung einwenig geändert:

31996



Software angepasst und das Ganz läuft:

Helle Umgebung:
31997

Dunkle Umgebung:
31998


Was muss noch gemacht werden:
- Mit einer richtigen Duo-LED testen.
- Ein Zitterverhalten beim übergang von Hell zu Dunkel beseitigen.




PS:
warum dreht das Forum meine Bilder auf die Seite?

oberallgeier
06.09.2016, 19:33
.. wie man die LED als Sensor und sowohl auch als Anzeige nutzen kann, möchte ich euch an meinen Erkennnissen teil haben ..Schöne Arbeit. Vermutlich kennst Du ja die ähnlichen Umsetzungen von mic/radbruch, der das hier (https://www.roboternetz.de/community/threads/51672-LED-als-Sensor) (drittes Posting) erwähnt und ausführlich hier (https://www.roboternetz.de/community/threads/50954-Ping-Pong-umprogrammieren?p=495721&viewfull=1#post495721) beschreibt. Gerade mit der LED-Matrix gibts ja hübsche Spielchen von ihm.

Jimmybot
06.09.2016, 21:28
Die Methode von radbruch kenne ich. Habe sogar damit meine erste Versuche gemacht. Ich wollte aber einen analogen Spannungswert haben und mir war diese Methode zu langsam. Der ADC vom Atmega8 scheint mir bis jetzt immer noch die schnellste Lösung zu sein.

Peter(TOO)
07.09.2016, 09:08
Hallo,

Dabei habe ich festgestell, dass man eine "normale" LED man nicht nutzten kann, da die Kapazität der LED einem beim umschalten vom Leuchtbetrieb zum Sensorbetrieb die Messung verfälscht.
grundsätzlich geht das schon. Allerdings muss man dabei das Timing des MUX und des ADC synchronisieren.

Zudem macht es einen Unterschied ob man erst die Sensormessung macht und dann die LED einschaltet oder umgekehrt. Im ersteren Fall hat man die maximale Zeit um das C zu entladen.
Vergessen darf man dabei nicht, dass das Schalten des MUX Störungen erzeugt, da muss man zeitlich etwas Abstand halten, zwischen dem Umschalten und der Messung, sonst misst man nur die Störspitzen.

Ideal ist es, wenn man sich das auf einem Oszilloskop ansehen kann!

Meine ersten Versuche, das muss auch über 30 Jahre her sein, für einen MUX für 7-Seg Anzeigen hatte das Problem, das ein Glimmen auf dem nächsten Modul entstand.
Der Fehler war es, einfach die neuen Werte in die Ausgangsregister zu schreiben. Dabei lagen dann für etwa 2µs die alten Werte am nächsten Modul an. Das kann man recht gut sehen!

Also erst alle Segmente ausschalten, dann den MUX umschalten und dann die neuen Werte für die Segmente ausgeben. Dann ist es auch optisch sauber!

MfG Peter(TOO)

- - - Aktualisiert - - -

Fast vergessen:
Je nachdem wie das Timing ist, kann man verschiedene Korrekturwerte verwenden, je nach dem ob die LED eingeschaltet war oder nicht.

Jimmybot
08.09.2016, 16:53
Hallo,

grundsätzlich geht das schon. Allerdings muss man dabei das Timing des MUX und des ADC synchronisieren.

[...]

Ideal ist es, wenn man sich das auf einem Oszilloskop ansehen kann!

[...]

MfG Peter(TOO)

- - - Aktualisiert - - -



Aber ich wechsel ja nicht den ADC-Eingang. Daher denke ich, dass ich die Zeit bei wie lange das Wechseln des Mux dauert, hier vernachlässigen kann.

Aber ich werde mal bei gelegenheit einfach mal auf Arbeit mal mit dem Oszi dran gehen. Vielleicht ergibt sich da ein genaueres Bild, beim Wechsel von Leuchtbetrieb in Sensorbetrieb.

Jimmybot
07.10.2016, 16:11
So... Ich habe es mal geschaft mir ein paar Minuten auf der Arbeit zu nehmen und ein Oszilloskop an die eine LED anzuschließen.

Kanal 1 (gelb) Kathode der LED
Kanal 2 (blau) Spannung am ADCeingang

Spannungen bei unbeleuchtet:
32090

Bei halb beleuchtet:
32092

Volle Beleuchtung:
32091

Verhält sich halt wie ein Kondensator.
Dabei muss erwähnt werden, dass wenn die LED im Leuchtbetrieb ist und die Kathode auf low geschaltet ist, dass der Collector vom Verstärkertransistor keine Spanung hat. Daher liegt zu diesem Zeitpunkt low am ADCeingang.



Was muss noch gemacht werden:
[...]
- Ein Zitterverhalten beim übergang von Hell zu Dunkel beseitigen.


Check... erledigt. Es werden jetzt 50 Messungen gemacht und daraus der Mittelwert gebildet. Dabei gehen halt ausreißer unter, die für das Zittern verantwortlich sind.

Peter(TOO)
08.10.2016, 09:17
Und wie genau sieht die Schaltung dazu aus?

PICture
08.10.2016, 09:55
Hallo!


- Ein Zitterverhalten beim übergang von Hell zu Dunkel beseitigen.

Das könnte man am einfachsten per Komparator mit Histerese machen (z.B. Schmitt Triger aus zwei Transistoren). ;)

Jimmybot
10.10.2016, 18:20
Hallo!



Das könnte man am einfachsten per Komparator mit Histerese machen (z.B. Schmitt Triger aus zwei Transistoren). ;)

Das einfachste übersieht man aber zu schnell :-b Werde ich versuchen softwareseitig realisieren.



Peter(TOO)
Und wie genau sieht die Schaltung dazu aus?



32115

Da mein Oszilloskop nur 1 Mohm Eingangswiderstand hat, habe ich die Schaltung über einen Impedanzwandler entkoppelt. Habe ich aber nicht mit gezeichnet, da man dafür die Schaltung im jedem Tabellenbuch findet.

Kurze Erklräung:
ADC-Eingang führt zum µC und dort wurde nach dem Impedanzwandler gemessen.
Beim Leuchten liegt an der Basis von T1 High und T2 Low an. Zudem wird die Kathode von der LED über den Controller auf Low geschaltet.
Beim Sensorbetrieb wird die Basis von T1 mit Low versorgt und Basis von T2 mit High. Zeitgleich liegt die Kathode auf High.

Kanal 1 (gelb) wurde an der Kathode gemessen und Kanal 2 (blau), wie oben erwähnt, am Pin vom ADC-Eingang des Controller

Peter(TOO)
11.10.2016, 00:20
Grundsätzlich ist das so ja kein Problem, du musst die Spannung nur kurz vor dem Einschalten messen.

Aber ich verstehe nicht, wie du mit diese Schaltung erweitern willst um multiplexen zu können?

Jimmybot
11.10.2016, 20:00
Die Matrixschaltung würde dann so aussehen:
32119
Die LED mit gemeinsamer Kathode sind natürlich in einem Gehäuse.

Dabei ist der Leuchtbetrieb deutlich einfacher zu steuern als der Sensorbetrieb.
Da Kathode-Steuerung für die Zeile gilt und die Anoden-Steuerung für die Spalte.

Im Sensorbetrieb muss natürlich ein wenig umgedenkt werden.

Die Anode der LED, die leuchten für das Leuchten ist, wird dabei auf low geschaltet (T19, T20 und T21)
Die Spaltenfunktion über nehmen die Transistoren T1 bis T9. Dabei sind die LEDs einer Zeile zusammen auf einen ADC-Eingang.

Beispiel:
Wird nun nur T1 High angesteuert (und somit auch T4 und T7) kann T12 den Fotostrom von der LED 1 verstärken. Da aber T2 und T3 Low angesteuert werden, können T11 und T10 den Fotostrom ihrer LED nicht verstärken, so das auf der Leitung zum ADC nur das analoge Signal der LED 1 liegt.
Somit kann ich dann in der 1. Zeile die LEDs nacheinander erfassen und dann in der nächsten Zeile fortfahren.
Wobei ich wahrscheinlich eine Zeile auslesen werde und dann für eine gewisse Zeit in den Leuchtbetrieb wechsel, dann erst die nächste Zeile erfasse, damit man kein flackern merkt.

Peter(TOO)
11.10.2016, 21:10
So etwas hatte ich befürchtet :-(
Das funktioniert so nicht wirklich.

Wenn T1 sperrt liegt in Serie zu LE1 immer noch die BE-Strecke von T12.
Bei gesperrtem T2 sind es LE4 und BE-Strecke von T11
T3 ist leitend und T10 wirkt als Stromverstärker.

Durch R23 fliesst dann der Strom:
ILD1 + ILD4 + (ILD7 * hFET10)

Wird jetzt LD1 stark beleuchtet und LD7 ist im Dunkeln, misst du Mist.

MfG Peter(TOO)

Jimmybot
11.10.2016, 21:35
[...]
Das funktioniert so nicht wirklich.

[...]
Durch R23 fliesst dann der Strom:
ILD1 + ILD4 + (ILD7 * hFET10)

Wird jetzt LD1 stark beleuchtet und LD7 ist im Dunkeln, misst du Mist.

MfG Peter(TOO)

hmm... Ja... Stimme ich so zu und habe ich auch verstanden, warum es nicht klappen könnte.

Aber ich dachte, dass die Ströme von LD1 und LD4 zusammen im Verhälnis zu LD7 vernachlässig werden können.
Da der Strom von LD7 100 bis 200 fach größer ist.

Dann wäre ja die Lösung, jede LED einzeln an einen ADC-Eingang zu hängen.
Hätte ich dann da nicht das selbe Problem beim Multiplexer vom Controller bzw. bei einem 74HC4051 (http://cdn-reichelt.de/documents/datenblatt/A240/74HC4051_74HCT4051_SMDHC4052%23PHI.pdf) (haben schon einwenig weiter gedacht)?

Peter(TOO)
11.10.2016, 22:23
Aber ich dachte, dass die Ströme von LD1 und LD4 zusammen im Verhälnis zu LD7 vernachlässig werden können.
Da der Strom von LD7 100 bis 200 fach größer ist.)
Wichtig ist der minimale zum maximalen Strom.
Ich lese aus deinen AUfnahmen 0.7V bei Dunkel und 4.4V bei Hell an den 2M.
Das wären 350 nA und 2 µA.
Allerdings ergeben sich die 4.4V aus der Sättigung, der Strom dürfte sicher um einiges höher liegen.


Dann wäre ja die Lösung, jede LED einzeln an einen ADC-Eingang zu hängen.
Hätte ich dann da nicht das selbe Problem beim Multiplexer vom Controller bzw. bei einem 74HC4051 (http://cdn-reichelt.de/documents/datenblatt/A240/74HC4051_74HCT4051_SMDHC4052%23PHI.pdf) (haben schon einweni weiter gedacht)?
Die Leckströme des Multiplexer liegen bei <1 µA.

Leider habe ich gerade keine Zeit zum basteln, aber es muss auch eine Lösung mit nur einer LED und wenig Material geben.

MfG Peter(TOO)

Jimmybot
12.10.2016, 20:07
[...]

Leider habe ich gerade keine Zeit zum basteln, aber es muss auch eine Lösung mit nur einer LED und wenig Material geben.

MfG Peter(TOO)

Mir fällt jetzt nur ein MOSFET als verstärker ein.
Ich habe aber nur einen hier zum testen. Diesen hier: LU3114Z (http://www.datasheet.hk/view_download.php?id=1230788&file=0105\irlu3114zpbf_1094831.pdf).

Laut Datenblatt hat er ein IGSS von max. 100nA.
Habe ihn mal in die Schaltung eingesetzt und bin noch am testen.

Peter(TOO)
13.10.2016, 02:31
Mir fällt jetzt nur ein MOSFET als verstärker ein.
Ich habe aber nur einen hier zum testen. Diesen hier: LU3114Z (http://www.datasheet.hk/view_download.php?id=1230788&file=0105\irlu3114zpbf_1094831.pdf).
Aha, gehst du auch mit dem 40-Tönner Kaugummi holen?

Das ist ein 100A Typ, der hat viel zu grosse Kapazitäten, sind so einige nF.

MfG Peter(TOO)

Jimmybot
29.08.2017, 21:41
Sorry, dass ich solange nicht daran weiter gearbeitet habe. Meine Lebensumstände haben eine glückliche Änderung erhalten, welches mich noch ein paar Jahrzehnte begleiten wird.

Back to Topic:

Die 3x3 Matrix funktioniert mittlerweile "gut".
Was nicht so will, ist dass die Matrix mit Umgebungslicht arbeitet.
Beleuchtet man nun die Matrix mit mehr Licht, funktioniert diese doch zufrieden stellend.

Nun habe ich einwenig mehr Arbeit investiert, als man glaube ich für ein "Try and Error "-Projekt machen sollte:
32838
LED 3, 6 und 9 sind die LEDs in der rechten Spalte. Diese habe ich beim Screenshoot direkt beleuchtet, wärend die anderen LEDs das Umgebungslicht bekommen.

32839
Bekommt jetzt LED6 Schatten sieht man deutlich den Spannungs unterschied.

Die Software lässt erahnen welche Daten ich noch aus der Schaltung gewinnen will.

Was ich noch machen will:
- Langzeitdaten anzeige.
- LED ON/OFF anzeige in der Software.
- Schaltung abspecken (habe da ein wenig Potential zum abspecken gefunden).
- Matrix vergrößen (mehr LEDs).


PS
Ein Bild von der Schaltung mache ich später. Ich benutze mein Handy um die LED zusätzlich zu beleuchten und habe gerade keine zusätzlich Kamera zuhand.