Forum: Mikrocontroller und Digitale Elektronik LED zur Helligkeitsmessung - ADC Spannungsmessung


von PBeck (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

mikrocontroller.net hat mir bisher allein durch die Suche und das Wiki 
immer sehr gut weitergeholfen - danke schonmal dafür :). Bisher habe ich 
kleine Projekte immer in Bascom abgewickelt und versuche mich derzeit an 
C.

Aus diesem C lernen ist dann eine kleine Aufgabe erwachsen die folgendes 
lösen soll:

Eine handelsübliche LED ist an einem ADC Port eines MC angeschlossen 
(auf GND) und soll bei Verdunklung der LED leuchten. Das interessante 
ist nun, dass die LED leuchten und die Helligkeit über die Spannung an 
der LED messen soll.

Die Idee kam dabei auch noch von dieser Seite wo es eigentlich 
funktioniert: 
http://studentimurlaub.wordpress.com/2009/12/29/ein-weihnachtsgeschenk-2009/

Daraus ist dann das C-Programm im Anhang entstanden. Theoretisch hat das 
auch funktioniert, jedoch war der Bereich für volle Beleuchtung und 
dunkelheit relativ schmal (deshalb ist light und dark auch 
auskommentiert - Werte habe ich zum Spielen nach oben und unten 
verändert). Manchmal war die LED auch einfach aus oder hat auch mal 
geflackert. Hat für mich im ersten Moment nach einer Fehlmessung 
ausgesehen.

In dieser Woche ist nun ein Arduino Nano angekommen und ich wollte die 
Messung mit diesem Wiederholen (USB-Schnittstelle und Serielles 
Interface).

Daraus ist dann der Sketch im Anhang entstanden. Sendet man per Terminal 
1 wird die LED angeschaltet, 2 wird sie ausgeschaltet und mit 3 wird auf 
Input umgeschaltet und die Spannung ausgelesen. Dort habe ich als 
Ausgabe sehr schwankende Werte bekommen:
1
0.39
2
1.39
3
1.30
4
1.40
5
1.35
6
0.14
7
0.00
8
0.47
9
0.00
10
0.00
11
0.97
12
1.37
13
0.00

Am ADC liegt es auf jedenfall nicht (auf GND oder 5V kommen stabile 
Werte heraus). Das bedeutet dann, dass nur die LED als Störquelle in 
Betracht kommen kann. Ist es schlicht und einfach nicht möglich die LED 
so zu messen?

Zur Referenz:

Im MC Wiki wird die LED an einen digitalen Input geschalten und dann die 
Zeit gemessen bis die interne Kapazität (kann womöglich genau mein 
Problem sein) in der LED entladen ist:
http://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor

Ist wie ich finde eigentlich eine nette Aufgabenstellung. Womöglich hat 
von euch noch jemand eine Idee an was es liegen könnte.

Danke und Gruß

Patrick

von Ulrich H. (lurchi)


Lesenswert?

Die Helligkeit der meisten Lampen Schwankt im 100 Hz Takt. Das könnte 
die LED trotz der hochohmigen Messung noch mit bekommen. Für eine 
zuverlässige Messung sollte man da also wenigstens 2 Messungen im 5 ms 
Abstand machen, besser 4 Messungen, um auch 50 Hz zu unterdrücken.

von Martin S. (led_martin)


Lesenswert?

Hallo,

