Ultrazvukovy senzor HC-SR04 - manual: Rozdiel medzi revíziami

Zo stránky 3D liga wiki
Prejsť na navigáciu Prejsť na vyhľadávanie
dBez shrnutí editace
Sebastian (diskusia | príspevky)
dBez shrnutí editace
 
Riadok 1: Riadok 1:
[[Electronics | Späť do zoznamu]] | [[HC-SR04 - setup|HW príprava senzora HC-SR04]]
=== Ultrazvukový senzor ===
=== Ultrazvukový senzor ===
[[Electronics | Späť do zoznamu]] | [[HC-SR04 - setup|HW príprava senzora HC-SR04]]


Ultrazvukový senzor '''HC-SR04''' sa v niečom podobá na pasívnu sirénku, pomocou ktorej sa dá generovať zvuk rýchlym zapínaním a vypínaním bzučiaka. Teraz použijeme podobný princíp – ale na iný účel: '''meranie vzdialenosti'''.
Ultrazvukový senzor '''HC-SR04''' sa v niečom podobá na pasívnu sirénku, pomocou ktorej sa dá generovať zvuk rýchlym zapínaním a vypínaním bzučiaka. Teraz použijeme podobný princíp – ale na iný účel: '''meranie vzdialenosti'''.

Aktuálna revízia z 18:25, 8. september 2026

Späť do zoznamu | HW príprava senzora HC-SR04

Ultrazvukový senzor

Ultrazvukový senzor HC-SR04 sa v niečom podobá na pasívnu sirénku, pomocou ktorej sa dá generovať zvuk rýchlym zapínaním a vypínaním bzučiaka. Teraz použijeme podobný princíp – ale na iný účel: meranie vzdialenosti.

Senzor HC-SR04 má na sebe zabudovaný reproduktor aj mikrofón:

  • Reproduktor vyšle krátky ultrazvukový impulz cez pin TRIG
  • Impulz sa odrazí od objektu pred senzorom a vráti sa späť
  • Mikrofón zachytí odrazený signál a vyšle ho cez pin ECHO

Celý tento proces trvá nejaký čas – a práve z tohto času vieme vypočítať vzdialenosť.


Pozor – nie každý objekt odrazí ultrazvuk spoľahlivo. Mäkké a porézne materiály (napr. látka, molitan) zvuk pohlcujú namiesto odrazu, a senzor ich nemusí detekovať.

Zapojenie

Pin senzora Pin na RP2350-Zero
VCC 5V
GND GND
TRIG GP6
ECHO GP7

Kód – meranie času impulzu

Vyskúšaj toto: Skopíruj a spusti nasledujúci program. Otvor sériový monitor (9600 baud) a pohybuj rukou pred senzorom. Sleduj ako sa mení nameraná vzdialenosť.

const int TRIG = 6;
const int ECHO = 7;

void setup() {
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
  Serial.begin(9600);
}

// Funkcia odošle impulz a vráti nameraný čas v mikrosekundách
long measurePulse() {
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);

  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);

  return pulseIn(ECHO, HIGH);
}

void loop() {
  long trvanie = measurePulse();

  Serial.print("Čas: ");
  Serial.print(trvanie);

  delay(100);
}

Princíp

Novinka Vysvetlenie
pulseIn(pin, HIGH) Čaká kým pin prejde do stavu HIGH, potom meria ako dlho v ňom zostane. Vráti čas v mikrosekundách.
digitalWrite(TRIG, HIGH) + delayMicroseconds(10) Odošleme presne 10µs impulz – to je požiadavka senzora HC-SR04 na spustenie merania.
trvanie * 0.0343 / 2.0 Prepočet: čas (µs) × rýchlosť zvuku (cm/µs) ÷ 2 (tam aj späť) = vzdialenosť v cm.
float Dátový typ pre desatinné čísla – na rozdiel od int, ktorý uchováva iba celé čísla.