IR-Sensoren gehören zu den vielseitigsten Komponenten in der Robotik. Sie erkennen reflektiertes Infrarotlicht und werden für Hinderniserkennung, Linienverfolgung und Näherungsmessung eingesetzt.
Die Sensor-Pins
Die meisten IR-Sensormodule haben drei Pins: VCC, GND und einen digitalen Ausgang. Manche bieten zusätzlich einen analogen Ausgang.
- VCC → 3,3V
- GND → GND
- Digitaler OUT → D1
- Analoger OUT → A0 (optional)
Den Sensor auslesen
Im digitalen Modus gibt der Sensor HIGH oder LOW aus, je nachdem ob reflektiertes IR-Licht erkannt wird. Der analoge Pin liefert einen Rohwert von 0 bis 1023 — nützlich für präzisere Näherungsmessungen.
Der Code
Vollständiger Quellcode: github.com/viktoriabuilds/esp8266-ir-sensor
const int IR_DIGITAL = D1;
const int IR_ANALOG = A0;
void setup() {
Serial.begin(115200);
delay(1000);
pinMode(IR_DIGITAL, INPUT);
Serial.println();
Serial.print("Start");
}
void loop() {
int digitalState = digitalRead(IR_DIGITAL);
int analogValue = analogRead(IR_ANALOG);
Serial.print("Digital: ");
if (digitalState == HIGH) {
Serial.print("HIGH");
} else {
Serial.print("LOW");
}
Serial.print(" Analog: ");
Serial.println(analogValue);
delay(500);
}Öffne den Seriellen Monitor bei 115200 Baud. Du siehst alle 0,5 Sekunden den digitalen Zustand und den analogen Rohwert.
Tipps
- Mit dem Einstellpoti die Empfindlichkeit anpassen
- Starkes Umgebungslicht (besonders Sonnenlicht) kann die Messung stören
- Funktioniert am besten auf matten, nicht reflektierenden Oberflächen