Arduino - Ultrasone Sensor
In deze tutorial leert u:
- Hoe een ultrasone sensor werkt
- Hoe u de ultrasone sensor aansluit op Arduino
- Hoe u Arduino programmeert om de status van de ultrasone sensor te lezen
- Hoe u Arduino en de ultrasone sensor HC-SR04 gebruikt om de afstand tot een object te meten
- Hoe u ruis uit afstandsmetingen van de ultrasone sensor filtert in Arduino-code
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables STEM V3 Starterskit (Arduino inbegrepen) | |
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de Ultrasone Sensor
De ultrasone sensor HC-SR04 wordt gebruikt om de afstand tot een object te meten door middel van ultrasone golven.
Pinout
De ultrasone sensor HC-SR04 heeft vier pinnen:
- VCC pin: moet aangesloten worden op VCC (5V)
- GND pin: moet aangesloten worden op GND (0V)
- TRIG pin: deze pin ontvangt het controlesignaal (puls) van de Arduino
- ECHO pin: deze pin zendt een signaal (puls) naar de Arduino. De Arduino meet de duur van deze puls om de afstand te berekenen.

Hoe Het Werkt
- Microcontroller: genereert een puls van 10 microseconden op de TRIG pin.
- De ultrasone sensor zendt automatisch ultrasone golven uit.
- De ultrasone golf wordt gereflecteerd nadat deze een obstakel raakt.
- De ultrasone sensor:
- Detecteert de gereflecteerde ultrasone golf.
- Meet de reistijd van de ultrasone golf.
Hoe Afstand te Verkrijgen van de Ultrasone Sensor
Om afstand te meten met de ultrasone sensor hoeven we alleen twee stappen te doen (1 en 6 uit het onderdeel Hoe Het Werkt):
- Genereer een puls van 10 microseconden op de TRIG pin
- Meet de pulsduur op de ECHO pin en bereken daarmee de afstand tussen sensor en obstakel
Afstand Berekening
We hebben:
- De reistijd van de ultrasone golf (µs): travel_time = pulse_duration
- De snelheid van de ultrasone golf: speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/µs
Dus:
- De afstand van de ultrasone golf (cm): travel_distance = speed × travel_time = 0.034 × pulse_duration
- De afstand tussen sensor en obstakel (cm): distance = travel_distance / 2 = 0.034 × pulse_duration / 2 = 0.017 × pulse_duration
Arduino - Ultrasone Sensor
De pinnen van Arduino kunnen een puls van 10 microseconden genereren en de pulsduur meten. Daarom kunnen we afstand meten met de ultrasone sensor door twee Arduino-pinnen te gebruiken:
- Eén pin is verbonden met de TRIG pin om een puls van 10 µs naar de sensor te sturen
- Een andere pin is verbonden met de ECHO pin om de puls van de sensor te meten
Bedradingsschema

This image is created using Fritzing. Click to enlarge image
Hoe te Programmeren voor Ultrasone Sensor
- Genereer een puls van 10 microseconden op een Arduino-pin met behulp van de functies digitalWrite() en delayMicroseconds(). Bijvoorbeeld, pin 9:
- Meet de pulsduur (µs) op een Arduino-pin met behulp van de functie pulseIn(). Bijvoorbeeld, pin 8:
- Bereken de afstand (cm):
Arduino Code
Snel Starten
- Kopieer bovenstaande code en open deze in de Arduino IDE
- Klik op de Upload-knop in de Arduino IDE om de code naar de Arduino te uploaden

- Open de Seriële Monitor
- Beweeg uw hand voor de ultrasone sensor
- Bekijk de afstand van de sensor tot uw hand op de Seriële Monitor
Code Uitleg
Lees de regel-voor-regel uitleg in de commentaarregels van de code!
Hoe Ruis te Filteren uit Afstandsmmetingen van de Ultrasone Sensor
De meetresultaten van de ultrasone sensor bevatten ruis. In sommige toepassingen veroorzaakt deze ruis ongewenste werking. We kunnen de ruis verwijderen met het volgende algoritme:
- Meerdere metingen nemen en opslaan in een array
- De array sorteren in oplopende volgorde
- Ruis filteren
- De kleinste monsters worden als ruis beschouwd → negeren
- De grootste monsters worden als ruis beschouwd → negeren
- Gemiddelde nemen van de middelste monsters
- De vijf kleinste monsters worden als ruis beschouwd → genegeerd
- De vijf grootste monsters worden als ruis beschouwd → genegeerd
- Gemiddelde wordt genomen van de 10 middelste monsters (van 5e tot 14e)
De onderstaande voorbeeldcode neemt 20 metingen:
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.
Daag uzelf uit
Gebruik de ultrasone sensor om één van de volgende projecten te maken:
- Botsingsvermijding voor een RC-auto
- Detecteren van de vulgraad van een vuilnisbak
- Monitoren van het niveau van een vuilnisbak
- Automatisch openen/sluiten van een vuilnisbak. Tip: Raadpleeg Arduino - Servo Motor.
Extra Kennis
Sommige fabrikanten leveren ultrasone sensoren met slechts 3 pinnen. De TRIG- en ECHO-signalen zitten dan op dezelfde pin. In dat geval heeft u maar één Arduino-pin nodig voor beide functies: het genereren van een puls naar de sensor én het meten van de puls van de sensor.
Ultrasone Sensor Toepassingen
- Botsingsvermijding
- Vulgraad detectie
- Niveau meting
- Nabijheidsdetectie