Arduino - Infrarot-Hinderniserkennungssensor

In diesem Tutorial lernen wir, wie man Arduino und den Infrarot-Hinderniserkennungssensor verwendet, um das Vorhandensein eines Hindernisses zu erkennen.

Arduino Hindernisvermeidungssensor

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×IR-Hinderniserkennungssensor
1×(Alternativ) TCRT5000 Obstacle Avoidance Sensor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Infrarot-Hindernisvermeidungssensor

Der Infrarot-(IR)-Hindernissensor wird verwendet, um das Vorhandensein eines Hindernisses vor dem Sensor-Modul mittels des Infrarotsignals zu erkennen. Der Detektionsbereich reicht von 2 cm bis 30 cm. Der Detektionsbereich kann durch ein eingebautes Potentiometer eingestellt werden.

Pinbelegung

IR-Hinderniserkennungssensor enthält drei Pins:

  • GND-Pin: muss mit GND (0 V) verbunden werden
  • VCC-Pin: muss mit VCC (5 V oder 3,3 V) verbunden werden
  • OUT-Pin: ist ein Ausgangspin: LOW, wenn ein Hindernis vorhanden ist, HIGH, wenn kein Hindernis vorhanden ist. Dieser Pin muss mit dem Eingangspin des Arduino verbunden werden
Infrarot-Hinderniserkennungssensor Pinbelegung
image source: diyables.io

Wie es funktioniert

Ein Infrarot-Hindernissensor-Modul verfügt über einen integrierten IR-Sender und IR-Empfänger. Der IR-Sender emittiert das IR-Signal. Der IR-Empfänger sucht nach dem reflektierten IR-Signal, um festzustellen, ob ein Objekt vorhanden ist oder nicht. Die Anwesenheit eines Hindernisses wird am OUT-Pin ausgegeben:

  • Wenn ein Hindernis vor dem Sensor vorhanden ist, ist der OUT-Pin des Sensors LOW
  • Wenn vor dem Sensor kein Hindernis vorhanden ist, ist der OUT-Pin des Sensors HIGH

※ Notiz:

Während des Transports kann sich der Sensor verformen, was zu Fehlfunktionen führen kann. Wenn der Sensor nicht ordnungsgemäß funktioniert, stellen Sie den IR-Sender und -Empfänger so ein, dass sie parallel zueinander stehen.

Verdrahtungsdiagramm

Arduino Infrarot-Hindernisvermeidungssensor Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

So programmiert man einen Infrarot-Hindernisvermeidungssensor

  • Initialisiert den Arduino-Pin in den digitalen Eingabemodus durch die Verwendung der pinMode()-Funktion. Zum Beispiel Pin GIOP18
pinMode(18, INPUT_PULLUP);
  • Liest den Zustand des Arduino-Pins, indem die digitalRead() Funktion verwendet wird.
int state = digitalRead(18);

Arduino-Code

Es gibt zwei Möglichkeiten, eine Hindernisvermeidungsanwendung zu programmieren:

  • Etwas tun oder es lassen, während das Hindernis vorhanden ist oder nicht vorhanden ist
  • Etwas tun oder es lassen, wenn das Hindernis erkannt wird oder beseitigt wird

Arduino-Code zur Überprüfung, ob ein Hindernis vorhanden ist

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-infrared-obstacle-avoidance-sensor */ // Arduino's pin connected to OUT pin of IR obstacle avoidance sensor const int SENSOR_PIN = 8; void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: int state = digitalRead(SENSOR_PIN); if (state == LOW) Serial.println("The obstacle is present"); else Serial.println("The obstacle is NOT present"); delay(100); }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino-IDE.
  • Klicken Sie in der Arduino-IDE auf die Hochladen-Schaltfläche, um den Code auf den Arduino hochzuladen.
  • Stellen Sie für eine Weile eine Barriere vor dem Sensor, und entfernen Sie sie anschließend.
  • Sehen Sie das Ergebnis im Serial Monitor.
COM6
Send
The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is present The obstacle is present The obstacle is present The obstacle is present The obstacle is NOT present The obstacle is NOT present
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Arduino-Code zur Hinderniserkennung

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-infrared-obstacle-avoidance-sensor */ // Arduino's pin connected to OUT pin of IR obstacle avoidance sensor const int SENSOR_PIN = 8; int lastState = HIGH; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: currentState = digitalRead(SENSOR_PIN); if (lastState == HIGH && currentState == LOW) Serial.println("The obstacle is detected"); else if (lastState == LOW && currentState == HIGH) Serial.println("The obstacle is cleared"); delay(50); // save the the last state lastState = currentState; }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino hochzuladen.
  • Platzieren Sie für eine Weile eine Barriere vor dem Sensor und entfernen Sie sie anschließend.
  • Sehen Sie das Ergebnis im seriellen Monitor.
COM6
Send
The obstacle is detected The obstacle is cleared
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Funktionsreferenzen

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!