Operácie

Ultrazvukový radar s HC-SR04: Rozdiel medzi revíziami

Zo stránky SensorWiki

StudentMIPS (diskusia | príspevky)
StudentMIPS (diskusia | príspevky)
 
(3 medziľahlé úpravy od rovnakého používateľa nie sú zobrazené.)
Riadok 28: Riadok 28:


<code> 343 m/s = 34300 cm/s = 0,0343 cm/μs </code>
<code> 343 m/s = 34300 cm/s = 0,0343 cm/μs </code>
Nakoľko celková dráha predstavuje cestu od senzora k prekážke aj späť. Skutočná vzdialenosť prekážky od senzora je preto iba polovica tejto dráhy:
<code>​d = v * t / 2 </code>
Po dosadení rýchlosti zvuku v jednotkách cm/µs dostaneme:
<code> d = (0,0343 · t) / 2 </code>
po úprave:
<code> d = t / 58 </code>
kde t je čas impulzu ECHO v mikrosekundách a d je vzdialenosť v centimetroch.
V programe sa dĺžka impulzu Echo nemeria priamo v mikrosekundách, ale pomocou časovača ako počet tickov. Pri frekvencii mikrokontroléra 16 MHz a nastavenej preddeličke časovača 8 má jeden tick časovača dĺžku 0,5 µs. Ak označíme počet nameraných tikov ako N, potom čas impulzu je:
<code> t = N * 0,5 μs </code>
Po dosadení času vyjadreného pomocou počtu tikov dostaneme:
<code> d = N * 0,5 / 58 = N / 116 </code>


Opíšte sem čo a ako ste spravili, ak treba, doplňte obrázkami...
Opíšte sem čo a ako ste spravili, ak treba, doplňte obrázkami...
Riadok 33: Riadok 55:


[[Súbor:GeminiAI-image3.jpg|400px|thumb|center|Celkový pohľad na zariadenie.]]
[[Súbor:GeminiAI-image3.jpg|400px|thumb|center|Celkový pohľad na zariadenie.]]
=== Schéma zapojenia ===
Na schéme zapojenia je znázornené pripojenie ultrazvukového senzora HC-SR04 k vývojovej doske Arduino Uno. Senzor je napájaný z 5 V výstupu Arduina a jeho vývod GND je pripojený na spoločnú zem. Vývod TRIG je pripojený na digitálny pin D9 a vývod ECHO je pripojený na digitálny pin D10. V programe je pin D9 nastavený ako výstup a pin D10 ako vstup.


Nezabudnite doplniť schému zapojenia! V texte by ste mali opísať základné veci zo zapojenia, samotná schéma nie je dostačujúci opis.
Nezabudnite doplniť schému zapojenia! V texte by ste mali opísať základné veci zo zapojenia, samotná schéma nie je dostačujúci opis.

Aktuálna revízia z 15:12, 2. máj 2026

Záverečný projekt predmetu MIPS / LS2026 - Werner Federmayer


Zadanie

Úlohou projektu bolo navrhnúť a naprogramovať ultrazvukový merač vzdialenosti s použitím senzora HC-SR04 a vývojovej dosky Arduino. Program má zabezpečiť vyslanie spúšťacieho impulzu na pin TRIG, odmeranie dĺžky impulzu na pine ECHO a následný výpočet vzdialenosti v centimetroch. Nameraná vzdialenosť sa zobrazuje cez sériovú linku, prípadne na LCD displeji.

Bloková schéma zariadenia na meranie vzdialenosti pomocou ultrazvukového senzora HC-SR04.


Literatúra:


Analýza a opis riešenia

Zariadenie je určené na meranie vzdialenosti prekážky pomocou ultrazvukového senzora HC-SR04. Ako riadiaca jednotka bola použitá vývojová doska Arduino Uno s mikrokontrolérom ATmega328P. Arduino zabezpečuje vyslanie spúšťacieho impulzu pre senzor, meranie dĺžky prijatého impulzu a následný výpočet vzdialenosti v centimetroch. Výsledok merania sa zobrazuje cez sériovú linku v počítači, prípadne na LCD displeji.

