Forum: Mikrocontroller und Digitale Elektronik LEDs als Lichtsensoren funktionieren nur teilweise


von Verwirrter Anfänger (Gast)


Angehängte Dateien:

Lesenswert?

Ich versuche gerade LEDs als Lichtsensoren einzusetzen. Hierbei kommt es 
mir nicht auf die absoluten Werte an, sondern nur um relative 
Veränderungen.

Allerdings kriege ich sehr unterschiedliche Ergebnisse beim auslesen der 
LEDs. LEDs 1 und 3 liefern mir gut verwertbare Ergebnisse, LED 2 scheint 
sehr, sehr empfindlich zu sein und LED 0 liefert mir immer die volle 
Helligkeit zurück.

Die LEDs funktionieren ansonsten alle ganz normal.

Optisch kann ich keine Kurzschlüsse / Lötmittelreste auf der Platine 
erkennen, allerdings ist ein Großteil von einer Batteriehalterung 
verdeckt. Die LEDs stammen aus einer 20er Packung von Conrad.

Liegen die starken Schwankungen einfach an den Abweichungen der LEDs, 
liegt's an meinem Code, an meinem Layout oder ist irgendwas anderes 
falsch?

Zur Orientierung:
Bei normaler Beleuchtung liefern die LEDs mit dem angehängten code etwa 
folgende Werte zurück:
LED 0 = >1498
LED 1 = ~500
LED 2 = > 1485
LED 3 = ~500

von hp-freund (Gast)


Lesenswert?

Tausch einfach mal zwei "extrem" LED und beobachte...

von Michael (Gast)


Lesenswert?

Hallo,

ich denke du stellst dir das Messen mit deiner Schaltung etwas zu leicht 
vor da die LEDs sehr hochohmig sind.
Lies mal
http://www.eeweb.com/blog/extreme_circuits/using-led-as-a-light-sensor
das erklärt einiges!

von Helge A. (besupreme)


Lesenswert?

Hab auch schon LED als Sensor eingesetzt. Funktioniert am besten mit 
gelb/grün/blau. Weiß ist schlecht, da der Phosphor viel schluckt. Und 
wasserklares Gehäuse machts auch viel besser.

von MaWin (Gast)


Lesenswert?

Du hast versucht, die Methode aus
http://reaktivlicht.de/kochbuch_V3.pdf
nachzubauen ?

Es wundert mich nicht wirklich, daß sie nicht zuverlässig funktioniert, 
schliesslich sind Temperatur, Eingangsstrom, Eingangskapazität des uC 
alles andere als immer gleich.

Vor allem hat der A/D-Wandler des AVR das Problem, eine interne geledene 
Kapazität an den Eingang zu schalten, und wenn dort hochohmiger als 10k 
und mit weniger als 10nF eine Spannungsquelle angeschlossen wird, teilt 
sich deren Spannung erst mal mit dem internen Kondenstaor.

Es kann also helfen, jedesmal zuvor einen an Masse liegenden Eingang per 
A/D-Wandler zu messen, und erst dann auf den zu messenden Eingang eine 
A/D-Wandlung loszulassen.

von Hauspapa (Gast)


Lesenswert?

>Vor allem hat der A/D-Wandler des AVR das Problem...

Da bin ich auch ins Messer gelaufen. Er verwendet den Eingang als 
digitalen Eingang, quasi als Komparator und nicht den ADC. Sagt 
zumindest der Quellcode.

Das Led0 ein anderes Verhalten zeigt ist nicht verwunderlich wenn Ledc 
bestückt ist. Da hier aber komplett über die parasitäten Eigenschaften 
wie Eingangskapazität und Eingangswiderstände gearbeitet wird, würde es 
mich nicht wundern wenn die deaktivierten Alternativmodule die Suppe 
etwas versalzen.

Evtl. währe aber genau die Verwendung des ADC bei genügender Wartezeit 
ein Lösung.

viel Erfolg
Hauspapa

von Verwirrter Anfänger (Gast)


Angehängte Dateien:

Lesenswert?

Das Austauschen der LEDs hat zumindest teilweise was gebracht - hätte 
ich wirklich auch selbst drauf kommen können, Vielen Dank!

LED 0 verhält sich jetzt recht normal, LED 2 macht allerdings noch 
Probleme. Ich geh allerdings davon aus, dass LED 2 dann auch ein 
Hardwarefehler ist.

Die LED C ist nicht bestückt, und als Messmethode verwende ich dieses 
Prinzip: http://playground.arduino.cc/Learning/LEDSensor

Angehängt mal ein paar Beispielgifs. Leider sind die durch das Rauschen 
etwas größer geworden.

von Mike (Gast)


Lesenswert?

Verwirrter Anfänger schrieb:
> Angehängt mal ein paar Beispielgifs.
Hübsche Filmchen :-)

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.