LED-Lichtsensor 

ELO 2008

Elektronik-Labor  Labortagebuch  ELO  Mikrocontroller

Eine LED kann nicht nur Licht erzeugen sondern auch als Lichtsensor dienen. Hier wird dieselbe LED an einem Tiny13 sowohl als Sensor als auch als Lichtquelle eingesetzt. Damit entsteht ein Dämmerungsschalter: Die LED leuchtet nur bei Dunkelheit.

Anders als sonst üblich wird die LED nicht gegen Masse angeschlossen sondern zwischen zwei Portanschlüssen. Das Programm kann die LED deshalb auch in Sperrrichtung an Spannung legen.

 

Für die Lichtmessung wird die LED zunächst kurz in Sperrrichtung auf 5 V geladen. Die LED-Sperrschicht ist zugleich ein kleiner Kondensator mit ca. 5 pF, der diese Spannung mehrere 100 Millisekunden halten kann. Ein als hochohmiger Eingang geschalteter Port liest also High-Zustände. Ganz anders sieht es aber aus, wenn die LED beleuchtet wird. Nun arbeitet sie gleichzeitig als Fotodiode. Der erhöhte Sperrstrom entlädt die Sperrschichtkapazität in wenigen Millisekunden, bei starker Beleuchtung sogar in weniger als einer Millisekunde. Damit setzt die LED die Beleuchtungsstärke in eine Messzeit um.

 

'LED-Sensorleuchte
'K an PB4
'A über 1 k an PB3
'LED leuchtet bei Dunkelheit

$regfile = "attiny13.dat"
$crystal = 1200000
Baud = 9600
Dim D As Integer
Dim N As Byte
Dim Mini As Byte
Dim Maxi As Byte
Dim T As Integer

'Baud = 9600
Config Adc = Single , Prescaler = Auto
Start Adc
Open "comb.1:9600,8,n,1,INVERTED" For Output As #1

Do
N = 0
Ddrb.3 = 1
Portb.3 = 0
Ddrb.4 = 0
Portb.4 = 1
'Laden
Portb.4 = 1
'Freigeben
Portb.4 = 0
Do
N = N + 1
If N > 11 Then
N = 11
Ddrb.4 = 1
End If
Waitms 1
Loop Until Pinb.4 = 0
Put #1 , N
If N > 10 Then
Ddrb.3 = 1
Portb.3 = 1
Ddrb.4 = 1
Portb.4 = 0
Waitms 1000
End If
If N < 11 Then
Ddrb.3 = 1
Portb.3 = 0
Ddrb.4 = 0
Portb.4 = 0
End If
Waitms 50
Loop
End


Download: LEDsensor.zip

 
Das Programm legt einen Grenzwert von 10 ms fest, bis zu dem die Entladezeit der LED als „hell" erkannt werden soll. Bei längeren Zeiten gilt das Ergebnis als „dunkel" und die LED wird eingeschaltet. Der eingeschaltete Zustand wird regelmäßig kurz unterbrochen um eine neue Lichtmessung auszuführen. Zusätzlich sendet das Programm die Helligkeits-Messwerte an den PC.

Mit einer kleinen Änderung erzeugt das Programm im Dunkeln nur kurze Lichtblitze im Takt einer Sekunde. Man könnte diese Version z.B. für eine Warnleuchte verwenden, die nur im Dunkeln blitzt.

 

  If N > 10 Then
Ddrb.3 = 1
Portb.3 = 1
Ddrb.4 = 1
Portb.4 = 0
Waitms 20
Portb.3 = 0
Waitms 970
End If
If N < 11 Then
Ddrb.3 = 1
Portb.3 = 0
Ddrb.4 = 0
Portb.4 = 0
End If
Waitms 50

 

Auszug aus LEDsensor2.bas

 

Siehe auch: Kosmos-Mikrocontroller, LED als Lichtsensor

 


Elektronik-Labor  Labortagebuch  ELO  Mikrocontroller