TigerJython4Kids | HomeTurtlegrafikRobotikDatenbanken |
DU LERNST HIER... |
wie Licht- und Farbsensoren funktionieren und wie du sie in typischen Anwendungen einsetzt. |
WIE FUNKTIONIEREN LICHTSENSOREN? |
Die meisten Lichtsensoren bestehen aus einer Halbleiter-Fotodiode, deren elektrischer Widerstand bei einfallendem Licht kleiner wird. Darum nennt man sie auch LDR (Light Dependent Resistor). Bei Farbsensoren verwendet man gewöhnlich 3 rot-, grün- und blau-empfindliche Fotodioden oder Farbfilter. In einfachen Anwendungen (Lichtschranken u.ä.) genügt es, die Widerstandsänderung in einer Potentiometerschaltung in eine Spannung zu wandeln und sie in einem ADC zu digitalisieren oder als Hell-Dunkel-Werte an einem GPIO zu detektieren. Es ist aber einfacher, Breakout-Boards zu verwenden, wo die Intensität oder Farbe über ein I2C-Interface als digitaler Wert abgegeben wird. Solche digitalen Sensoren liefern meist sogar geeichte Werte der Helligkeit (in Lux). |
MUSTERBEISPIELE |
|
![]() |
||
Digitaler Lichtsensor TSL2561 (Adafruit) |
Digitaler Lichtsensor TSL2561 (Seed) mit Grove-Connector |
Im folgenden Testprogramm schreibst du den gemessenen Helligkeitswert in Lux auf dem LED-Display und gleichzeitig in der Konsole aus. Du verwendest das Treibermodul tsl2561 mit der Methode getLux().
Programm:
from oxocard import * from tsl2561 import TSL2561 from time import sleep def show(lum): v = int(lum + 0.5) display(v // 100) sleep(2) display("%02d" % (v % 100)) sleep(2) display("::") sleep(2) tsl = TSL2561() while True: lum = tsl.getLux() print("%5.1f Lux" %lum) show(lum)
FarbsensorenAm Breakout-Board lötest du ein Grove-Kabel an den Pins Vin (rot), GND (schwarz), SDA (weiss) und SCL (gelb) ein. Mit dem Pin LED kannst du eine weisse LED als Beleuchtung ein/ausschalten. Standardmässig ist sie eingeschaltet. Um sie auszuschalten, musst du den Pin auf GND ziehen. Verbindest du ihn mit einem GPIO-Anschluss, so kannst du die LED programmgesteuert ein-/ausschalten.
Im folgenden Testprogramm zeigst du den gemessenen Farbwert als 3 zweistellige Hexziffern auf dem LED-Display an und schreibst ihn in der Konsole aus. Programm: from oxocard import * from tcs34725 import * from time import sleep def show(color): hex = rgbToHex(color) display(hex[0:2]) sleep(2) display("") sleep(1) display(hex[2:4]) sleep(2) display("") sleep(1) display(hex[4:6]) sleep(2) display("::") sleep(3) tcs = TCS34725() while True: color = tcs.getRGB() print("color:", color, "0x" + rgbToHex(color)) show(color) |
MERKE DIR... |
Digitale Licht- und Farbsensoren geben den digitalisierten Messwert meist über ein I2C-Interface ab. Typischen Anwendungen sind Lichtschranken, bei denen die Unterbrechung eines Lichtstrahls durch ein Objekt detektiert wird und Anlagen, die bei Dunkelheit eine Beleuchtung einschalten. |
ZUM SELBST LÖSEN |
|