die Spannung an einer unbelasteten LED zu messen ist wenig sinnvoll, wie 
bei einer Fotodiode ist die Leerlaufspannung recht nichtlinear zur 
Helligkeit, ausserdem steigt die Spannung, ab einer gewissen Helligkeit, 
nicht mehr nennenswert an. Der Fotostrom einer LED ist recht gering, das 
macht Messungen im Quasi-Kurzschlussbetrieb schwierig, aber nicht 
unmöglich. Der Charme der Zeitmessungs-Methode, wie sie im Netz öfters 
beschrieben wird, liegt in ihrer Einfachheit, man braucht halt nur eine 
LED, zwei digitale Mikrocontroller-Ports, und einen Vorwiderstand (Wenn 
die LED auch leuchten soll). Man kann das Verfahren aber auch zur 
Messung mit dem A/D-Wandler umbauen, der Ablauf ist dann so: Die LED in 
Sperrichtung 'laden' (Wie bei der Zeitmessungs-Methode), dann den Port 
mit dem Analogeingang auf 'Eingang' stellen, eine definierte Zeit warten 
(Belichtungszeit), und dann die A/D-Wandlung starten. Fällt kein Licht 
auf die LED, misst man die Spannung, mit der die LED geladen wurde, 
fällt Licht auf die LED, hat sie sich, wärend der 'Belichtungszeit' mehr 
oder weniger entladen, und der gemessene Wert ist anders. Angeschlossen 
wird die LED mit einer Seite an einen Port, der immer auf Ausgang 
geschaltet ist, hier muss auch nur zwischen 'messen' und 'leuchten' der 
Logikpegel umgeschaltet werden, gemessen wird ja bei Spannung in 
Sperrrichtung. Die andere Seite der LED kommt an einen Port, der sowohl 
Digital-Ausgang, als auch Analog-Eingang sein kann. Hat der verwendete 
Mikrokontroller diese Möglichkeit nicht, muß hier ein Digital-I/O-Port, 
und ein Analogeingang parallel mit der LED verbunden werden. Diese 
Methode hat übrigens, gegenüber der Zeitmessung, den Vorteil, daß die 
Messzeit nicht von der Helligkeit abhängig ist. Mann kann, mit dem 
A/D-Wandler, auch mehrmals abtasten, und so einen HDR-Modus realisieren 
(High Dynamic Range). Ich habe das, was ich hier schreibe, schon selbst 
mal ausprobiert.

Mit freundlichem Gruß - Martin

von MaWin (Gast)


Lesenswert?

PBeck schrieb:
> Womöglich hat von euch noch jemand eine Idee an was es liegen könnte.

zumiondest gibt es unterschiedliche Lösungen

 http://www.merl.com/reports/docs/TR2003-35.pdf
 http://electronicdesign.com/lighting/single-led-takes-both-light-emitting-and-detecting-duties
 http://www.eeweb.com/blog/extreme_circuits/using-led-as-a-light-sensor 
(800MOhm/2V erfassen)
 http://reaktivlicht.de/ (Sperrschichtkapazität einer LED durch 
Photostrom entladen, funktioniert wohl nicht: 
Beitrag "LEDs als Lichtsensoren funktionieren nur teilweise")

welche davon zufriedenstellend funktioniert...

von Patrick B. (pbeck)


Lesenswert?

Hallo,

danke für eure Antworten. Ich versuche das nun mal Schrittweise 
aufarbeiten ;)

@ Ulrich

Ich habe das nun folgendermaßen beim Arduino umgesetzt
1
    val = analogRead(led);
2
    delay(5);
3
    val2 = analogRead(led);
4
    delay(5);
5
    val3 = analogRead(led);
6
    delay(5);
7
    val4 = analogRead(led);

Die 4 Messungen die ausgegeben werden sind exakt gleich. Allerdings habe 
ich dann mal was anderes ausprobiert und meine Halogentischlampe direkt 
auf die LED gerichtet (mit 5 mm Abstand). Danach waren die 0.00 
Messungen nicht mehr da.

@ Martin

Danke für deinen recht ausführlichen Beitrag. Die Lösung werde ich am 
Wochenende mal ausprobieren. Im ersten Schritt wäre mir eine nicht 
lineare Kennlinie erstmal egal. Was ich gerade nicht verstehe ist, dass 
ich teilweise auch Messungen mit dem Wert 0 habe. Auch wenn ich an der 
LED nichts verändere (nicht Input oder Output verändern oder LED an oder 
ausschalten, sondern nur auf Input und messen)

Weißt du wie das intern in der LED funktioniert bzw. die Kapazität 
geladen / entladen wird?

