Fotozelle

Example Sketch Code

Download Arduino IDE Sketch

Beschreibung

Eine Fotozelle kann die Lichtintensität über einen analogen Ausgang messen. Damit kann z.B. die Helligkeit von LEDs gesteuert werden.

Benötigte Bauteile

  • (1) x SCS Edu-Platine
  • (1) x 830 Punkte Breadboard
  • (8) x LEDs
  • (8) x 220 Ohm Widerstände
  • (1) x 1K Ohm Widerstand
  • (1) x 74HC595 IC
  • (1) x Fotowiderstand (Fotozelle)
  • (16) x M-M Kabel (Männlich zu Männlich DuPont Jumper Kabel)

Einführung in die Komponenten

Fotozelle: Eine Fotozelle ist eine Art lichtabhängiger Widerstand, der manchmal auch „LDR“ genannt wird. Dieses Bauteil arbeitet wie ein normaler Widerstand, mit der Ausnahme, dass der Widerstandswert sich mit der Lichtmenge, die auf ihn strahlt, ändert. Diese Fotozelle hat in fast kompletter Dunkelheit einen Widerstand von 50 kΩ und in hellem Licht einen Widerstand von etwa 500 Ω. Damit wir den Widerstandswert mit unserer Edu-Platine über einen analogen Eingang messen können, müssen wir ihn irgendwie in eine Spannung umwandeln. Der einfachste Weg dies zu tun ist, die Fotozelle mit einem festen Wiederstand zu kombinieren.

Fotozelle

Fotozelle und Widerstand

Der feste Widerstand und die Fotozelle zusammen arbeiten ähnlich wie ein Potentiometer. Wenn das Licht hell ist, ist der Widerstand der Fotozelle im Vergleich zum festen Widerstand sehr gering, also verhält es sich wie wenn ein Potentiometer auf das Maximum gestellt ist. Wenn die Fotozelle sich in dunkler Umgebung befindet, wird ihr Widerstand größer als der des festen 1 kΩ Widerstands und es verhällt sich wie wenn ein Potentiometer auf das Minimum (nach GND) gestellt ist. Laden Sie den Sketch hoch und probieren Sie einmal Ihren Finger auf die Fotozelle zu halten und danach die Fotozelle in die Nähe einer Lichtquelle zu positionieren.

Verbindungsschema

Verbindungsschema Fotozelle

Code

Das erste, was wir beachten müssen, ist, dass der Name des analogen Eingangs „lightPin“ heißt. Die nachfolgende Zeile berechnet, wie viele LEDs aufleuchten sollen.

int numLEDSLit = reading / 57;  // all LEDs lit at 1k

Wir teilen den Rohwert, den wir am Pin erhalten durch 57. In anderen Worten teilen wir den Widerstandsbereich in neun Zonen auf, von alle LEDs ausgeschaltet bis alle LEDs eingeschaltet. Wenn am Eingang nun ein Widerstand von 1 kΩ anliegt (also die Fotozelle komplett beleuchtet ist), wird der Rohwert etwa 1023 / 2 = 511 betragen. Bei diesem Wert alle LEDs aufleuchten. Und die „numLEDSLit“-Variable würde 1023 / 57 = 9 betragen.

Aufbau Fotozelle