Du bist hier:
Arduino Sensor Fotowiderstand
1. Vorbereiten
Der Fotowiderstand ↗ ist ein simpler Sensor für Arduino. Steure mit dem Lichtwiderstand/Fotowiderstand/LDR viele Dinge mit Werten zwischen 0% und 100%. Die Abkürzung LDR steht für "Light Dependent Resistor" und erklärt auch gleich seine Funktion:
- Er erzeugt einen Widerstand zwischen 0Ω (=viel Licht) und 10kΩ (=kein Licht)
- Er liefert Werte zwischen 100% (=viel Licht) und 0% (=kein Licht)
- Er kann direkt in einen der vier Sensor Eingänge eingeschraubt werden (- und △). Die Polung ist egal.
2. Anschliessen
3. Programmieren
3.1. Eine LED direkt mit einem Fotowiderstand steuern
Sketch 4 - Fotowiderstand reguliert LED umgekehrt
4. Aktivität - einen Arduino Roboter mit Fotowiderstand steuern
4.1. Roboter, der in Richtung des Lichts fährt
Baue ein Roboter Auto, lasse jedoch die Fühler weg.
- Zur Bauanleitung ↗
- Bausatz Roboter Auto hier kaufen ↗
- Fotowiderstand hier kaufen ↗
- Fotowiderstand direkt mit den Eingängen S1 & S2 verbinden. Die Polung ist egal.
- Positioniere zwei Fotowiderstände an der Front des Fahrzeugs. Sie sollen nach vorne- und 45° übers Kreuz nach innen schauen.
- Die genaue Positionierung siehst du am Anfang des folgenden Videos:
Die Programmierung ist simpel:
- Die Drehgeschwindigkeit eines Rades wird direkt an die Helligkeit, die ein Fotowiderstand sieht, gebunden
- Siehe PGLU.CH>Roboter Auto Programmieren>Variante 4 ↗
4.2. Roboter, der einer weissen Linie folgt (Line follower)
Baue ein Roboter Auto, lasse jedoch die Fühler weg.
- Google Keyword: Line follower challenge ↗
- Zur Bauanleitung Roboter Auto ↗
- Bausatz Roboter Auto hier kaufen ↗
- Fotowiderstand hier kaufen ↗
- Fotowiderstand und LED so anschliessen ↗
- Positioniere einen Fotowiderstand an der Front des Fahrzeugs, so dass er die Helligkeit des Bodens messen kann.
- Positioniere dicht neben dem Sensor eine LED, welche den Boden aufhellt.
- Tip: Um ein perfekt gleichmässig diffuses Licht zu erhalten, schleife die LED an ihrem Kopf so ab, dass eine Fläche entsteht.
- Tip: Konstruiere die Halterung so, dass du die Höhe über Boden leicht justieren kannst
- Die genaue Konstruktion siehst du in diesem Video:
Das folgende Grundprogramm entspricht dem Projekt "Line Follower" in Variante 5a. Es tut folgendes:
- Drehe Motor 1 so langsam, wie die gemessene Helligkeit beträgt (= je heller desto langsamer)
- Drehe Motor 2 so schnell, wie die gemessene Helligkeit beträgt (= je heller desto schneller)
Etwas anders ausgedrückt:
- Wenn hell, dann fahre Richtung Boden
- Wenn dunkel, dann fahre Richtung Linie
- Tip: für eine bessere Darstellung im Editor: Rechtsklick auf Blöcke > vertikale Darstellung
Einschränkung: Dieses Sketch funktioniert nur "in einer perfekten Welt" wo der Helligkeitsunterschied zwischen Linie und Boden 100% beträgt. Meistens ist dies jedoch nicht der Fall und die Werte die der Lichtwiderstand misst (z.B. Boden = 30%, Linie = 45%) müssen skaliert werden.
Eine mögliche Lösung wird in Variante 5b (Arbeitsblatt zweite Seite) geliefert. Die Helligkeitswerte von Boden und Linie werden zuerst ausgemessen, gespeichert und dann auf 0% bis 100% skaliert.
- Zum Arbeitsblatt "Roboter Auto Varianten" ↗
- Kopiere diesen XML-Code mit Klick/Berührung und füge ihn in den Editor ein
Referenzwert LinieReferenzwert FlächeDiese Linefollower Programmierung ist optimiert für Linien mit wenig Kontrast (z.B. Klebband)Es ist egal, ob die Linie heller als der Boden ist oder umgekehrtIm Gegenzug müssen vor jedem Programmstart die Helligkeit des Bodens und der Linie gemessen werden (=kalibrieren)LED1HIGHLED2HIGHLED3LOW1000LED1LOW1000Referenzwert LinieSENSOR3LED1HIGH1000LED2LOW1000Referenzwert FlächeSENSOR3LED2HIGHKalibrierung hell-dunkel-Kontrast:Bei Signal: Sensor über Linie haltenBei Signal: Sensor über Boden haltenVon innen (grün) nach aussen (orange) verstehen!Ändere: skaliert die effektiven Sensorwerte mit den Referenzwerten auf 0 bis 80 resp. 80 bis 0 (je nach Rad - experimentiere mit diesen Werten)Begrenze: stellt sicher, dass keine höheren Werte als 100- oder tieferen als 0 entstehenMOTOR1SENSOR3Referenzwert LinieReferenzwert Fläche0800100MOTOR2SENSOR3Referenzwert LinieReferenzwert Fläche8000100