Was hast du mit dem HDR-Modus gemeint? Bzw welche Vorteile würden sich 
daraus ergeben?

@ MaWin

Die Beiträge basieren soweit ich das gesehen habe, alle auf der Lösung 
mit zwei Ports (digitale) oder nutzen die LED nur rückwärts als 
Helligkeitssensor.



@ All

Im Allgemeinen versuche ich die Thematik auch zu verstehen, weil die 
gleiche Technik auch in der Solarindustrie zur Qualitätssicherung von 
Solarmodulen genutzt wird. Werden Solarzellen beleuchtet, erzeugen sie 
Energie. Wird an eine Solarzelle eine Spannungsquelle angeschlossen, 
leuchtet diese im, für den Menschen, nicht sichbaren Bereich 
(Elektrolumineszenz, wobei ich mich gerade Frage ob das der UV-Bereich 
ist?)

Womöglich ist auch noch wichtig, dass ich es bisher mit einer gelben 
(5mm Bauform rund), grünen (flach) und roten (flach) LED versucht habe.

Danke und Gruß

Patrick

von Martin S. (led_martin)


Lesenswert?

@Patrick B. (pbeck):

Hallo,

weißt Du, wie eine Fotodiode betrieben wird? Eine LED ist im Prinzip 
auch eine Fotodiode, da sie eine Diode ist, deren PN-Übergang dem Licht 
ausgesetzt werden kann. Früher gab es mal SI-Gleichrichterdioden im 
Glasgehäuse, das mit einem schwarzen Lack überzogen war, hat man den 
Lack entfernt, wurde aus einer solchen Gleichrichterdiode eine 
Fotodiode. Das besondere an Fotodioden ist, daß sie für die Erfassung 
von Licht optimiert sind. Eine LED ist eher eine schlechte Fotodiode, 
aber besser als diese Gleichrichterdioden im Glasgehäuse. Bei Fotodioden 
unterscheidet man verschiedene Betribsarten:  Man kann sie, ohne Zufuhr 
von elekrischer Energie, an einer Last (z.B. ohmscher Widerstand) 
betreiben. Wenn die Spannung deutlich unter der Leerlaufspannung bleibt, 
ist die Spannung an dem Lastwiderstand ein Maß für die Lichtmenge. So 
waren früher Belichtungsmesser für die Fotografie oft aufgebaut, eine 
(großflächige) Fotozelle = Fotodiode, und als Last ein 
Drehspulinstrument. Solche Belichtungsmesser brauchten keine Batterie. 
Hält man die Spannung an der Fotodiode auf Null, und misst den 
fließenden Strom, ist die Linearität viel besser (Siehe 
Transimpedanzverstärker: 
http://de.wikipedia.org/wiki/Transimpedanzverst%C3%A4rker). Hier kann 
man dann auch den Widerstand, in der Rückführung, so wählen, daß man 
eine vernünftig auswertbare Spannung bekommt, die höher als die 
Leerlaufspannung der Fotodiode sein kann. Legt man an die Fotodiode eine 
Spannung in Sperrrichtung an, fließt ebenfalls ein Strom, der dem 
Lichteinfall gut proportional ist. Diesen Fall hat man bei der von mir 
beschriebenen Methode. Dabei macht man sich zusätzlich zunutze, daß die 
LED eine Kapazität hat (Also wie ein, sehr kleiner, Kondensator). Man 
läd die Kapazität, zu Beginn der Messung, auf eine bekannte Spannung 
auf, wird die externe Spannung weggenommen (Port auf Eingnag schalten) 
entläd der Fotostrom diese Kapazität, Je höher der Fotostrom ist, um so 
schneller geht das.

Was Du machst, ist, daß Du die LED, die vorher möglicherweise geleuchtet 
hat, einfach abschaltest, da lag also vorher eine Spannung in 
Flussrichtung vor, also die gleiche Polarität, wie die Leerlaufspannung, 
wenn die LED als Fotozelle arbeitet. Dann machst Du die Messungen mit 
dem A/D-Wandler. Der Haken an der Sache ist, daß Du keine definierte 
Last vorliegen hast. Der A/D-Wandler ist, im Wesentlichen, eine 
kapazitive Last, Problem ist, das der Ladezustand dieser Kapazität 
beliebig sein kann. Die Kapazität der LED ist aber nicht so viel höher, 
so stellt sich halt erstmal eine Spannung ein, die sich aus dem 
Ausgleich der gespeicherten Ladungen ergibt, aber nicht der Helligkeit 
entspricht. Eine Verbesserung wäre, zwischen den Messungen der einzelnen 
Kanäle immer erst mal auf einen A/D-Eingang zu schalten, der fest an 
Masse gelegt ist, dann hätte jede Messung die gleiche Ausgangsituation. 
Ausserdem solltest Du zwischen dem Umschalten der Kanäle 
(ADMUX-Register), und dem starten der A/D-Wandlung etwas warten, damit 
die Ausgleichsvorgänge abgeschlossen sind. Ein Widerstand als definierte 
Last für die LED im Fotozellenbetrieb wäre auch ein Versuch wert, 100k 
.. 1M über jede der LEDs, beim leuchten lassen der LED stört ein so 
hochohmiger Widerstand nicht.

Oder halt doch mal das mit dem laden der LED, und der Zeitmessung 
probieren ...

Übrigens reagiren LEDs die langwelliges Licht aussenden, also Rote, 
Gelbe, Orangene meistens besser auf Licht, als Grüne und Blaue (Weiße 
sind ja Blaue mit einer Leuchtstoffschicht). Bei Grünen gibt es ja 
verschiedene Materialien, da gehen Die mit kleineren Durchlassspannungen 
besser.

(Jetzt sollte ich aber endlich mal ins Bett!)

Mit freundlichem Gruß - Martin

: Bearbeitet durch User
von Patrick B. (pbeck)


Lesenswert?

Hallo Martin,

das hast dich aber ins Zeug gelegt :) Sorry für die späte Antwort. Die 
Woche war lang :)

