norr@manorshi.com         +86-519-89185720
1
Nieuwscentrum

Hoe gebruik ik een ultrasone sensor met Arduino?

Bekeken: 164     Auteur: Grace Publicatietijd: 26-07-2021 Herkomst: Locatie

knop voor delen op Facebook
Twitter-deelknop
knop voor lijn delen
knop voor het delen van wechat
linkedin deelknop
knop voor het delen van Pinterest
WhatsApp-knop voor delen
knop voor het delen van kakao
knop voor het delen van snapchat
knop voor het delen van telegrammen
deel deze deelknop

Ultrasone sensor gebruiken met Arduino: HC-SR04-gids

De De ultrasone sensor HC-SR04 is een van de meest populaire afstandsmeetmodules voor Arduino-projecten. Het wordt veel gebruikt in obstakelvermijdingsrobots, parkeersensoren, niveaudetectie, slimme vuilnisbakken, afstandsmeters en andere contactloze detectietoepassingen.

De module zendt ultrasone golven van 40 kHz uit via een zender. Wanneer de geluidsgolf een voorwerp ontmoet, wordt deze teruggekaatst naar de ontvanger. Door de echotijd te meten en de geluidssnelheid te gebruiken, kan Arduino de afstand tussen de sensor en het object berekenen.

HC-SR04 ultrasone sensormodule voor Arduino-afstandsmeting

HC-SR04 Belangrijkste technische parameters

Parameter Waarde
Typische werkspanning 5 V gelijkstroom
Statische werkstroom Minder dan 5 mA op sommige moduleversies
Bedrijfsfrequentie 40 kHz ultrasone golf
Detectie afstand Gemeenschappelijk bereik: 2 cm tot 400 cm; sommige versies met aangepaste versterking ondersteunen mogelijk een groter bereik.
Detectiehoek Meestal binnen 15 graden; sommige versies met een hogere versterking kunnen ongeveer 30 graden bereiken.
Precisie Tot ongeveer 0,3 cm onder geschikte testomstandigheden
Blinde zone Minimale meetafstand van ongeveer 2 cm

HC-SR04 Pinbeschrijving

De HC-SR04 ultrasone module heeft vier pinnen: VCC, TRIG, ECHO en GND. Arduino stuurt een korte triggerpuls naar de TRIG-pin en leest vervolgens de retourpuls van de ECHO-pin.

HC-SR04-pen Arduino-verbinding Functie
VCC 5V Voeding voor de ultrasone module.
TRIG Digitale pin 9 Trigger-ingang. Arduino past een 10us-puls toe om te beginnen met bereik.
ECHO Digitale pin 10 Echo-uitvoer. Arduino leest de pulsbreedte om de afstand te berekenen.
GND GND Aardaansluiting.

HC-SR04 ultrasone sensor pinout VCC TRIG ECHO GND

Werkingsprincipe van de HC-SR04 ultrasone sensor

De HC-SR04 werkt via time-of-flight-meting. Arduino stuurt een triggersignaal op hoog niveau van minimaal 10 microseconden naar de TRIG-pin. De module verzendt vervolgens automatisch acht ultrasone pulsen van 40 kHz en wacht op de gereflecteerde echo.

Wanneer het gereflecteerde ultrasone signaal wordt gedetecteerd, geeft de ECHO-pin een puls van hoog niveau af. De duur van deze puls is de heen- en terugreistijd van de ultrasone golf.

Afstand = Echo-tijd op hoog niveau × Geluidssnelheid / 2

In Arduino-code is de gebruikelijke vereenvoudigde formule:

Afstand in cm = duur × 0,0343 / 2

HC-SR04 ultrasone module vluchttijd werkingsprincipe

Timingdiagram van de ultrasone module HC-SR04

Het timingproces is eenvoudig: Arduino houdt TRIG kort laag, stuurt een 10us hoge puls en zet TRIG vervolgens terug naar laag. De HC-SR04 verzendt een ultrasone burst en stelt ECHO hoog in totdat het gereflecteerde signaal terugkeert of de meting afloopt.

