Jak nastavit ultrazvukový dálkoměr na Arduino

ultrazvukové dálkoměry jsou zábavné malé senzory, které mohou měřit vzdálenost. Můžete je použít k nalezení vzdálenosti od objektu nebo k detekci, kdy je něco blízko senzoru, jako je detektor pohybu. Jsou ideální pro projekty zahrnující navigaci, vyhýbání se objektům a domácí bezpečnost. Protože používají zvuk k měření vzdálenosti, fungují stejně dobře ve tmě jako ve světle., Ultrazvukový dálkoměr, které budu používat v tomto kurzu je HC-SR04, které mohou měření vzdálenosti od 2 cm do 400 cm s přesností ±3 mm.

V tomto článku, ukážu vám, jak udělat tři různé dálkoměr obvody pro Arduino. První rozsah finder obvod je snadno nastavit, a má docela dobrou přesnost. Ostatní dva jsou trochu složitější, ale jsou přesnější, protože se podílejí na teplotě a vlhkosti. Ale než se do toho dostaneme, pojďme mluvit o tom, jak dálkoměr měří vzdálenost.,

BONUS: udělal jsem Průvodce rychlým startem pro tento tutoriál, který si můžete stáhnout a vrátit se později, pokud to nemůžete nastavit právě teď. Pokrývá všechny kroky, diagramy a kód, který potřebujete začít.

Rychlost Zvuku

Ultrazvukové dálkoměry měří vzdálenost tím, že vypouští pulzní ultrazvukové zvuk, který se šíří vzduchem, dokud nenarazí na objekt. Když tento puls zvuku zasáhne objekt, odráží se od objektu a putuje zpět do ultrazvukového dálkoměru., Ultrazvukový dálkoměr měří, jak dlouho trvá zvukový puls, než se vydá na zpáteční cestu ze senzoru a zpět. Poté vysílá signál do Arduina s informacemi o tom, jak dlouho trvalo, než sonický puls cestoval.

Vědět, kdy to trvá ultrazvukový pulz na cestu zpět a dále k objektu, a také znát rychlost zvuku, Arduino lze vypočítat vzdálenost k objektu., Vzorce vztahující se rychlostí zvuku, vzdálenost a čas cestoval, je:

Přeskupit tento vzorec, dostaneme vzorec pro výpočet vzdálenosti:

když proměnná je čas potřebný pro ultrazvukový impuls opustit senzor, odrazí od objektu a vrátí do senzoru., Tento čas vlastně rozdělujeme na polovinu, protože potřebujeme měřit pouze vzdálenost k objektu, nikoli vzdálenost k objektu a zpět ke senzoru. Proměnná rychlosti je rychlost, při které zvuk prochází vzduchem.

rychlost zvuku ve vzduchu se mění s teplotou a vlhkostí. Proto, abychom mohli přesně vypočítat vzdálenost, musíme zvážit okolní teplotu a vlhkost., Vzorec pro rychlost zvuku ve vzduchu na teplotě a vlhkosti vzduchu tvořily je:

například, při teplotě 20°C a 50% vlhkosti vzduchu se zvuk šíří rychlostí:

výše uvedené rovnice, je jasné, že teplota má největší vliv na rychlost zvuku. Vlhkost má nějaký vliv, ale je mnohem menší než vliv teploty.,

jak ultrazvukový dálkoměr měří vzdálenost

na přední straně ultrazvukového dálkoměru jsou dva kovové válce. To jsou převodníky. Převodníky přeměňují mechanické síly na elektrické signály. V ultrazvukovém dálkoměru je vysílací snímač a přijímací snímač. Vysílací snímač převádí elektrický signál na ultrazvukový puls a přijímající převodník převádí odražený ultrazvukový puls zpět na elektrický signál., Pokud se podíváte na zadní stranu dálkoměru, uvidíte IC za vysílacím převodníkem označeným MAX3232. Toto je IC, který řídí vysílací snímač. Za přijímajícím převodníkem je IC označený LM324. Jedná se o čtyřnásobný operační zesilovač, který zesiluje signál generovaný přijímajícím převodníkem na signál, který je dostatečně silný na přenos do Arduina.,