Zum Aufbau noch eine Anmerkung:

ADC PIN - 270 Ohm Widerstand - Diode => (Flussrichtung) - GND

Versuchsweise habe ich auch mehrmals nur eine ADC-Messung durchführen 
lassen (bereits beim Start den ADC-Pin auf Input geschalten). Eine 
Wartezeit (wie auch von oben die 5 ms) haben keine 
Messwertsstabilisierung erbracht.

Wurden bei den Belichtungsmessern die SI-Gleichrichter in Sperrrichtung 
oder in Durchlassrichtung geschalten?

Wie erwähnt ist für mich der Effekt bei Photovoltaikzellen interessant 
und die Frage ist ob dieser übertragbar ist.

Was ich mir als nächstes anschaue ist die Flussrichtung der LED - 
wahrscheinlich ist wie du bereits beschrieben hast nur eine Messung in 
Sperrichtung stabil genug.

Grüße Patrick

von my2ct (Gast)


Lesenswert?

Martin Schlüter schrieb:
> Wenn die Spannung deutlich unter der Leerlaufspannung bleibt,
> ist die Spannung an dem Lastwiderstand ein Maß für die Lichtmenge. So
> waren früher Belichtungsmesser für die Fotografie oft aufgebaut, eine
> (großflächige) Fotozelle = Fotodiode, und als Last ein
> Drehspulinstrument.

Da geht einiges durcheinander. Das Drehspulinstrument stellt bei den 
Dingern eine niederohmige Last dar und zeigt den Strom an. Das ergibt 
sich alleine aus dem Funktionsprinzip eines Drehspulinstumentes, wo 
durch den Strom ein proportionales Magnetfeld erzeugt wird, dass 
wiederum zusammen mit einem Permanentmagneten eine dazu proportionale 
Kraft erzeugt, die gegen die Kraft der Rückholfeder den Zeiger 
ausschlagen läßt. Das Photoelement läuft also (ziemlich) im 
Kurzschlußbetrieb.