Senzor HC-SR04 má štyri vývody: VCC, TRIG, ECHO a GND. Vývod VCC je pripojený na napájanie 5 V, vývod GND na zem. Vývod TRIG slúži na spustenie merania a je pripojený na digitálny výstup Arduina. Vývod ECHO je pripojený na digitálny vstup Arduina a jeho dĺžka impulzu zodpovedá času, za ktorý sa ultrazvukový signál odrazí od prekážky a vráti späť k senzoru.

Princíp merania

Po privedení spúšťacieho impulzu na vstup TRIG začne senzor HC-SR04 meranie vzdialenosti. Senzor vyšle krátky ultrazvukový signál smerom k prekážke. Na výstupe ECHO sa vytvorí impulz, ktorého dĺžka zodpovedá času letu ultrazvukového signálu od senzora k prekážke a späť. Arduino túto dĺžku impulzu odmeria a zo známej rýchlosti šírenia zvuku vypočíta vzdialenosť. Keďže zvuk prejde dráhu tam aj späť, pri výpočte sa nameraný čas delí dvomi.

Výpočet vzdialenosti

Ako sme už vyššie spomínali, meranie vzdialenosti je založené na meraní času, za ktorý sa ultrazvukový signál dostane od senzora k prekážke a po odraze späť k senzoru. Senzor HC-SR04 teda nemeria priamo vzdialenosť, ale čas trvania impulzu na výstupe ECHO.

Rýchlosť zvuku vo vzduchu je približne v = 343 m/s pri izbovej teplote. Túto hodnotu môžeme previesť na centimetre za mikrosekundu:

343 m/s = 34300 cm/s = 0,0343 cm/μs

Nakoľko celková dráha predstavuje cestu od senzora k prekážke aj späť. Skutočná vzdialenosť prekážky od senzora je preto iba polovica tejto dráhy:

​d = v * t / 2

Po dosadení rýchlosti zvuku v jednotkách cm/µs dostaneme:

d = (0,0343 · t) / 2

po úprave:

d = t / 58

kde t je čas impulzu ECHO v mikrosekundách a d je vzdialenosť v centimetroch.

V programe sa dĺžka impulzu Echo nemeria priamo v mikrosekundách, ale pomocou časovača ako počet tickov. Pri frekvencii mikrokontroléra 16 MHz a nastavenej preddeličke časovača 8 má jeden tick časovača dĺžku 0,5 µs. Ak označíme počet nameraných tikov ako N, potom čas impulzu je:

t = N * 0,5 μs

Po dosadení času vyjadreného pomocou počtu tikov dostaneme:

d = N * 0,5 / 58 = N / 116

Opíšte sem čo a ako ste spravili, ak treba, doplňte obrázkami... Podrobne opíšte použité komponenty (okrem základnej dosky s ATmega328P procesorom), pridajte linky na datasheety alebo opis obvodu.

Celkový pohľad na zariadenie.

Schéma zapojenia

Na schéme zapojenia je znázornené pripojenie ultrazvukového senzora HC-SR04 k vývojovej doske Arduino Uno. Senzor je napájaný z 5 V výstupu Arduina a jeho vývod GND je pripojený na spoločnú zem. Vývod TRIG je pripojený na digitálny pin D9 a vývod ECHO je pripojený na digitálny pin D10. V programe je pin D9 nastavený ako výstup a pin D10 ako vstup.


Nezabudnite doplniť schému zapojenia! V texte by ste mali opísať základné veci zo zapojenia, samotná schéma nie je dostačujúci opis.

Schéma zapojenia.

Algoritmus a program

Algoritmus programu využíva toto a toto, základné funkcie sú takéto a voláma ich tuto... Výpis kódu je nižšie...


#include <avr/io.h>

int main(void)
{
  unsigned int measuredValue;

  while (1)
  {
    /*  relax  */  
  }

  return(0);
}
#include <avr/io.h>

void adc_init(void);                                   // A/D converter initialization

unsigned int adc_read(char a_pin);

Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:

Zdrojový kód: zdrojaky.zip

Overenie

Ako ste overili funkciu, napríklad... Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia. Na konci uvádzame fotku hotového zariadenia.

Aplikácia.

Video:

Čo by som urobil inak

Zamyslite sa spätne nad problémom, ktorý ste riešili a napíšte, čo sa vám nepodarilo a nabudúce by ste spravili inak.


Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.