HC-SR04 ultrazvukový dálkoměr má čtyři piny:

  • Vcc – dodává sílu generovat ultrazvukové pulsy
  • GND – připojení k uzemnění
  • Trig – kde Arduino vyšle signál pro spuštění ultrazvukový puls
  • Echo – kde ultrazvukový dálkoměr vyšle informace o trvání cesty přijatá ultrazvukový impuls k Arduino

zahájit měření vzdálenosti, musíme poslat 5V high signál na pin Trig po dobu nejméně 10 µs., Když modul přijme tento signál, vydá 8 impulzů ultrazvukového zvuku s frekvencí 40 KHz z vysílacího snímače. Pak čeká a poslouchá u přijímajícího snímače odražený signál. Pokud je objekt v dosahu, 8 impulsů se odrazí zpět do senzoru. Když puls zasáhne přijímající převodník, ozvěný kolík vydá signál vysokého napětí.

délka této vysoké napětí signálu je rovna celkové době 8 impulsů vzít na cestu z přenosu snímače a zpět do přijímací sondy., Chceme však měřit pouze vzdálenost k objektu, a nikoli vzdálenost cesty, kterou zvukový puls vzal. Proto tento čas rozdělíme na polovinu, abychom získali časovou proměnnou v rovnici D = s X T výše. Vzhledem k tomu, že již známe rychlost zvuku (y), můžeme vyřešit rovnici vzdálenosti.

Ultrazvukový dálkoměr Nastavení pro Sériový Výstup pro Monitor

začněte tím, že jednoduchý ultrazvukový dálkoměr, že bude výstup měření vzdálenosti do sériového monitoru. Pokud chcete místo toho odečíst hodnoty na LCD displej, podívejte se na další část., Spojující vše, co je snadné, stačí drát to takhle:

Jakmile budete mít všechno souvisí se vším, nahrát tento program pro Arduino:

Vysvětlení Kódu

  • Line 11: Deklaruje proměnné duration distance.
  • linky 12 a 13: vysílá nízký signál 2 µs na trigPin, aby se ujistil, že je vypnutý na začátku programové smyčky.,
  • linky 15-17: vysílá vysoký signál 10 µs na trigPin pro zahájení sekvence osmi ultrazvukových impulzů 40 KHz odeslaných z vysílacího snímače.
  • Řádek 19: definujeduration proměnnou jako délku (v µs)jakéhokoli vysokého vstupního signálu detekovaného na echoPin. Výstup Echo pin se rovná době, po kterou vyzařovaný ultrazvukový puls putuje k objektu a zpět ke senzoru.,
  • Řádek 20: Definuje distance proměnné jako dobu trvání (doba v d = s x t) vynásobí rychlostí zvuku převést z metrů za sekundu na centimetry za µs (0.0344 cm/µs).
  • řádky 22-24: pokud je vzdálenost větší nebo rovna 400 cm nebo menší nebo rovna 2 cm, zobrazte na sériovém monitoru „Distance = Out of range“.
  • řádky 26-30: pokud měření vzdálenosti není mimo dosah, zobrazte vzdálenost vypočtenou v řádku 20 na sériovém monitoru po dobu 500 ms.,

Ultrazvukový dálkoměr S LCD Výstup

Pokud chcete, aby výstupní měření vzdálenost k 16X2 LCD, postupujte podle tohoto schématu pro připojení dálkoměr a LCD pro Arduino:

Pokud potřebujete další pomoc s připojením LCD, zkuste naše další návod na nastavení LCD na Arduino., Když je vše spojené, nahrání tohoto kódu do Arduina:

Vyšší Přesnost Ultrazvukového dálkoměru

