Někdy je to nutné Změřte vzdálenosti a k tomu máte k dispozici několik senzorů. Již jsme věnovali článek, který hovoří o a vysoce přesný snímač vzdálenosti, jako je VL52L0X. Tento senzor byl typu ToF a byl založen na velmi přesném měření díky svému laseru. Pokud však pro vás přesnost není tak důležitá a chcete něco, co vám umožní měřit vzdálenosti za nízkou cenu, je to další možnost HC-SR04 máte na dosah ruky.
V případě Senzor vzdálenosti HC-SR04, vzdálenost se měří ultrazvukem. Systém je podobný optické metodě VL52L0X. To znamená, že je emitováno, dochází k odrazu a je přijímáno, ale v tomto případě je to místo laseru nebo infračerveného záření ultrazvuk. Pokud se zajímáte o elektroniku, robotiku nebo amatérského výrobce, můžete jej použít pro řadu DIY projektů, jako jsou systémy detekce překážek pro roboty, senzory přítomnosti atd.
Index
Co je HC-SR04?
Je zřejmé, jak jsem již uvedl v předchozích odstavcích, HC-SR04 je snímač vzdálenosti s nízkou přesností založený na ultrazvuku. S ním vám umožní snadno a rychle měřit vzdálenosti, i když v zásadě se k tomu obvykle nepoužívá. Nejčastěji se používá jako snímač k detekci překážek a je schopen se jim vyhnout pomocí jiných mechanismů spojených s reakcí snímače.
Vzhled HC-SR04 je velmi výrazný a snadno rozpoznatelný. Kromě toho je to docela populární položka v startovacích sadách Arduino a nezbytná pro mnoho projektů. Je snadno identifikovatelný, protože má dvě „oči“, což jsou vlastně ultrazvuková zařízení, která tento modul integruje. Jedním z nich je ultrazvukový vysílač a druhým přijímač. Funguje na frekvenci 40 Khz, proto je pro lidi neslyšitelný.
Principy ultrazvukového senzoru
Princip, ve kterém Je založen na simulaci toho, který se používá, když hodíte kámen do studny, abyste změřili jeho hloubku. Hodíte kámen a čas, jak dlouho trvá, než spadne na dno. Poté provedete výpočty rychlosti za uplynulý čas a získáte vzdálenost, kterou kámen urazil. Ale v tom případě jste senzor vy.
V modelu HC-SR04 bude emitor vyzařovat ultrazvuk a když se odrazí od předmětu nebo překážky způsobem, jakým budou zachycen přijímačem. The obvod provede potřebné výpočty této ozvěny k určení vzdálenosti. To vám může být také známé, pokud znáte systém, který některá zvířata, jako jsou delfíni, velryby nebo netopýři, používají k vyhledání překážek, kořisti atd.
Počítáním času od odeslání pulzu do přijetí odpovědi lze přesně určit čas a tím i vzdálenost. Pamatuj si to [Prostor = čas rychlosti] ale v případě HC-SR04 musíte tuto veličinu rozdělit na / 2, protože čas byl měřen od okamžiku, kdy ultrazvuk vyjde a bude cestovat vesmírem, dokud nenarazí na překážku a zpět, takže to bude přibližně polovina z toho ...
Pinout a datové listy
Už víte, že nejlepší je vidět kompletní data modelu, který jste získali najděte datový list beton výrobce. Například zde je a Datasheet Sparkfun, ale v PDF je jich k dispozici mnohem více. Zde jsou ale nejdůležitější technické údaje HC-SR04:
- Pinout: 4 piny pro napájení (Vcc), spoušť (Trigger), přijímač (Echo) a zem (GND). Spoušť indikuje, kdy má být senzor aktivován (při spuštění ultrazvuku), a tak bude možné zjistit čas, který uplynul, když přijímač přijme signál.
- krmení: 5 v
- Frekvence ultrazvuku: 40 Khz, lidské ucho může slyšet pouze od 20 Hz do 20 kHz. Všechno, co je pod 20 Hz (infrazvuk) a nad 20 Khz (ultrazvuk), nebude vnímatelné.
- Spotřeba (pohotovostní režim): <2mA
- Spotřeba funguje: 15 mA
- Efektivní úhel: <15º, v závislosti na úhlech objektů můžete mít lepší nebo horší výsledky.
- Měřená vzdálenost: od 2 cm do 400 cm, i když od 250 cm nebude rozlišení příliš dobré.
- Střední rozlišení: Odchylka 0.3 cm mezi skutečnou vzdáleností a měřením, takže i když se měření nepovažuje za vysoce přesné jako laser, jsou měření pro většinu aplikací docela přijatelná.
- cena: od přibližně 0,65 EUR
Integrace s Arduino
na jeho připojení k Arduinu už nemůže být jednodušší. Musíte mít na starosti připojení GND k odpovídajícímu výstupu vašeho Arduina, který je takto označen, Vcc s napájením Arduino 5v a další dva piny HC-SR04 se vstupy / výstupy zvolenými pro váš projekt. Na horním Fritzingově schématu je vidět, že je to jednoduché ...
Musíte jen vzít v úvahu, že tygr musí dostávat elektrický pulz alespoň 10 mikrosekund, aby se správně aktivoval. Dříve se musíte ujistit, že je v NÍZKÉ hodnotě.
Týkající se kód pro Arduino IDE, nemusíte používat žádnou knihovnu ani nic podobného jako u jiných komponent. Vytvořte vzorec pro výpočet vzdálenosti a ještě málo ... Samozřejmě, pokud chcete, aby váš projekt udělal něco v reakci na měření senzoru HC-SR04, budete muset přidat požadovaný kód. Například namísto pouhého zobrazení měření na konzole můžete nechat servomotory pohybovat v jednom či druhém směru na určité vzdálenosti, abyste se vyhnuli překážce, nebo aby se zastavil motor, aby se aktivoval alarm, když detekuje blízkost atd. .
Více informací o programování: Manuál Arduino (PDF zdarma)
Můžete to například vidět základní kód použít jako základ:
//Define las constantes para los pines donde hayas conectado el pin Echo y Trigger const int EchoPin = 8; const int TriggerPin = 9; void setup() { Serial.begin(9600); pinMode(TriggerPin, OUTPUT); pinMode(EchoPin, INPUT); } //Aquí la muestra de las mediciones void loop() { int cm = ping(TriggerPin, EchoPin); Serial.print("Distancia medida: "); Serial.println(cm); delay(1000); } //Cálculo para la distancia int ping(int TriggerPin, int EchoPin) { long duration, distanceCm; digitalWrite(TriggerPin, LOW); //para generar un pulso limpio ponemos a LOW 4us delayMicroseconds(4); digitalWrite(TriggerPin, HIGH); //generamos Trigger (disparo) de 10us delayMicroseconds(10); digitalWrite(TriggerPin, LOW); duration = pulseIn(EchoPin, HIGH); //medimos el tiempo entre pulsos, en microsegundos distanceCm = duration * 10 / 292/ 2; //convertimos a distancia, en cm return distanceCm; }
Komentář, nechte svůj
Vysvětlení mi připadalo velmi užitečné a jednoduché.