Om onstabiele metingen te voorkomen, moet u een korte vertraging tussen de metingen aanhouden. Meestal wordt een meetcyclus van ongeveer 60 ms gebruikt, zodat de vorige ultrasone echo de tijd heeft om te verdwijnen vóór de volgende trigger.

Basisprincipes van Arduino-programmeren: pulseIn-functie

De Arduino pulseIn()- functie wordt gebruikt om te meten hoe lang een digitale pin HOOG of LAAG blijft. Voor HC-SR04 gebruikt Arduino pulseIn (echoPin, HIGH) om de pulsbreedte op hoog niveau van de ECHO-pin te lezen.

Syntaxis Betekenis
pulseIn(pin, waarde) Leest de duur van een HOGE of LAGE puls af.
pulseIn(pin, waarde, time-out) Leest de puls met een time-outwaarde in microseconden.

Het gebruik van een time-out wordt aanbevolen. Als er geen echo wordt geretourneerd, kan de functie stoppen met wachten en 0 retourneren in plaats van het programma te lang te blokkeren.

Arduino-bord gebruikt met HC-SR04 ultrasone afstandssensor

Hoe de HC-SR04 ultrasone sensor op Arduino aan te sluiten

De bedrading is eenvoudig. Sluit VCC aan op 5V, GND op GND, TRIG op een Arduino digitale uitgangspin en ECHO op een Arduino digitale ingangspin. In het volgende voorbeeld wordt Arduino Uno, TRIG op pin 9 en ECHO op pin 10 gebruikt.

Arduino Uno breadboard bedradingsschema voor HC-SR04 ultrasone sensor

HC-SR04 Ultrasone sensor Arduino-code

Het volgende typische Arduino-programma verzendt een triggerpuls van 10us, leest de ECHO-pulsbreedte, berekent de afstand in centimeters en drukt het resultaat af op de seriële monitor.

const int trigPin = 9; const int echoPin = 10; lange duur; zweefafstandCm; ongeldige setup() { pinMode(trigPin, OUTPUT);   pinModus(echoPin, INPUT);   Serieel.begin(9600); } void loop() { digitalWrite(trigPin, LAAG);   vertragingMicroseconden(2);   digitalWrite(trigPin, HOOG);   vertragingMicroseconden(10);   digitalWrite(trigPin, LAAG);   duur = pulseIn(echoPin, HOOG, 30000);   if (duur == 0) { Serial.println('Buiten bereik');   } anders { afstandCm = duur * 0,0343 / 2;     Serieel.print('Afstand: ');     Serieel.print(afstandCm);     Serieel.println(' cm');   } vertraging(60); }

Als u afstandswaarden ziet in de seriële monitor, werken de HC-SR04 ultrasone sensor en de Arduino-bedrading correct. Vervolgens kunt u de afstandsgegevens gebruiken voor obstakeldetectie, robotbewegingscontrole, automatische deuren, parkeerherinneringen of vloeistofniveauprojecten.

Arduino HC-SR04 ultrasone sensor-bereikprogramma

Hoe u de meetnauwkeurigheid van de HC-SR04 kunt verbeteren

  • Houd het gemeten object binnen het aanbevolen afstandsbereik en buiten de blinde zone van 2 cm.

  • Gebruik een vlak en stevig doeloppervlak voor betere ultrasone reflectie.

  • Vermijd het meten van zachte, schuine, poreuze of geluidsabsorberende materialen.

  • Gebruik een stabiele 5V-voeding en houd de bedrading kort en veilig.

  • Voeg een time-out toe aan pulseIn() om langdurige blokkering te voorkomen wanneer er geen echo terugkeert.

  • Gemiddelde of mediaan-filter verschillende metingen om ruis te verminderen.

  • Voor een grotere nauwkeurigheid compenseer je de temperatuur omdat de geluidssnelheid verandert met de luchttemperatuur.