Vzhledem k tomu, teplota je proměnná v je rychlost zvuku rovnice výše (c = 331.4 + (0.606 x T) + (0.0124 x v x H)), teplota vzduchu kolem snímače ovlivňuje naše měření vzdálenosti. Abychom to kompenzovali, vše, co musíme udělat, je přidat termistor do našeho obvodu a vložit jeho hodnoty do rovnice. To by mělo dát našim měřením vzdálenosti větší přesnost., Termistor je variabilní odpor, který mění odpor s teplotou. Chcete se dozvědět více o termistory, podívejte se na náš článek, Arduino Termistor Snímače Teploty Tutorial. Tady je schéma, které vám pomohou přidat termistor pro vaše dálkoměr obvodu:

  • R1 = 10K Ohm rezistor
  • Th = 10K Ohm termistor

Poznámka: hodnoty R1 by se měla rovnat odpor termistoru.,

Po tom všem, co je připojen, nahrání tohoto kódu do Arduina:

Vysvětlení Kódu

V základním rozsahu finder program na začátku tohoto článku jsme použili vzorec d = s x t pro výpočet vzdálenosti. V tomto programu používáme vzorec, který odpovídá teplotě a vlhkosti (c = 331,4 + (0,606 x T) + (0,0124 x H)).

V řádcích 5 až 10, Steinhart-Hart rovnice se používá pro převod hodnoty odporu termistoru na teplotě, které jsou uloženy v proměnné s názvem temp., V řádku 35 přidáme novou proměnnou (spdSnd), která obsahuje rychlost zvukové rovnice. Výstup z proměnnéspdSnd se používá jako rychlost ve funkci distance na řádku 36.

velmi vysoká (téměř příliš vysoká) přesnost ultrazvukový dálkoměr

obvod ultrazvukového dálkoměru kompenzovaný teplotou je docela přesný pro to, na co ho většina lidí použije. Existuje však další faktor ovlivňující rychlost zvuku ve vzduchu (a tedy výpočet vzdálenosti), a to je vlhkost., Z rychlosti zvukové rovnice můžete říci, že vlhkost má jen malý vliv na rychlost zvuku, ale umožňuje to zkontrolovat.

existuje několik typů snímačů vlhkosti, které můžete použít na Arduino, ale budu používat snímač vlhkosti a teploty DHT11. Tento modul skutečně má termistor kromě snímače vlhkosti, takže nastavení je opravdu jednoduché:

Po tom všem, co je připojen, budeme muset nainstalovat speciální knihovna spustit kód., Knihovna je dhtlib knihovna napsaná Rob Tillaart. Knihovna se snadno instaluje. Nejprve si stáhněte .zip soubor níže. Poté v Arduino IDE přejděte na Sketch>zahrnout knihovnu >přidat knihovnu ZIP a poté vyberte DHTLib.zip soubor.,

DHTLib

Poté, co je nainstalována knihovna, nahrání tohoto kódu do Arduina:

Vysvětlení Kódu

teplota a vlhkost naměřené hodnoty výstup z DHT11 jsou digitální, takže nemusíme používat Steinhart-Hart rovnice převést termistor je odolnost vůči teplotě. Knihovna DHTLib obsahuje všechny funkce potřebné k získání teploty a vlhkosti v jednotkách, které můžeme použít přímo v rychlosti zvukové rovnice. Proměnné teploty a vlhkosti jsou pojmenovány DHT.temperature a DHT.humidity., Pak se rychlost používá jako proměnná v dálkové rovnici na řádku 28.

výstup měření vzdálenosti na LCD, připojte LCD následujících náš návod, Jak Nastavit LCD Displej na Arduino, pak nahrát tento kód:

podívejte se na výukové video vidět, ultrazvukový dálkoměr obvody v akci:

Díky za čtení! Zanechat komentář, pokud máte nějaké dotazy ohledně toho, jak je nastavit., Pokud se vám líbí naše články zde na Circuit Basics, přihlásit se a dáme vám vědět, když budeme publikovat nové články. Taky, pokud víte, že někdo jiný, který by našel tento článek užitečný, prosím podělte se o to!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *