LEDs als Lichtsensoren funktionieren nur teilweise

Gast #3345439
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
Angehängte Dateien:
Gast #3345646
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.
Gast #3345673
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
Gast #3346611
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.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren