Ultrazvukový modul pro měření vzdálenosti obsahuje měřící senzor HY-SRF05. Tento modul umožňuje komunikaci s Arduinem pomocí dvou datových vodičů a pracuje na napájecím napětí 5 V. Co se týká proudového odběru, tak v klidu odebírá modul okolo 2 mA, zatímco při měření se můžeme dostat špičkově až na 40 mA. Měřící senzor funguje na principu vysílání a zpětné detekce signálu na frekvenci 40 kHz a tento typ pracuje s měřícím rozsahem 2 cm až cca 4,5 m. Z vlastního měření pak mohu potvrdit, že v rozsahu 3 cm až 2 m funguje modul velice přesně. Ale na větší vzdálenost už musíme počítat s tím, že nám může vzniknout zkreslení díky měřící úhlu cca 45 stupňů.
Pro úspěšné propojení měřícího modulu HY-SRF05 s Arduinem stačí propojit celkem čtyři vodiče. Propojíme VCC s 5 V Arduina, Trig s pinem D3, Echo s pinem D4 a GND se zemí Arduina. Co se týká datových pinů Trig a Echo, lze využít také jiné volné piny, ale je nutné tuto volbu také provést na začátku programu.
Pro správnou funkci uvedeného ukázkového kódu je nutné stáhnout a naimportovat knihovnu NewPing, návod, jak na to, je uveden zde. Ukázkový kód obsahuje na svém začátku připojení potřebné knihovny, nastavení propojovacích pinů a definování maximální měřené vzdálenosti, která je v tomto případě 450 cm. V dalším kroku provedeme inicializaci měřícího modulu z knihovny a v podprogramu setup zahájíme komunikaci po sériové lince. Na začátku nekonečné smyčky loop načteme do nové proměnné data o vzdálenosti mezi senzorem a předmětem. Poté po krátké pauze zkontrolujeme pomocí funkce if hodnotu načtené proměnné. Pokud je tato hodnota větší než nula, máme v měřícím rozsahu nějaký předmět, a proto v následujícím kódu provedeme pomocí funkce for změření vzdálenosti pětkrát po sobě. Přičemž při každém měření uložíme výsledek do pomocné proměnné a pro získání průměru za posledních pět měření následně vydělíme naměřený součet pětkou. Poté už jen vytiskneme informace po sériové lince. Pokud by ale začáteční kontrola zjistila v proměnné hodnotu nula, jedná se o měření mimo měřící rozsah či špatné zapojení senzoru, a proto pouze vytiskneme informaci po sériové lince a po pauze půl vteřiny přejdeme na nové měření.
// Ultrazvukový modul HY-SRF05 pro měření vzdálenosti
// připojení potřebné knihovny
#include <NewPing.h>
// nastavení propojovacích pinů
#define pinTrigger 3
#define pinEcho 4
#define maxVzdalenost 450
// inicializace měřícího modulu z knihovny
NewPing sonar(pinTrigger, pinEcho, maxVzdalenost);
void setup() {
// zahájení komunikace po sériové lince
Serial.begin(9600);
}
void loop() {
// načtení vzdálenosti v centimetrech do vytvořené proměnné vzdalenost
int vzdalenost = sonar.ping_cm();
// pauza před dalším měřením
delay(50);
// pokud byla detekována vzdálenost větší než 0,
// provedeme další měření
if (vzdalenost > 0) {
vzdalenost = 0;
// pro získání stabilnějších výsledků provedeme 5 měření
// a výsledky budeme přičítat do proměnné vzdalenost
for (int i = 0; i < 5; i++) {
vzdalenost += sonar.ping_cm();
delay(50);
}
// v proměnné vzdálenost máme součet posledních 5 měření
// a musíme tedy provést dělení 5 pro získání průměru
vzdalenost = vzdalenost / 5;
// vytištění informací po sériové lince
Serial.print("Vzdalenost mezi senzorem a predmetem je ");
Serial.print(vzdalenost);
Serial.println(" cm.");
}
// pokud byla detekována vzdálenost 0, je předmět mimo měřící rozsah,
// tedy příliš blízko nebo naopak daleko
else {
Serial.println("Vzdalenost mezi senzorem a predmetem je mimo merici rozsah.");
delay(500);
}
}
Po nahrání ukázkového kódu do Arduino desky s připojeným senzorem vzdálenosti HY-SRF05 dostaneme například tento výsledek:
Vzdalenost mezi senzorem a predmetem je 24 cm.
Vzdalenost mezi senzorem a predmetem je 20 cm.
Vzdalenost mezi senzorem a predmetem je 16 cm.
Vzdalenost mezi senzorem a predmetem je 13 cm.
Vzdalenost mezi senzorem a predmetem je 10 cm.
Vzdalenost mezi senzorem a predmetem je 9 cm.
Vzdalenost mezi senzorem a predmetem je 7 cm.
Vzdalenost mezi senzorem a predmetem je 3 cm.
Ultrazvukový modul pro měření vzdálenosti je praktickým měřícím modulem, který může najít vhodné uplatnění v projektech, kde nám jde o detekci předmětů či měření vzdálenosti. Může tedy nalézt uplatnění v projektech s vlastním zabezpečením, detekcí prostoru pro roboty či jako parkovací senzor. Jako malá nevýhoda pak může být minimální detekovatelná vzdálenost 2-3 cm nebo poměrně velký detekční úhel.
Motorizovaný kulový ventil. Má široké uplatnění v různých průmyslových a obytných instalacích. Může být integrován do automatických systémů řízení, kde je možné ovládat průtok dálkově nebo automatizovaně podle předem nastavených podmínek.
Motorizované kulové vently s obvodem CR01, CR02, CR03 nebo CR04 je poměrně jednoduché po elektrické stránce správně zapojit. U ventilu s obvodem CR05 je tomu ale trochu jinak - ventil si sám nehlídá krajní polohy otevření, nebo zavření. Z toho důvodu vznikl tento článek, ukazující některé výhody, použití a především správné zapojení ventilu s obvodem CR05.