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

Hvordan bruke ultralydsensor med Arduino?

Visninger: 164     Forfatter: Grace Publiseringstid: 26-07-2021 Opprinnelse: nettsted

Facebook delingsknapp
twitter-delingsknapp
linjedeling-knapp
wechat-delingsknapp
linkedin delingsknapp
pinterest delingsknapp
whatsapp delingsknapp
kakao delingsknapp
snapchat delingsknapp
telegramdelingsknapp
del denne delingsknappen

Slik bruker du ultralydsensor med Arduino: HC-SR04-veiledning

De HC-SR04 ultralydsensor er en av de mest populære avstandsmålingsmodulene for Arduino-prosjekter. Den er mye brukt i roboter som unngår hindringer, parkeringssensorer, nivådeteksjon, smarte søppelkasser, avstandsmålere og andre berøringsfrie applikasjoner.

Modulen sender ut 40kHz ultralydbølger gjennom en sender. Når lydbølgen møter et objekt, reflekteres den tilbake til mottakeren. Ved å måle ekkotiden og bruke lydhastigheten kan Arduino beregne avstanden mellom sensoren og objektet.

HC-SR04 ultralydsensormodul for Arduino avstandsmåling

HC-SR04 Tekniske hovedparametere

Parameter Verdi
Typisk arbeidsspenning 5V DC
Statisk arbeidsstrøm Mindre enn 5mA på enkelte modulversjoner
Driftsfrekvens 40kHz ultralydbølge
Deteksjonsavstand Felles rekkevidde: 2cm til 400cm; noen forsterkningsjusterte versjoner kan støtte lengre rekkevidde.
Deteksjonsvinkel Vanligvis innenfor 15 grader; noen versjoner med høyere forsterkning kan nå rundt 30 grader.
Presisjon Opptil ca. 0,3 cm under passende testforhold
Blindsone Ca 2 cm minimum måleavstand

HC-SR04 Pin Beskrivelse

HC-SR04 ultralydmodulen har fire pinner: VCC, TRIG, ECHO og GND. Arduino sender en kort triggerpuls til TRIG-pinnen, og leser deretter returpulsen fra ECHO-pinnen.

HC-SR04 Pin Arduino-tilkobling Funksjon
VCC 5V Strømforsyning for ultralydmodulen.
TRIG Digital pinne 9 Triggerinngang. Arduino bruker en 10us-puls for å starte avstandsmåling.
EKKO Digital pinne 10 Ekkoutgang. Arduino leser pulsbredde for å beregne avstand.
GND GND Jordforbindelse.

HC-SR04 ultralydsensor pinout VCC TRIG ECHO GND

Arbeidsprinsipp for HC-SR04 ultralydsensor

HC-SR04 fungerer ved måling av flytiden. Arduino sender et høynivå triggersignal på minst 10 mikrosekunder til TRIG-pinnen. Modulen sender da automatisk åtte 40kHz ultralydpulser og venter på det reflekterte ekkoet.

Når det reflekterte ultralydsignalet oppdages, sender ECHO-pinnen ut en høynivåpuls. Varigheten av denne pulsen er tur-retur-reisetiden for ultralydbølgen.

Avstand = Ekko på høyt nivå × lydhastighet / 2

I Arduino-kode er den vanlige forenklede formelen:

Avstand i cm = varighet × 0,0343 / 2

HC-SR04 ultralydmodulens time of flight arbeidsprinsipp

Timingdiagram for HC-SR04 ultralydmodul

Tidsprosessen er enkel: Arduino holder TRIG lav kort, sender en 10us høy puls, og returnerer deretter TRIG til lav. HC-SR04 sender en ultrasonisk burst og setter ECHO høyt til det reflekterte signalet kommer tilbake eller målingen går ut.

For å unngå ustabile målinger, la en kort forsinkelse mellom målingene. En målesyklus på ca. 60 ms brukes vanligvis, slik at det forrige ultralydsekkoet har tid til å forsvinne før neste trigger.

Grunnleggende programmering i Arduino: pulseIn-funksjon

Arduino pulseIn() -funksjonen brukes til å måle hvor lenge en digital pin forblir HØY eller LAV. For HC-SR04 bruker Arduino pulseIn(echoPin, HIGH) for å lese pulsbredden på høyt nivå fra ECHO-pinnen.

Syntaks Betydning
pulseIn(pin, verdi) Leser varigheten av en HØY eller LAV puls.
pulseIn(pin, verdi, tidsavbrudd) Leser pulsen med en timeout-verdi i mikrosekunder.

Det anbefales å bruke en timeout. Hvis det ikke returneres noe ekko, kan funksjonen slutte å vente og returnere 0 i stedet for å blokkere programmet for lenge.

Arduino-kort brukt med HC-SR04 ultralydavstandssensor

Hvordan koble HC-SR04 ultralydsensor til Arduino

Kablingen er grei. Koble VCC til 5V, GND til GND, TRIG til en Arduino digital utgangspinne og ECHO til en Arduino digital inngangspinne. Følgende eksempel bruker Arduino Uno, TRIG på pinne 9 og ECHO på pinne 10.

Arduino Uno breadboard koblingsskjema for HC-SR04 ultralydsensor

HC-SR04 Ultralydsensor Arduino-kode

Følgende typiske Arduino-program sender en 10us triggerpuls, leser ECHO-pulsbredden, beregner avstand i centimeter og skriver ut resultatet i seriemonitoren.

