Arduino vibrační snímač s LM393 je kompletní modul, který umožňuje detekovat vibrace ve svém okolí. Hlavní prvkem tohoto modulu je zmíněný vibrační snímač, typ SW-18010P. Tento snímač má tvar černého válce a ve svém vnitřku obsahuje rovný středový vodič, který je obtočen spirálou tvořící druhý vodič. Pokud tedy vibrace rozkmitají dostatečně tento snímač, zmíněné vodiče se začnou spojovat a podle plochy dotyku můžeme měřit vibrace s různou citlivostí. Dále se ještě na modulu nachází operační zesilovač LM393, který zjednodušuje detekci Arduinem díky zvýšení výstupního napětí a také odporový trimr, kterým lze nastavit výstupní citlivost vibračního snímače. Můžeme tedy nastavit práh detekování vibrací jak trimrem, tak poté i programově v Arduinu.
Pro úspěšné propojení s Arduinem stačí zapojit tři propojovací piny. Propojíme pin VCC s napájecím napětím 5 V Arduina, pin OUT s A0 a pin GND se zemí Arduina. Pro pin OUT je možné využít také ostatní analogové piny Arduina, ale je nutné tuto změnu provést také v programu.
Ukázkový kód je velmi jednoduchý. Na jeho začátku se nachází pouze nastavení propojovacího pinu s vibračním snímačem a v podprogramu setup() nastavíme komunikaci po sériové lince společně s inicializací pinu OUT jako vstupního. Nekonečná smyčka loop() pak na svém začátku vždy načte analogovou hodnotu pinu OUT do proměnné, která je následně kontrolována, jestli přesáhla stanovený práh. Tento práh může být u každého modulu posunut do různých hodnot a proto je v komentáři umístěn také jednoduchý výpis naměřené analogové hodnoty. Při prvním testování je tedy dobré tento výpis odkomentovat a sledovat vypsané hodnoty při různých stupních vibrací v okolí snímače. V ukázkovém kódu je kontrolován práh 400, při jehož překročení je vypsána informace o vibraci a jejím čase od spuštění Arduina po sériové lince. A na konci kódu už je jen nutná krátká pauza pro stabilizaci programu.
// Vibrační snímač s LM393 // nastavení propojovacího pinu senzoru #define pinOUT A0 void setup() { // komunikace přes sériovou linku rychlostí 9600 baud Serial.begin(9600); // inicializace propojovacího vstupu pinMode(pinOUT, INPUT); } void loop(){ // načtení analogové hodnoty pinu OUT // do proměnné vibrAnalog int vibrAnalog = analogRead(pinOUT); // pro testování odkomentujte tento příkaz // Serial.print(vibrAnalog); // v případě, že je analogová hodnota vyšší // než 400 (cca 2 V), vypiš informaci // po sériové lince if (vibrAnalog > 400) { long int cas = millis()/1000; Serial.print(cas); Serial.println(" vterin od spusteni | Detekovana vibrace!"); } // nutná pauza pro stabilizaci programu delay(1); }
Po nahrání programu do Arduino desky s připojeným vibračním snímačem dostaneme například tento výpis:
1 vterin od spusteni | Detekovana vibrace! 3 vterin od spusteni | Detekovana vibrace! 6 vterin od spusteni | Detekovana vibrace! 9 vterin od spusteni | Detekovana vibrace!
Arduino vibrační snímač s LM393 je jednoduše použitelný detekční modul, který má mnoho možností využití. Lze ho použít například v domácích zabezpečovacích zařízeních pro detekci pohybu či krádeže. Také by mohl být se správně nastavenou citlivostí použit například jako detektor zemětřesení, ale tento jev se v České republice a okolí příliš nevyskytuje :)
Seznam použitých komponent:
http://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
http://dratek.cz/arduino/1153-arduino-vibracni-snimac-s-lm393-1449936579.html