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

Hvordan bruger man ultralydssensor med Arduino?

Visninger: 164     Forfatter: Grace Udgivelsestid: 26-07-2021 Oprindelse: websted

facebook delingsknap
twitter-delingsknap
knap til linjedeling
wechat-delingsknap
linkedin-delingsknap
pinterest delingsknap
whatsapp delingsknap
kakao-delingsknap
snapchat-delingsknap
telegram-delingsknap
del denne delingsknap

Sådan bruges ultralydssensor med Arduino: HC-SR04-vejledning

De HC-SR04 ultralydssensor er et af de mest populære afstandsmålingsmoduler til Arduino-projekter. Det bruges i vid udstrækning i robotter til undgåelse af forhindringer, parkeringssensorer, niveaudetektion, smarte skraldespande, afstandsmålere og andre berøringsfri registreringsapplikationer.

Modulet udsender 40kHz ultralydsbølger gennem en sender. Når lydbølgen møder et objekt, reflekteres den tilbage til modtageren. Ved at måle ekkotiden og bruge lydens hastighed kan Arduino beregne afstanden mellem sensoren og objektet.

HC-SR04 ultralydssensormodul til Arduino afstandsmåling

HC-SR04 Vigtigste tekniske parametre

Parameter Værdi
Typisk arbejdsspænding 5V DC
Statisk arbejdsstrøm Mindre end 5mA på nogle modulversioner
Driftsfrekvens 40kHz ultralydsbølge
Detektionsafstand Fælles rækkevidde: 2cm til 400cm; nogle forstærkningsjusterede versioner understøtter muligvis længere rækkevidde.
Detektionsvinkel Normalt inden for 15 grader; nogle versioner med højere forstærkning kan nå omkring 30 grader.
Præcision Op til ca. 0,3 cm under passende testforhold
Blind zone Cirka 2 cm minimum måleafstand

HC-SR04 Pin Beskrivelse

HC-SR04 ultralydsmodulet har fire ben: VCC, TRIG, ECHO og GND. Arduino sender en kort triggerimpuls til TRIG-pinden og læser derefter returimpulsen fra ECHO-pinden.

HC-SR04 Pin Arduino forbindelse Fungere
VCC 5V Strømforsyning til ultralydsmodulet.
TRIG Digital pin 9 Trigger input. Arduino anvender en 10us-puls for at begynde at måle.
EKKO Digital pin 10 Ekko output. Arduino aflæser pulsbredde for at beregne afstand.
GND GND Jordforbindelse.

HC-SR04 ultralydssensor pinout VCC TRIG ECHO GND

Arbejdsprincippet for HC-SR04 ultralydssensor

HC-SR04 fungerer ved måling af flyvetid. Arduino sender et højniveau triggersignal på mindst 10 mikrosekunder til TRIG-stiften. Modulet sender derefter automatisk otte 40kHz ultralydsimpulser og venter på det reflekterede ekko.

Når det reflekterede ultralydssignal detekteres, udsender ECHO-stiften en højniveauimpuls. Varigheden af ​​denne puls er ultralydsbølgens tur-retur-rejsetid.

Afstand = Ekko på højt niveau × lydens hastighed / 2

I Arduino-kode er den almindelige forenklede formel:

Afstand i cm = varighed × 0,0343 / 2

HC-SR04 ultralydsmodulets time of flight arbejdsprincip

Timingdiagram for HC-SR04 ultralydsmodul

Timingprocessen er enkel: Arduino holder TRIG lavt kort, sender en 10us høj puls og returnerer derefter TRIG til lav. HC-SR04 sender et ultralydsburst og indstiller ECHO højt, indtil det reflekterede signal vender tilbage, eller målingen timeout.

For at undgå ustabile aflæsninger, lad en kort forsinkelse mellem målingerne. En målecyklus på omkring 60 ms er almindeligvis brugt, så det forrige ultralydsekko når at forsvinde før den næste trigger.

Arduino Programmering Grundlæggende: pulseIn funktion

Arduino pulseIn() -funktionen bruges til at måle, hvor længe en digital pin forbliver HØJ eller LAV. Til HC-SR04 bruger Arduino pulseIn(echoPin, HIGH) til at aflæse pulsbredden på højt niveau fra ECHO-stiften.

Syntaks Mening
pulseIn(pin, værdi) Aflæser varigheden af ​​en HØJ eller LAV puls.
pulseIn(pin, værdi, timeout) Læser pulsen med en timeoutværdi i mikrosekunder.

Det anbefales at bruge en timeout. Hvis der ikke returneres et ekko, kan funktionen stoppe med at vente og returnere 0 i stedet for at blokere programmet for længe.

Arduino-kort brugt med HC-SR04 ultralydsafstandssensor

Sådan tilsluttes HC-SR04 ultralydssensor til Arduino

Ledningen er ligetil. Tilslut VCC til 5V, GND til GND, TRIG til en Arduino digital udgangspin og ECHO til en Arduino digital input pin. Følgende eksempel bruger Arduino Uno, TRIG på ben 9 og ECHO på ben 10.

Arduino Uno breadboard ledningsdiagram til HC-SR04 ultralydssensor

HC-SR04 Ultralydssensor Arduino-kode

Følgende typiske Arduino-program sender en 10us trigger-impuls, aflæser ECHO-pulsbredden, beregner afstanden i centimeter og udskriver resultatet i den serielle monitor.

