Arduino Nano - Ultrasone Sensor
Deze tutorial leert u hoe u de Arduino Nano en een ultrasone sensor gebruikt om de afstand tot obstakels of objecten te meten. In detail behandelen we:
- Hoe een ultrasone sensor werkt
- Hoe u de ultrasone sensor aansluit op de Arduino Nano
- Hoe u de Arduino Nano programmeert om afstand te meten met de ultrasone sensor
- Hoe u ruis kunt filteren uit de afstandsmetingen van de ultrasone sensor in de Arduino Nano code
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de Ultrasone Sensor
De HC-SR04 ultrasone sensor wordt gebruikt om de afstand tot een object te meten door middel van ultrasone golven.
Pinout van de Ultrasone Sensor
De HC-SR04 ultrasone sensor heeft vier pinnen:
- VCC pin: moet worden verbonden met VCC (5V)
- GND pin: moet worden verbonden met GND (0V)
- TRIG pin: ontvangt een besturingssignaal (pulse) van de Arduino Nano
- ECHO pin: stuurt een signaal (pulse) naar de Arduino Nano. De Arduino Nano meet de duur van deze pulse om de afstand te berekenen.

Hoe Het Werkt
- De Arduino Nano genereert een 10-microseconden durende pulse op de TRIG-pin, waardoor de ultrasone sensor ultrasone golven uitzendt.
- Wanneer deze golven een obstakel raken, worden ze weerkaatst.
- De ultrasone sensor kan de teruggekaatste golf detecteren en meet de reistijd ervan.
- Vervolgens genereert de sensor een puls op de ECHO-pin met een duur gelijk aan de reistijd van de ultrasone golf.
- De Arduino Nano meet de pulsduratie op de ECHO-pin en berekent daarmee de afstand tussen sensor en obstakel.
Hoe Verkrijgt U Afstand van de Ultrasone Sensor
Om de afstand van de ultrasone sensor te berekenen, hoeven we slechts twee stappen in de Arduino-code te doen (stap 1 en 6 in Hoe Het Werkt):
- De Arduino Nano genereert een pulse van 10 microseconden op de TRIG-pin.
- De Arduino Nano meet de duur van de pulse op de ECHO-pin.
- Daarna gebruikt de Arduino Nano de gemeten pulsduratie om de afstand te berekenen tussen sensor en obstakel.
Afstandsberekening
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 die de ultrasone golf aflegt (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 Nano - Ultrasone Sensor
De pinnen van de Arduino Nano kunnen een pulse van 10 microseconden genereren en de duur van een pulse meten. Hierdoor kunnen we twee pinnen van de Arduino Nano gebruiken om de afstand van de ultrasone sensor tot een object te bepalen. We moeten alleen:
- Eén pin van de Arduino Nano verbinden met de TRIG-pin van de ultrasone sensor. Deze Arduino-pin genereert een pulse van 10 µs op de TRIG-pin van de sensor.
- Een andere pin van de Arduino Nano verbinden met de ECHO-pin van de ultrasone sensor. Deze Arduino-pin meet de pulse van de sensor.
Bedradingsschema

This image is created using Fritzing. Click to enlarge image
Hoe Te Programmeren Voor Ultrasone Sensor
- Genereer een pulse van 10 microseconden op Arduino pin 3 met behulp van de functies digitalWrite() en delayMicroseconds(). Bijvoorbeeld:
- Meet de pulsduratie (in microseconden) op Arduino pin 2 met behulp van de functie pulseIn(). Bijvoorbeeld:
- Bereken de afstand (cm):
Arduino Nano Code
Snelle Stappen
- Kopieer de code en open deze in de Arduino IDE.
- Klik vervolgens op de Upload knop in de Arduino IDE om de code te compileren en te uploaden naar de Arduino Nano.

- Open de Seriële Monitor
- Houd uw hand voor de ultrasone sensor
- Bekijk de afstand van sensor tot uw hand die op de Seriële Monitor wordt weergegeven
Code Verklaring
Bekijk de regel-voor-regel uitleg die in de commentaren van de broncode is opgenomen!
Hoe Ruis Te Filteren Uit Afstandsmetingen van de Ultrasone Sensor
Het meetresultaat van een ultrasone sensor kan ruis bevatten, wat in sommige toepassingen ongewenste acties kan veroorzaken. Om de ruis te verwijderen, kunnen we het volgende algoritme gebruiken:
- Meerdere metingen uitvoeren en opslaan in een array
- De array sorteren in oplopende volgorde
- Ruis filteren door:
- De kleinste waarden als ruis te beschouwen en te negeren
- De grootste waarden als ruis te beschouwen en te negeren
- Het gemiddelde te nemen van de middelste waarden
- Negeer de vijf kleinste metingen.
- Negeer de vijf grootste metingen.
- Neem het gemiddelde van de 10 middelste metingen van de vijfde tot de veertiende.
Onderstaand voorbeeld 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.
Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten in het gebruik van de ultrasone sensor met Arduino Nano.
Daag uzelf uit
Gebruik een ultrasone sensor voor een van de volgende projecten:
- Het bouwen van een botsingsvermijdingssysteem voor een op afstand bestuurbare auto.
- Het bepalen van hoe vol een vuilnisbak is.
- Het volgen van het vulniveau van een vuilnisbak.
- Automatisch openen en sluiten van een vuilnisbak. Tip: Zie Arduino Nano - Servo Motor.
Toepassingen van de Ultrasone Sensor
- Botsing vermijden
- Volheid detecteren
- Niveau meten
- Nabijheid detecteren