Gemeenschappelijke toepassingen van Arduino ultrasone sensorprojecten

Sollicitatie Hoe HC-SR04 wordt gebruikt
Obstakelvermijdingsrobot Detecteert objecten in de buurt en helpt de robot van richting te veranderen.
Parkeersensor Meet de afstand tussen het voertuig en een obstakel.
Detectie van vloeistofniveau Meet contactloos de afstand van de sensor tot het vloeistofoppervlak.
Slimme prullenbak Detecteert een hand of voorwerp in de buurt en activeert de automatische opening van het deksel.

Samenvatting

Om een ​​HC-SR04 ultrasone sensor met Arduino te gebruiken, sluit u VCC aan op 5V, GND op GND, TRIG op een digitale uitgangspin en ECHO op een digitale ingangspin. Stuur een triggerpuls van 10us, lees de echoduur af met pulseIn() en bereken de afstand met de time-of-flight-formule.

De HC-SR04 is goedkoop, gemakkelijk te gebruiken en geschikt voor veel Arduino-afstandsmeetprojecten. Voor de beste resultaten moet u letten op het doeloppervlak, de meethoek, de blinde zone, stabiel vermogen, time-outhantering en temperatuureffecten.

Veelgestelde vragen over de HC-SR04 Arduino ultrasone sensor

Hoe werkt de HC-SR04 ultrasone sensor met Arduino?

Arduino stuurt een 10us-puls naar de TRIG-pin. De HC-SR04 zendt acht ultrasone pulsen van 40 kHz uit en zet de ECHO-pin hoog totdat het gereflecteerde geluid terugkeert. Arduino meet deze pulstijd en berekent de afstand.

Wat is de afstandsformule voor HC-SR04 Arduino-projecten?

De formule is afstand = duur × geluidssnelheid / 2. In centimeters is een gebruikelijke Arduino-formule afstandCm = duur × 0,0343 / 2, waarbij de duur wordt gemeten in microseconden.

Waarom delen we het resultaat van de ultrasone sensor door 2?

De gemeten echotijd is de retourtijd van de sensor naar het object en terug naar de sensor. Delen door 2 geeft de eenrichtingsafstand tussen de sensor en het object.

Welke Arduino-pinnen moet ik gebruiken voor TRIG en ECHO?

U kunt de meeste Arduino digitale pinnen gebruiken. In veel voorbeelden is TRIG aangesloten op digitale pin 9 en ECHO op digitale pin 10. De code moet overeenkomen met de pinnen die in uw bedrading worden gebruikt.

Waarom retourneert mijn HC-SR04 ultrasone sensor nul of willekeurige waarden?

Veel voorkomende oorzaken zijn losse bedrading, onstabiele 5V-voeding, verkeerde TRIG- of ECHO-pinnummers, geen object binnen bereik, schuine doeloppervlakken, zachte materialen, geblokkeerde sensorkoppen of geen time-out in de pulseIn()-functie.

Wat is de blinde zone van de HC-SR04 ultrasone sensor?

De blinde zone is de minimale afstand waarop de module niet betrouwbaar kan meten. Voor HC-SR04 is de blinde zone gewoonlijk ongeveer 2 cm. Voorwerpen dichterbij dan dit kunnen onstabiele metingen opleveren.

Kan HC-SR04 het waterniveau meten met Arduino?

Ja, HC-SR04 kan worden gebruikt voor eenvoudige contactloze waterpeilprojecten als de sensor beschermd is tegen vocht en boven het vloeistofoppervlak is gemonteerd. Voor vochtige, buiten- of industriële tanks wordt een waterdichte ultrasone sensor aanbevolen.

Hoe kan ik de Arduino-ultrasone sensormetingen stabieler maken?

Gebruik een stabiele voeding, houd de sensor loodrecht op het doel, vermijd zachte of schuine oppervlakken, voeg pulseIn time-out toe, voer meerdere metingen uit, gebruik mediaanfiltering en laat ongeveer 60 ms tussen de metingen.

Inhoudsopgave