LED als Helligkeitssensor

May 11, 2004 7 Replies

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.

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

formatting link
Den Artikel habe ich zuhause. Wenn da auch der Link vermerkt ist, kann ich Dir den morgen nachliefern.

Gruß Gunter

Hi,

"Michael Förtsch" wrote

Yep. Den meinte ich. Richard sicher auch ?

Gunter

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...

asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");

Tschüss, Richard

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required