Und die Dinger zeigen auch keine "Lichtmenge" an. Lichtmenge ist ein 
integraler Wert über die Zeit und den Lichtstrom und wurde in Schilda in 
Säcken ins Rathaus getragen ;-)

von Martin S. (led_martin)


Lesenswert?

Hallo, ich war jetzt eine Weile nicht hier unterwegs.

my2ct schrieb:
> Da geht einiges durcheinander.

Da trägst Du ja dick auf, ohne neues Wissen, oder gar für den TO 
nützliche Informationen zu liefern. Der Begriff 'Lichtmenge' war 
natürlich schlecht gewählt, aber wenn Du dich ein Bisschen umhörst, 
wirst Du schnell merken, das sich die wenigsten Menschen immer korrekt 
ausdrücken, trotzdem aber meistens verstanden werden, das menschliche 
Gehirn ist da eine tolle Wundermaschine, also kann man sich solche 
Spitzfindigkeiten hier sparen. Daß ich diese einfachen Belichtungsmesser 
nicht dem Zustand 'Kurzschlussbetrieb' zuordne, ist durch eigene 
Erfahrung begründet: Ich habe solche Geräte schon zerrupft, um die 
Komponenten für eigene Basteleien zu verwenden, und so niederohmig waren 
diese Drehspulinstrumente nicht. Da habe ich schon mal 0,1V Spannung 
über den Anschlüssen gemessen, für Vollausschlag. Gegenüber den 0,35V .. 
0,4V Leerlaufspannung eines Silizium-Fotoelements ist das, für mich, 
kein Kurzschlussbetrieb mehr. Natürlich misst ein Drehspulinstrument, 
physikalisch betrachtet, den Strom, es hat aber auch einen ohmschen 
Widerstand. Schade, daß Manche vorallem hier posten, um die Beiträge 
Anderer zu zerpflücken, die sich bemühen dem TO zu helfen. Auffällig 
ist, daß es sich fast immer um Gäste handelt, oder vielleicht ja nur um 
ein paar Wenige, die mit vielen Namen hier auftreten. Vielleicht sollte 
doch mal ein genereller Anmeldezwang eingeführt werden.


Nun aber zu dem eigentlichen Thema:

Patrick B. schrieb:
> Wurden bei den Belichtungsmessern die SI-Gleichrichter in Sperrrichtung
> oder in Durchlassrichtung geschalten?

Die Spannung einer Fotozelle, und auch Die einer Solarzelle, was ja 
prinzipiell das Gleiche ist, baut sich, bei Beleuchtung, in 
Durchlassrichtung auf. Deshalb braucht man ja auch eine 
Entladeschutzdiode, wenn man ein Solarmodul mit einem Akku verbindet, 
damit sich der Akku, nachts, nicht über die, in Durchlassrichtung 
liegenden, Solarzellen entläd. Will man mit einer Fotodiode messen, 
indem man eine externe Spannung anlegt, schaltet man die Fotodiode in 
Sperrrichtung.

Bei Deinem Aufbau,

Patrick B. schrieb:
> ADC PIN - 270 Ohm Widerstand - Diode => (Flussrichtung) - GND

bekommst Du also eine, gegen GND, positive Spannung, wenn Licht auf die 
LED fällt. Wenn Du den Analog-Multiplexer (ADMUX-Register) nicht 
umschaltest, und dann, in festen Zeitabständen, wiederholt misst, 
schwanken die Werte dann auch so stark?

Hast Du schon mal probiert, einen hochohmigen Widerstand parallel zur 
LED anzuschließen?

Für die Messung in Sperrichtung müsstest Du die Schaltung umbauen, da Du 
ja, zum Messen, die Kathode der LED an VCC legen musst, zum leuchten 
lassen der LED aber wieder an GND, so wie es jetzt fest verdrahtet ist. 
Das umschalten der Kathoden könnte man für alle 4 LEDs gemeinsam machen, 
muß dann aber darauf achten, daß man den Portpin nicht überlastet, oder 
eventuell eine Treiberstufe dazwischenschalten. Falls noch genügend Pins 
frei sind ist es das Einfachste, für jede LED einen eigenen Pin zu 
verwenden.