const int trigPin = 9; const int echoPin = 10; lang varighet; flyteavstandCm; void setup() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   delayMicroseconds(2);   digitalWrite(trigPin, HIGH);   delayMicroseconds(10);   digitalWrite(trigPin, LOW);   varighet = pulsIn(echoPin, HIGH, 30000);   if (varighet == 0) { Serial.println('Utenfor rekkevidde');   } annet { avstandCm = varighet * 0,0343 / 2;     Serial.print('Avstand: ');     Serial.print(distanceCm);     Serial.println(' cm');   } delay(60); }

Hvis du ser avstandsverdier i den serielle monitoren, fungerer HC-SR04 ultralydsensoren og Arduino-kablingen som den skal. Du kan deretter bruke avstandsdataene til hindringsdeteksjon, robotbevegelseskontroll, automatiske dører, parkeringspåminnelser eller væskenivåprosjekter.

Arduino HC-SR04 ultralydsensorprogram

Hvordan forbedre HC-SR04 målenøyaktighet

  • Hold det målte objektet innenfor anbefalt avstandsområde og utenfor blindsonen på 2 cm.

  • Bruk en flat og solid måloverflate for bedre ultralydrefleksjon.

  • Unngå å måle myke, vinklede, porøse eller lydabsorberende materialer.

  • Bruk en stabil 5V strømforsyning og hold ledningene korte og sikre.

  • Legg til et tidsavbrudd til pulseIn() for å forhindre lang blokkering når ingen ekko kommer tilbake.

  • Gjennomsnittlig eller median-filter flere målinger for å redusere støy.

  • For høyere nøyaktighet, kompenser for temperatur fordi lydhastigheten endres med lufttemperaturen.

Vanlige bruksområder for Arduino Ultrasonic Sensor Projects

Søknad Hvordan HC-SR04 brukes
Robot for å unngå hindringer Oppdager objekter i nærheten og hjelper roboten med å endre retning.
Parkeringsavstandssensor Måler avstanden mellom kjøretøyet og en hindring.
Deteksjon av væskenivå Måler avstanden fra sensoren til væskeoverflaten uten kontakt.
Smart søppelbøtte Oppdager en nærliggende hånd eller gjenstand og utløser automatisk åpning av lokket.

Sammendrag

For å bruke en HC-SR04 ultralydsensor med Arduino, koble VCC til 5V, GND til GND, TRIG til en digital utgangspinne og ECHO til en digital inngangspinne. Send en 10us triggerpuls, les ekkovarigheten med pulseIn(), og beregn avstanden med formelen for flytiden.

HC-SR04 er billig, enkel å bruke og egnet for mange Arduino-avstandsmålingsprosjekter. For best resultat, vær oppmerksom på måloverflate, målevinkel, blindsone, stabil kraft, timeout-håndtering og temperatureffekter.

Ofte stilte spørsmål om HC-SR04 Arduino ultralydsensor

Hvordan fungerer HC-SR04 ultralydsensor med Arduino?

Arduino sender en 10us-puls til TRIG-pinnen. HC-SR04 sender ut åtte 40 kHz ultralydpulser og setter ECHO-pinnen høyt til den reflekterte lyden kommer tilbake. Arduino måler denne pulstiden og beregner avstand.

Hva er avstandsformelen for HC-SR04 Arduino-prosjekter?

Formelen er avstand = varighet × lydhastighet / 2. I centimeter er en vanlig Arduino-formel avstandCm = varighet × 0,0343 / 2, hvor varigheten måles i mikrosekunder.

Hvorfor deler vi ultralydsensorresultatet med 2?

Den målte ekkotiden er tur-retur-tiden fra sensoren til objektet og tilbake til sensoren. Deling på 2 gir enveisavstanden mellom sensoren og objektet.

Hvilke Arduino-pinner bør jeg bruke for TRIG og ECHO?

Du kan bruke de fleste Arduino digitale pins. I mange eksempler er TRIG koblet til digital pin 9 og ECHO er koblet til digital pin 10. Koden må samsvare med pinnene som brukes i ledningene dine.

Hvorfor returnerer HC-SR04 ultralydsensoren null eller tilfeldige verdier?

Vanlige årsaker inkluderer løse ledninger, ustabil 5V strøm, feil TRIG- eller ECHO-pinnumre, ingen gjenstander innen rekkevidde, vinklede måloverflater, myke materialer, blokkerte sensorhoder eller ingen tidsavbrudd i pulseIn()-funksjonen.

Hva er blindsonen til HC-SR04 ultralydsensoren?

Blindsonen er minimumsavstanden der modulen ikke kan måle pålitelig. For HC-SR04 er blindsonen vanligvis ca. 2 cm. Objekter nærmere enn dette kan gi ustabile målinger.

Kan HC-SR04 måle vannstanden med Arduino?

Ja, HC-SR04 kan brukes til enkle berøringsfrie vannnivåprosjekter hvis sensoren er beskyttet mot fuktighet og montert over væskeoverflaten. For fuktige, utendørs eller industrielle tanker anbefales en vanntett ultralydsensor.

Hvordan kan jeg gjøre Arduino ultralydsensoravlesninger mer stabile?

Bruk en stabil strømforsyning, hold sensoren vinkelrett på målet, unngå myke eller vinklede overflater, legg til pulseIn timeout, ta flere avlesninger, bruk medianfiltrering og la ca. 60 ms mellom målinger.

Innholdsfortegnelse