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