Patrick B. schrieb:
> Wie erwähnt ist für mich der Effekt bei Photovoltaikzellen interessant
> und die Frage ist ob dieser übertragbar ist.

Photovoltaikzellen, Fotodioden, und auch LEDs haben, was diese 
Anwendungen anbelangt, ähnliche Eigenschaften, sie sind halt für 
verschiedene Anwendungen optimiert, bei Photovoltaikzellen muß natürlich 
stark auf den Preis optimiert werden, vergleiche mal den Preis einer 
Photovoltaikzelle, mit einigen 10cm² Fläche, mit dem Preis einer 
Fotodiode, mit einigen mm² Fläche. Da leiden dann auch die Eigenschaften 
drunter. Wenn der Preis keine Rolle spielt, kann man Fotodioden als 
hochwertige Solarzellen nutzen, z.B. um kleine Blink-Gimmiks zu bauen, 
die sich alleine aus dem Tageslicht mit Strom versorgen.

Mit freundlichem Gruß - Martin

von Patrick B. (pbeck)


Angehängte Dateien:

Lesenswert?

Hatte heute mal wieder eine Stunde Zeit und habe das Thema noch ein 
bisschen untersucht.

Ob die LED in Sperr- oder Durchlassrichtung betrieben wird, ist dem ADC 
egal. Die Messwerte sind unstetig (Öfters mal 0V Messungen). Direkt auf 
eine Spannung oder einen Spannungsteiler, wird korrekt gemessen.

Wird z. B. ein 10k Widerstand parallel geschaltet bleibt die Ausgabe bei 
0V.

Im Anhang noch ein Bild vom Aufbau (LED ist hier in Durchlassrichtung).

Die Messwerte werden stabil, wenn ich die LED mit einer Taschenlampe aus 
ca. 10 cm Entfernung anleuchte. Gehe ich näher ran wird der Wert höher. 
Allerdings nur im Bereich 1.35 V - 1.65 V. Gehe ich weiter weg flackert 
der Wert direkt wieder. Hier habe ich dann die LED auch mal wieder 
gedreht (Durchlass- und Sperrichtung) und habe die selben Ergebnis 
erhalten.

Im Anhang ist auch noch das aktuelle Sketchfile. Wie oben angemerkt 
mache ich 4 Messungen im Abstand von 5 ms, damit sollten Störungen durch 
die Beleuchtung auch sichtbar sein - jedoch sind die 4 Messwerte immer 
identisch.

Mittlerweile glaube ich, dass es schlicht und ergreifend so nicht geht 
:).

Grüße Patrick

von J. T. (chaoskind)


Lesenswert?

Versuchs mal mit nem deutlich größeren Widerstand, die Photoströme von 
solchen LEDs sind ja nicht allzuhoch, dein ADC löst bei 8bit ja grad mal 
20mV auf, evtl langt das nicht mit 10k, bei 1MOhm oder größer sollte da 
schon mehr abfallen.

Ansonsten kann ich dir auch nur noch empfehlen, mit dem Komparator und 
nem Timer die Zeit zu messen, die für eine bestimmte Spannungsänderung 
benötigt wird.
Die Zeit hängt ja von der Kapazität und der gespeicherten Ladung ab.

MfG Chaos

: Bearbeitet durch User
von spess53 (Gast)


Angehängte Dateien:

Lesenswert?

Hi

>Mittlerweile glaube ich, dass es schlicht und ergreifend so nicht geht
>:).

Wahrscheinlich nicht. Ich habe heute mal die Intensität einer UV-Röhre 
gemessen. Einmal ein UV-Sensor ML8511 (Kurve oben) und als Vergleich 
eine KP-3216UVC UV-Led + Transipedanzverstärker (Kurve unten). Passt 
ganz gut zusammen.

MfG Spess

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.