const int trigPin = 9; const int echoPin = 10; lang varighed; flydeafstandCm; 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);   varighed = pulsIn(echoPin, HIGH, 30000);   if (varighed == 0) { Serial.println('Udenfor rækkevidde');   } andet { distanceCm = varighed * 0,0343 / 2;     Serial.print('Afstand: ');     Serial.print(distanceCm);     Serial.println(' cm');   } delay(60); }

Hvis du ser afstandsværdier i den serielle monitor, fungerer HC-SR04 ultralydssensoren og Arduino-ledningerne korrekt. Du kan derefter bruge afstandsdataene til forhindringsdetektion, robotbevægelseskontrol, automatiske døre, parkeringspåmindelser eller væskeniveauprojekter.

Arduino HC-SR04 ultralydssensorprogram

Sådan forbedres HC-SR04-målenøjagtigheden

  • Hold det målte objekt inden for det anbefalede afstandsområde og uden for den 2 cm blinde zone.

  • Brug en flad og solid måloverflade for bedre ultralydsreflektion.

  • Undgå at måle bløde, vinklede, porøse eller lydabsorberende materialer.

  • Brug en stabil 5V strømforsyning og hold ledningerne korte og sikre.

  • Tilføj en timeout til pulseIn() for at forhindre lang blokering, når intet ekko vender tilbage.

  • Gennemsnitlig eller median-filter adskillige aflæsninger for at reducere støj.

  • For højere nøjagtighed skal du kompensere for temperaturen, fordi lydhastigheden ændres med lufttemperaturen.

Almindelige anvendelser af Arduino Ultrasonic Sensor Projects

Anvendelse Sådan bruges HC-SR04
Robot til at undgå forhindringer Registrerer genstande i nærheden og hjælper robotten med at ændre retning.
Parkeringsafstandssensor Måler afstanden mellem køretøjet og en forhindring.
Detektion af væskeniveau Måler afstanden fra sensoren til væskeoverfladen uden kontakt.
Smart skraldespand Registrerer en nærliggende hånd eller genstand og udløser automatisk lågåbning.

Oversigt

For at bruge en HC-SR04 ultralydssensor med Arduino skal du tilslutte VCC til 5V, GND til GND, TRIG til en digital udgangspin og ECHO til en digital inputpin. Send en 10us triggerimpuls, aflæs ekkovarigheden med pulseIn(), og beregn distance med flyvetidsformlen.

HC-SR04 er billig, nem at bruge og velegnet til mange Arduino-afstandsmålingsprojekter. For de bedste resultater skal du være opmærksom på måloverfladen, målevinkel, blindzone, stabil effekt, timeouthåndtering og temperatureffekter.

Ofte stillede spørgsmål om HC-SR04 Arduino ultralydssensor

Hvordan fungerer HC-SR04 ultralydssensoren med Arduino?

Arduino sender en 10us-puls til TRIG-pinden. HC-SR04 udsender otte 40 kHz ultralydsimpulser og sætter ECHO-stiften højt, indtil den reflekterede lyd vender tilbage. Arduino måler denne pulstid og beregner afstand.

Hvad er afstandsformlen for HC-SR04 Arduino-projekter?

Formlen er afstand = varighed × lydens hastighed / 2. I centimeter er en almindelig Arduino-formel distanceCm = varighed × 0,0343 / 2, hvor varigheden måles i mikrosekunder.

Hvorfor dividerer vi ultralydssensorresultatet med 2?

Den målte ekkotid er tiden fra sensoren til objektet og tilbage til sensoren. At dividere med 2 giver en ensrettet afstand mellem sensoren og objektet.

Hvilke Arduino-stifter skal jeg bruge til TRIG og ECHO?

Du kan bruge de fleste Arduino digitale pins. I mange eksempler er TRIG forbundet til digital pin 9, og ECHO er forbundet til digital pin 10. Koden skal matche de ben, der bruges i din ledningsføring.

Hvorfor returnerer min HC-SR04 ultralydssensor nul eller tilfældige værdier?

Almindelige årsager omfatter løse ledninger, ustabil 5V strøm, forkerte TRIG- eller ECHO-pinnumre, ingen genstand inden for rækkevidde, vinklede måloverflader, bløde materialer, blokerede sensorhoveder eller ingen timeout i pulseIn()-funktionen.

Hvad er den blinde zone af HC-SR04 ultralydssensoren?

Blindzonen er den mindste afstand, hvor modulet ikke kan måle pålideligt. For HC-SR04 er blindzonen normalt omkring 2 cm. Objekter tættere på end dette kan give ustabile aflæsninger.

Kan HC-SR04 måle vandstanden med Arduino?

Ja, HC-SR04 kan bruges til simple berøringsfri vandstandsprojekter, hvis sensoren er beskyttet mod fugt og monteret over væskeoverfladen. Til fugtige, udendørs eller industrielle tanke anbefales en vandtæt ultralydssensor.

Hvordan kan jeg gøre Arduino ultralydssensoraflæsninger mere stabile?

Brug en stabil strømforsyning, hold sensoren vinkelret på målet, undgå bløde eller vinklede overflader, tilføj pulseIn timeout, tag flere aflæsninger, brug medianfiltrering og tillad ca. 60 ms mellem målinger.

Indholdsfortegnelse