Arduino - Infrarood Obstacle Avoidance Sensor

In deze tutorial leren we hoe u Arduino en de infrarood (IR) obstacle avoidance sensor gebruikt om de aanwezigheid van een obstakel te detecteren.

Arduino Obstacle Avoidance Sensor

Benodigde Hardware

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×IR-Obstakeldetectiesensor
1×Jumperdraden (Mannelijk naar Mannelijk)
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de IR Obstacle Avoidance Sensor

De infrarood (IR) obstakelsensor wordt gebruikt om te detecteren of er een obstakel vlak voor de sensormodule aanwezig is door gebruik te maken van een infraroodsignaal. Het detectiebereik is van 2 cm tot 30 cm. Het bereik kan worden aangepast met een ingebouwde potentiometer.

Pinout

De IR obstacle avoidance sensor heeft drie pinnen:

  • GND pin: moet verbonden worden met GND (0V)
  • VCC pin: moet verbonden worden met VCC (5V of 3,3V)
  • OUT pin: is een outputpin: LOW wanneer er een obstakel is, HIGH wanneer er geen obstakel is. Deze pin moet verbonden worden met een inputpin van de Arduino.
IR Obstacle Avoidance Sensor Pinout
image source: diyables.io

Hoe Werkt Het

Een infrarood obstakelsensormodule heeft een ingebouwde IR zender en IR ontvanger. De IR zender zendt het IR signaal uit. De IR ontvanger zoekt naar het teruggekaatste IR signaal om te bepalen of er een object aanwezig is. De aanwezigheid van het obstakel wordt weergegeven via de OUT pin:

  • Als er een obstakel aanwezig is vóór de sensor, is de OUT pin van de sensor LOW
  • Als er GEEN obstakel aanwezig is vóór de sensor, is de OUT pin HIGH

※ Notiz:

Tijdens het transport kan de sensor verbogen raken, wat kan leiden tot storingen. Als de sensor niet goed werkt, stel dan de IR zender en ontvanger bij zodat ze parallel lopen.

Aansluitdiagram

Arduino IR Obstacle Avoidance Sensor Aansluitdiagram

This image is created using Fritzing. Click to enlarge image

Hoe Te Programmeren Voor IR Obstacle Avoidance Sensor

  • Initialiseer de Arduino-pin als digitale input met behulp van de pinMode() functie. Bijvoorbeeld pin GPIO18
pinMode(18, INPUT_PULLUP);
  • Lees de status van de Arduino-pin met de digitalRead() functie.
int state = digitalRead(18);

Arduino Code

Er zijn twee manieren om te programmeren voor een obstacle avoidance toepassing:

  • Iets wel of niet doen zolang het obstakel aanwezig of niet aanwezig is
  • Iets wel of niet doen zodra het obstakel gedetecteerd of verdwenen is

Arduino code om te controleren of obstakel aanwezig is

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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); }

Snelle Stappen

  • Kopieer bovenstaande code en open deze in de Arduino IDE
  • Klik op de knop Upload in de Arduino IDE om de code naar de Arduino te uploaden
  • Plaats een obstakel voor de sensor voor korte tijd en verwijder deze daarna weer
  • Bekijk het resultaat in de Seriële 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 voor het detecteren van obstakel

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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; }

Snelle Stappen

  • Kopieer bovenstaande code en open deze in de Arduino IDE
  • Klik op de knop Upload in de Arduino IDE om de code naar de Arduino te uploaden
  • Plaats een obstakel voor de sensor voor korte tijd en verwijder deze daarna weer
  • Bekijk het resultaat in de Seriële Monitor
COM6
Send
The obstacle is detected The obstacle is cleared
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Functiereferenties

Gerelateerde Tutorials

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!