faecher:nwt:arduino:arbeitsauftraege:aa_irsensor:start

Selbsterarbeitung IR Sensor

Mit einem Infrarot-Sensor-Modul ist es möglich, eine Entfernung zu bestimmen, einen Gegenstand zu detektieren, oder auch eine Linie zu erkennen.

Am Sensor befindet sich eine Infrarotleuchtdiode, die für den Menschen unsichtbares Infrarotlicht vom Sensormodul abstrahlt. In gleicher „Blickrichtung“ befindet sich am Sensormodul ein Fotowiderstand. Wenn sich dem Sensor ein Gegenstand nähert, wird das Infrarotlicht am Gegenstand reflektiert und vom Fotowiderstand detektiert.

Die Leuchtstärke des reflektierten Lichtes wird vom Sensormodul ausgewertet und dann je nach Bauart als analoges oder digitales Spannungssignal vom Sensor ausgegeben.

Die Stärke des reflektierten Lichts ist stark abhängig von der Beschaffenheit der Oberfläche des detektierten Gegenstandes. Ein heller Gegenstand reflektiert mehr Licht als ein dunkler. Die Bestimmung der Entfernung ist deswegen immer nur als relativer Wert zu betrachten - es ist nicht möglich - wie beim Ultraschallsensor - tatsächliche Entfernungen zu messen.

Ein angeschlossener Arduino Mikrocontroller kann den Wert einlesen und auf Änderungen des Wertes reagieren.

Der Sensor hat vier Anschlüsse - im Bild zu sehen von rechts nach links:

Bezeichnung am Sensor Funktion Anschluss am Arduino
VCC Spannungsversorgung 5V
GND Ground GND
D0 Digitaler Ausgang des Sensors Digitaler Eingang
A0 Analoger Ausgang des Sensors Analoger Eingang

Zunächst schließen wir den Sensor im analogen Modus an: Stromversorgung mit VCC und GND, als Ausgangspin verbinden wir A0 des Sensors mit dem analogen Eingang A0 des Arduino.

Teste den Sensor mit folgendem Sketch.

ir01.ino
int SensorAnalog=A0; // Das Sensormodul wird mit dem analogen Ausgang an Pin A0 des Arduino angeschlossen
int wert; // Erstellen einer Variablen mit dem Namen wert, unter dem die Messwerte gespeichert werden.
 
void setup()
{
Serial.begin(9600); //im Setup wird lediglich die Kommunikation zum Seriellen Monitor hergestellt.
}
 
void loop()
{
wert=analogRead(SensorAnalog); // Der analoge Wert an Pin A0 wird ausgelesen und unter der Variablen wert gespeichert)
Serial.println(wert); // Der Wert wird an den Serial Monitor gesendet.
delay(50);
}

Beobachte die Werte am Seriellen Monitor:

  • Halte den Sensor mit der richtigen Seite in unterschiedliche Entfernung verschiedener Hindernisse.
  • Halte den Sensor vor unterschiedliche helle Flächen.
  • Verwende den Seriellen Plotter, um den Verlauf der Werte darzustellen.


(A1)

Schreibe ein Programm, das eine LED immer an den dunklen Stellen des folgenden Dokuments blinken lässt, wenn man es unter dem Sensor hindurchzieht (oder den Sensor darüber hinweg bewegt).

darkpattern.pdf1)

Schließe nun den Digitalen Ausgang D0 des Sensors an den digitalen Pin 7 des Arduino an und teste mit folgendem Sketch das Verhalten.

ir02.ino
int SensorDigital=7; // Das Sensormodul wird mit dem digitalen Ausgang an Pin 7 des Arduino angeschlossen
int wert; // Erstellen einer Variablen mit dem Namen wert, unter dem die Messwerte gespeichert werden.
 
void setup()
{
pinMode(SensorDigital, INPUT); //im Setup wird lediglich die Kommunikation zum Seriellen Monitor hergestellt.
Serial.begin(9600);
}
 
void loop()
{
wert=digitalRead(SensorDigital); // Der analoge Wert an Pin A0 wird ausgelesen und unter der Variablen wert gespeichert)
 
 
Serial.println(wert); // Der Wert wird an den Serial Monitor gesendet.
delay(30);
}

(A2)

Realisiere die Funktionen aus Aufgabe 1 unter Verwendung des IR Sensors im digitalen Modus.


(A3)

Überlege dir eine Vorgehensweise, wie du mit einem IR-Sensor einen einfachen Linienfolger bauern könntest. Halte deine Überlegungen schriftlich fest.

  • Welche konstruktiven Dinge sollten beachtet werden?
  • Wie könnte ein Programmablauf aussehen, der den Sensor ansteuert (PAP zeichnen!)

1)
Ausdrucken… logo
  • faecher/nwt/arduino/arbeitsauftraege/aa_irsensor/start.txt
  • Zuletzt geändert: 27.02.2023 19:39
  • von sbel