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

Hur använder man ultraljudssensor med Arduino?

Visningar: 164     Författare: Grace Publiceringstid: 2021-07-26 Ursprung: Plats

Facebook delningsknapp
twitter delningsknapp
linjedelningsknapp
wechat delningsknapp
linkedin delningsknapp
pinterest delningsknapp
whatsapp delningsknapp
kakao delningsknapp
snapchat delningsknapp
telegramdelningsknapp
dela den här delningsknappen

Hur man använder ultraljudssensor med Arduino: HC-SR04 Guide

De HC-SR04 ultraljudssensor är en av de mest populära avståndsmätningsmodulerna för Arduino-projekt. Den används ofta i robotar för att undvika hinder, parkeringssensorer, nivådetektering, smarta papperskorgar, avståndsmätare och andra beröringsfria avkänningsapplikationer.

Modulen sänder ut 40kHz ultraljudsvågor genom en sändare. När ljudvågen möter ett föremål reflekteras den tillbaka till mottagaren. Genom att mäta ekotiden och använda ljudets hastighet kan Arduino beräkna avståndet mellan sensorn och objektet.

HC-SR04 ultraljudssensormodul för Arduino avståndsmätning

HC-SR04 Tekniska huvudparametrar

Parameter Värde
Typisk arbetsspänning 5V DC
Statisk arbetsström Mindre än 5mA på vissa modulversioner
Driftsfrekvens 40kHz ultraljudsvåg
Detektionsavstånd Vanligt område: 2cm till 400cm; vissa förstärkningsjusterade versioner kan stödja längre räckvidd.
Detekteringsvinkel Vanligtvis inom 15 grader; vissa versioner med högre förstärkning kan nå cirka 30 grader.
Precision Upp till ca 0,3 cm under lämpliga testförhållanden
Blind zon Cirka 2 cm minsta mätavstånd

HC-SR04 Pin Beskrivning

HC-SR04 ultraljudsmodulen har fyra stift: VCC, TRIG, ECHO och GND. Arduino skickar en kort triggerpuls till TRIG-stiftet och läser sedan returpulsen från ECHO-stiftet.

HC-SR04 Pin Arduino-anslutning Fungera
VCC 5V Strömförsörjning för ultraljudsmodulen.
TRIG Digital stift 9 Triggeringång. Arduino applicerar en puls på 10us för att börja mäta.
EKO Digital stift 10 Ekoutgång. Arduino läser av pulsbredd för att beräkna avstånd.
GND GND Jordförbindelse.

HC-SR04 ultraljudssensor pinout VCC TRIG ECHO GND

Arbetsprincip för HC-SR04 ultraljudssensor

HC-SR04 fungerar genom att mäta flygtiden. Arduino skickar en triggersignal på hög nivå på minst 10 mikrosekunder till TRIG-stiftet. Modulen skickar sedan automatiskt åtta 40kHz ultraljudspulser och väntar på det reflekterade ekot.

När den reflekterade ultraljudssignalen detekteras avger ECHO-stiftet en högnivåpuls. Varaktigheten för denna puls är ultraljudsvågens restid tur och retur.

Avstånd = Eko högnivåtid × Ljudhastighet / 2

I Arduino-kod är den vanliga förenklade formeln:

Avstånd i cm = varaktighet × 0,0343 / 2

HC-SR04 ultraljudsmodulens arbetsprincip för flygtid

Timingdiagram för HC-SR04 ultraljudsmodul

Timingprocessen är enkel: Arduino håller TRIG låg en kort stund, skickar en 10us hög puls och återställer sedan TRIG till låg. HC-SR04 skickar en ultraljudskur och ställer in ECHO högt tills den reflekterade signalen kommer tillbaka eller mätningen tar slut.

För att undvika instabila avläsningar, lämna en kort fördröjning mellan mätningarna. En mätcykel på cirka 60ms används vanligtvis så att det föregående ultraljudsekot hinner försvinna innan nästa trigger.

Arduinos programmeringsgrunder: pulseIn-funktion

Arduino pulseIn() -funktionen används för att mäta hur länge en digital pin förblir HÖG eller LÅG. För HC-SR04 använder Arduino pulseIn(echoPin, HIGH) för att läsa av högnivåpulsbredden från ECHO-stiftet.

Syntax Menande
pulseIn(stift, värde) Läser varaktigheten av en HÖG eller LÅG puls.
pulseIn(stift, värde, timeout) Läser pulsen med ett timeoutvärde i mikrosekunder.

Det rekommenderas att använda en timeout. Om inget eko returneras kan funktionen sluta vänta och returnera 0 istället för att blockera programmet för länge.

Arduino-kort används med HC-SR04 ultraljudsavståndssensor

Hur man ansluter HC-SR04 ultraljudssensor till Arduino

Ledningarna är okomplicerade. Anslut VCC till 5V, GND till GND, TRIG till en Arduino digital utgångsstift och ECHO till en Arduino digital ingångsstift. Följande exempel använder Arduino Uno, TRIG på stift 9 och ECHO på stift 10.

Arduino Uno kopplingsschema för HC-SR04 ultraljudssensor

HC-SR04 Ultraljudssensor Arduino-kod

Följande typiska Arduino-program skickar en 10us triggerpuls, läser av ECHO-pulsbredden, beräknar avstånd i centimeter och skriver ut resultatet i den seriella monitorn.

