How does HC sr04 work?

Komplet Guide til HC-SR04 Ultralydssensor

23/10/2004

Rating: 4.71 (12638 votes)

Ultralydssensorer er en fascinerende teknologi, der giver os mulighed for at måle afstand uden fysisk kontakt, meget ligesom en flagermus navigerer i mørket ved hjælp af ekkolokalisering. En af de mest populære og tilgængelige sensorer for hobbyister, studerende og professionelle er HC-SR04. Denne lille, men kraftfulde enhed, åbner op for en verden af muligheder inden for robotik, automatisering og interaktive installationer. I denne dybdegående artikel vil vi udforske alt, hvad der er værd at vide om HC-SR04, fra dens grundlæggende funktionsprincip til avancerede anvendelser og alternativer. Uanset om du er nybegynder eller erfaren, vil denne guide give dig den nødvendige viden til at mestre præcis afstandsmåling.

How does hc-sr04 work?
The HC-SR04 makes it like the bat: it emits an ultrasonic signal and evaluates the echo. The distance can then be calculated via the flight time of the signal and the speed of sound. For this purpose, the module has an ultrasonic transmitter, which is marked with a “T” on the module. Next to it, marked with “R”, the receiver is located.
Indholdsfortegnelse

Hvad er HC-SR04 Ultralydsmodulet?

HC-SR04 er et ultralyds-afstandsmålingsmodul, der kan levere en berøringsfri måling fra 2 cm op til 400 cm. Nøjagtigheden kan under ideelle forhold nå helt ned til 3 mm, hvilket gør den yderst anvendelig til mange forskellige projekter. Modulet består af en ultralydssender, en modtager og et styringskredsløb, alt sammen samlet på et lille printkort. Dets popularitet skyldes en kombination af lav pris, brugervenlighed og pålidelig ydeevne, hvilket gør det til et oplagt valg for alle, der arbejder med platforme som Arduino eller Raspberry Pi.

Sådan Fungerer HC-SR04: Princippet Bag Ekkolokalisering

Funktionsprincippet for HC-SR04 er elegant i sin enkelhed og efterligner naturens egen teknologi. Ligesom en flagermus udsender et skrig og lytter efter ekkoet for at bestemme afstanden til objekter, gør HC-SR04 det samme med lydbølger, der ligger uden for det menneskelige høreområde.

Hele måleprocessen kan opdeles i et par simple trin:

  1. Aktivering (Trigger): For at starte en måling skal modulets 'Trig'-ben modtage et højt signal (typisk 5V) i mindst 10 mikrosekunder (µs).
  2. Udsendelse af Lydbølge: Når trigger-pulsen er modtaget, igangsætter sensoren automatisk udsendelsen af en kort byge af ultralyd. Denne byge består af otte pulser ved en frekvens på 40 kHz.
  3. Lytning efter Ekko: Umiddelbart efter at lydbølgen er sendt afsted, sætter modulet sit 'Echo'-ben til et højt niveau. Dette ben forbliver højt, indtil ekkoet – den reflekterede lydbølge – returnerer og bliver detekteret af modtageren.
  4. Beregning af Afstand: Varigheden af det høje signal på 'Echo'-benet er direkte proportional med den tid, det tog for lyden at rejse frem til objektet og tilbage igen. Ved at kende lydens hastighed kan vi nemt beregne afstanden.

Den målte tid repræsenterer den dobbelte rejsetid for lyden. Derfor skal tiden halveres i den endelige beregning for at finde den faktiske afstand til objektet.

Tekniske Specifikationer og Pinout

For at kunne anvende HC-SR04 korrekt er det vigtigt at kende dens tekniske egenskaber og pin-konfiguration.

Vigtigste Egenskaber

  • Driftsspænding: 5V DC
  • Strømforbrug: Ca. 3.5 mA under aktiv måling
  • Måleområde: 2 cm til 400 cm
  • Målenøjagtighed: Op til 3 mm (teoretisk)
  • Detektionsvinkel: Ca. 15°
  • Signaltyper: TTL (Transistor-Transistor Logic)
  • Maksimal målefrekvens: Op til 50 målinger pr. sekund

Pin-konfiguration

Modulet har fire ben, som er tydeligt markeret:

  • VCC: Tilsluttes til 5V strømforsyning.
  • Trig (Trigger): Input-ben. En kort puls her starter en måling.
  • Echo: Output-ben. Længden af den høje puls på dette ben angiver lydens rejsetid.
  • GND: Tilsluttes til stel (Ground).

Beregning af Afstand: Fra Tid til Centimeter

Selve beregningen er ret ligetil, men den er afhængig af en kritisk faktor: lydens hastighed. Lydens hastighed i luft er ikke konstant; den påvirkes primært af temperatur, men også af luftfugtighed og lufttryk. For de fleste hobbyprojekter kan vi dog bruge en standardværdi.

How to test HC sr04?
The timing diagram of HC SR04 is shown. To start measurement, Trig of SR04 must receive a pulse of high (5V) for at least 10us, this will initiate the sensor will transmit out 8 cycle of ultrasonic burst at 40kHz and wait for the reflected ultrasonic burst.

Ved stuetemperatur (ca. 20°C) i tør luft er lydens hastighed ca. 343,2 meter pr. sekund. Dette kan omregnes til 0,03432 centimeter pr. mikrosekund.

Den grundlæggende formel er:

Afstand [cm] = (Varighed [µs] * 0.03432) / 2

Faktoren 2 er nødvendig, fordi den målte varighed dækker rejsen både frem og tilbage.

Indflydelse af Temperatur

Hvis høj præcision er påkrævet, skal temperaturen tages i betragtning. En god tilnærmelse for lydens hastighed i luft som funktion af temperaturen er:

