LED als Helligkeitssensor

R

Richard Nauber

Guest
Hallo,

Vor einiger Zeit habe ich irgendwo ein Projekt gesehen, bei dem eine LED
an ein Microcontroller angeschlossen wurde (an zwei Portpins) und aufgrund
der Selbstentladung der Sperrschichtkapazität auf die Umgebungshelligkeit
geschlossen wurde.

Dummerweise hab ich den Link verloren, und Googlen war erfolglos...
Kann mir da jemand weiterhelfen?

Gruß,
Richard
 
Man kann sie als Fotodiode betreiben. Viel Strom kommt dabei
nicht raus, man braucht OP als Verstärker.
Rotes LED wertet dann ca. nur die rote Spektrallinie aus.
Insofern ein guter Ersatz für Fotowiderstände wenn man
nur sichtbaren Bereich bewertet haben will.

und aufgrund der Selbstentladung der Sperrschichtkapazität
Hört sich wie typische www-Webseiten bzw. elektor-Idee an.
Es wird eher ein Oszillator/Monoflop mit externem
Folienkondensator gewesen sein. Der variable Fotostrom
bestimmt dann die Zeitkonstante der Entladung.
Interner KOP oder A/D-Wandler im Controller nötig.
Zusätzlich Portpin den man tristate schalten kann zum
Laden. Kann eventuell der Pin des A/D-Wandlers sein.

MfG JRD
 
Hi Richard,

das war von Mitsubishi Research http://www.merl.com
Den Artikel habe ich zuhause. Wenn da auch der Link vermerkt ist,
kann ich Dir den morgen nachliefern.

Gruß
Gunter
 
Hi,

"Michael Förtsch" <michael.foertsch@tuwien.ac.at> wrote
http://www.merl.com/reports/docs/TR2003-35.pdf ?
Yep. Den meinte ich. Richard sicher auch ?

Gunter
 
http://www.merl.com/reports/docs/TR2003-35.pdf ?
Yep. Den meinte ich. Richard sicher auch ?
Ich hatte zwar eine andere Seite im Hinterkopf, aber diese PDF ist klar um
Längen besser...

Habt tausend Dank für eure schnelle Antwort,
Richard
 
Hallo,

Da hab ich mich mal ans Werk gemacht und die ganze Sache ausprobiert...
und es klappt, ich kann mit meiner Taschenlampe dem PIC was zumorsen!

Dummerweise ist die Entladedauer und damit die Messungszeit endlos lang
(Sekunden), wenn ich nicht gerade einen Bauscheinwerfer davor platziere.
In der von Gunter verlinkten PDF schreiben die aber was von einer Messung
innerhalb von Millisekunden. Liegts an der LED (getestet mit einer stino
roten, grünen und gelben) oder am Spektrum (letztendlich soll's als
Dämmerungsschalter fürs Fahhrad dienen)?
Lohnt es sich, die LED vorher zu entladen und dann nur kurz zu laden?
Wie ist eigentlich die Kapazität der Sperrschicht und der Photostrom, so
über den Daumen?


Hier mal meine Messroutine in C
(PIC675; TMR0 ist auf 1 : 128; 4MHZ clock)


unsigned char LED_measure_light()
// NEEDS: defines and timer0
// RETURNS: byte; higher means darker
{

//charge LED reversed bias

LEDPLUS=0;
LEDMINUS=1;
LEDPLUSOUT();
LEDMINUSOUT();
TMR0=0;
while(TMR0 < LED_CHRG_TIME); //Zeit abwarten

//measure time to discharge the LED capacity by photocurrent

//LEDPLUSOUT();
//LEDPLUS=0;
LEDMINUSIN();

T0IF=0; //X
TMR0=0;
while(LEDMINUS);
if (!T0IF) return(TMR0); else return(0xff);
//return(TMR0);
};


Habt vielen Dank für eure Bemühungen,
Richard
 
Nochmal ein kleines Update:

Nach noch ein wenig experimentieren hab ich nun eine halbwegs annehmbare
Messzeit von ca. 1/2 s bei normaler Raumhelligkeit erreicht. Das passt
gerade, und in der endgültigen Anwendung werd ich sowieso mit konstanter
Zeit messen...

Und natürlich auch von Michael, danke euch beiden.


Und nun noch mal meine Veränderungen im Quellcode...

(PIC675; TMR0 ist auf 1 : 256; 4MHZ clock)

Vor dem Aufruf der Routine entlade ich die Kapazität auch erstmal...

unsigned char LED_measure_light()
// NEEDS: defines and timer0
// RETURNS: byte; higher means darker
{

//charge LED reversed bias

LEDPLUS=0;
LEDMINUS=1;
LEDPLUSOUT();
LEDMINUSOUT();
asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");

//measure time to discharge the LED capacity by photocurrent

//LEDPLUSOUT();
//LEDPLUS=0;
LEDMINUSIN();

T0IF=0; //X
TMR0=0;
while(LEDMINUS);
if (!T0IF) return(TMR0); else return(0xff);
//return(TMR0);
};

Tschüss,
Richard
 

Welcome to EDABoard.com

Sponsor

Back
Top