const int trigPin = 9; const int echoPin = 10; lång varaktighet; flytavståndCm; 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);   duration = pulseIn(echoPin, HIGH, 30000);   if (varaktighet == 0) { Serial.println('Utanom intervall');   } annat { avståndCm = varaktighet * 0,0343 / 2;     Serial.print('Avstånd: ');     Serial.print(distanceCm);     Serial.println(' cm');   } delay(60); }

Om du ser avståndsvärden i den seriella monitorn fungerar HC-SR04 ultraljudssensorn och Arduino-ledningarna korrekt. Du kan sedan använda avståndsdata för hinderdetektering, robotrörelsekontroll, automatiska dörrar, parkeringspåminnelser eller vätskenivåprojekt.

Arduino HC-SR04 ultraljudssensorprogram

Hur man förbättrar HC-SR04 mätnoggrannhet

  • Håll det uppmätta föremålet inom det rekommenderade avståndsintervallet och utanför den blinda zonen på 2 cm.

  • Använd en plan och solid målyta för bättre ultraljudsreflektion.

  • Undvik att mäta mjuka, vinklade, porösa eller ljudabsorberande material.

  • Använd en stabil 5V strömförsörjning och håll kablarna korta och säkra.

  • Lägg till en timeout till pulseIn() för att förhindra lång blockering när inget eko kommer tillbaka.

  • Genomsnittlig eller medianfiltrera flera avläsningar för att minska brus.

  • För högre noggrannhet, kompensera för temperatur eftersom ljudhastigheten ändras med lufttemperaturen.

Vanliga tillämpningar av Arduino Ultrasonic Sensor Projects

Ansökan Hur HC-SR04 används
Robot för att undvika hinder Upptäcker närliggande föremål och hjälper roboten att ändra riktning.
Parkeringsavståndssensor Mäter avståndet mellan fordonet och ett hinder.
Detektering av vätskenivå Mäter avståndet från sensorn till vätskeytan utan kontakt.
Smart papperskorg Upptäcker en närliggande hand eller föremål och utlöser automatisk locköppning.

Sammanfattning

För att använda en HC-SR04 ultraljudssensor med Arduino, anslut VCC till 5V, GND till GND, TRIG till ett digitalt utgångsstift och ECHO till ett digitalt ingångsstift. Skicka en 10us triggerpuls, läs ekotaktighet med pulseIn() och beräkna avståndet med formeln för flygtid.

HC-SR04 är billig, lätt att använda och lämplig för många Arduino avståndsmätningsprojekt. För bästa resultat, var uppmärksam på målyta, mätvinkel, blindzon, stabil effekt, timeouthantering och temperatureffekter.

Vanliga frågor om HC-SR04 Arduino ultraljudssensor

Hur fungerar HC-SR04 ultraljudssensorn med Arduino?

Arduino skickar en 10us-puls till TRIG-stiftet. HC-SR04 sänder ut åtta 40 kHz ultraljudspulser och sätter ECHO-stiftet högt tills det reflekterade ljudet kommer tillbaka. Arduino mäter denna pulstid och beräknar avstånd.

Vad är avståndsformeln för HC-SR04 Arduino-projekt?

Formeln är avstånd = varaktighet × ljudhastighet / 2. I centimeter är en vanlig Arduino-formel distansCm = varaktighet × 0,0343 / 2, där varaktigheten mäts i mikrosekunder.

Varför delar vi ultraljudssensorresultatet med 2?

Den uppmätta ekotiden är tiden fram och tillbaka från sensorn till objektet och tillbaka till sensorn. Att dividera med 2 ger envägsavståndet mellan sensorn och objektet.

Vilka Arduino-stift ska jag använda för TRIG och ECHO?

Du kan använda de flesta Arduino digitala stift. I många exempel är TRIG ansluten till digital stift 9 och ECHO ansluten till digital stift 10. Koden måste matcha stiften som används i din kabeldragning.

Varför returnerar min HC-SR04 ultraljudssensor noll eller slumpmässiga värden?

Vanliga orsaker inkluderar lösa ledningar, instabil 5V-ström, fel TRIG- eller ECHO-stiftnummer, inget föremål inom räckvidd, vinklade målytor, mjuka material, blockerade sensorhuvuden eller ingen timeout i pulseIn()-funktionen.

Vad är den blinda zonen för HC-SR04 ultraljudssensorn?

Blindzonen är det minsta avståndet där modulen inte kan mäta tillförlitligt. För HC-SR04 är blindzonen vanligtvis cirka 2 cm. Objekt närmare än detta kan ge instabila avläsningar.

Kan HC-SR04 mäta vattennivån med Arduino?

Ja, HC-SR04 kan användas för enkla beröringsfria vattennivåprojekt om sensorn är skyddad från fukt och monterad ovanför vätskeytan. För fuktiga, utomhus- eller industritankar rekommenderas en vattentät ultraljudssensor.

Hur kan jag göra Arduino ultraljudssensoravläsningar mer stabila?

Använd en stabil strömförsörjning, håll sensorn vinkelrätt mot målet, undvik mjuka eller vinklade ytor, lägg till pulseIn timeout, gör flera avläsningar, använd medianfiltrering och låt cirka 60 ms mellan mätningarna.

Innehållsförteckning