Lydens hastighed [m/s] ≈ 331.5 + 0.6 * T [°C]

En temperaturændring fra 0°C til 20°C kan medføre en målefejl på over 3,5%, hvilket er betydeligt mere end sensorens specificerede nøjagtighed. For præcise applikationer kan det derfor være en god idé at integrere en temperatursensor i dit projekt og justere beregningen dynamisk.

Tilslutning og Programmering med Arduino

At bruge HC-SR04 med en Arduino er utroligt simpelt takket være den indbyggede `pulseIn()` funktion. Her er et grundlæggende eksempel på, hvordan du tilslutter og programmerer den.

Kredsløbsdiagram

Tilslutningen er meget enkel:

  • HC-SR04 VCC -> Arduino 5V
  • HC-SR04 GND -> Arduino GND
  • HC-SR04 Trig -> Arduino Digital Pin 12 (eller en anden digital pin)
  • HC-SR04 Echo -> Arduino Digital Pin 11 (eller en anden digital pin)

Eksempelkode (Sketch)

Denne simple sketch udløser sensoren, måler ekko-tiden og udskriver den beregnede afstand i centimeter til seriel monitoren.

// Definer ben til Trig og Echo int const triggerBen = 12; int const echoBen = 11; void setup() { // Start seriel kommunikation for at vise resultater Serial.begin(9600); // Sæt ben-tilstande pinMode(triggerBen, OUTPUT); pinMode(echoBen, INPUT); } void loop() { // For at sikre en ren puls, sættes trigger-benet lavt først digitalWrite(triggerBen, LOW); delayMicroseconds(2); // Send en 10µs høj puls til trigger-benet for at starte målingen digitalWrite(triggerBen, HIGH); delayMicroseconds(10); digitalWrite(triggerBen, LOW); // Mål varigheden af den høje puls på echo-benet // pulseIn() returnerer tiden i mikrosekunder long varighed = pulseIn(echoBen, HIGH); // Beregn afstanden baseret på lydens hastighed (343.2 m/s eller 0.03432 cm/µs) // Vi dividerer med 2, da lyden rejser frem og tilbage int afstandCm = varighed * 0.03432 / 2; // Udskriv resultatet til seriel monitoren Serial.print("Afstand: "); Serial.print(afstandCm); Serial.println(" cm"); // Vent et øjeblik før næste måling delay(500); }

Et Vandtæt Alternativ: JSN-SR04T-2.0

Selvom HC-SR04 er fantastisk til indendørs brug, er den sårbar over for fugt og vand. Her kommer JSN-SR04T-2.0 ind i billedet. Dette er et vandtæt alternativ, hvor selve ultralydstransduceren er forseglet og forbundet til styringsmodulet via et 2,5 meter langt kabel. Dette gør den ideel til udendørs applikationer, som f.eks. måling af vandstand i en tank, parkeringssensorer til biler eller detektering af objekter i barske miljøer.

How to use hc-sr04 ultrasonic sensor with Arduino board?
Upload the code to your Arduino board. Then, open the Serial Monitor at a baud rate of 115200. The distance to the nearest object is printed in the Serial Monitor window. In this post, we’ve shown you how the HC-SR04 ultrasonic sensor works and how you can use it with the Arduino board.

Sammenligning: HC-SR04 vs. JSN-SR04T-2.0

Her er en hurtig sammenligning af de to populære sensorer for at hjælpe dig med at vælge den rigtige til dit projekt.

EgenskabHC-SR04JSN-SR04T-2.0
VandtæthedNejJa (kun transduceren)
Måleområde2 cm - 400 cm25 cm - 450 cm (op til 600 cm teoretisk)
Driftsspænding5V3V - 5.5V
Detektionsvinkel~15°~45° - 75° (bredere)
KommunikationTrigger/EchoTrigger/Echo, Kontinuerlig Seriel, Polled Seriel

Ofte Stillede Spørgsmål (FAQ)

Hvor nøjagtig er HC-SR04 i virkeligheden?

Den teoretiske nøjagtighed er 3 mm, men i praksis afhænger den stærkt af miljømæssige faktorer. Temperaturudsving er den største kilde til fejl. Desuden kan overfladen på det objekt, du måler på, spille en stor rolle. Hårde, flade overflader, der er vinkelret på sensoren, giver de bedste resultater.

Kan sensoren måle afstanden til bløde materialer som stof eller skum?

Det kan være udfordrende. Bløde, porøse eller uregelmæssige overflader har en tendens til at absorbere eller sprede lydbølgerne i stedet for at reflektere dem direkte tilbage til modtageren. Dette kan resultere i upålidelige eller ingen målinger.

Hvad er den maksimale målefrekvens?

Den maksimale frekvens er begrænset af den tid, det tager for lyden at rejse til den maksimale rækkevidde og tilbage. For en afstand på 4 meter tager lyden ca. 23 millisekunder. Derfor kan man teoretisk opnå op til ca. 40-50 målinger pr. sekund. Det anbefales dog at have en lille pause mellem målingerne for at undgå interferens fra tidligere ekkoer.

Hvorfor får jeg urealistiske eller nul-målinger?

Dette kan skyldes flere ting. Objektet kan være uden for sensorens rækkevidde (enten for tæt på eller for langt væk), for lille til at give et stærkt ekko, eller vinklet på en sådan måde, at ekkoet reflekteres væk fra sensoren. Sørg også for, at der ikke er forhindringer i sensorens 'synsfelt' (den 15-graders kegle).

Hvis du vil læse andre artikler, der ligner Komplet Guide til HC-SR04 Ultralydssensor, kan du besøge kategorien Sundhed.

Go up