====== Mozgás- és akadályérzékelés ====== A mozgás- és akadályérzékelés szenzortípusai: **Infravörös érzékelő** \\ Az IR érzékelő típusok a kibocsátott fény útjába kerülő objektumokat a visszaverődés hiányával tudják azonosítani. Az IR előnye, hogy emberi szem számára nem látható. **PIR szenzor** \\ A PIR (passive infrared sensor) szenzorok, bár azért meglehetősen összetett készülékek (optika, infravörös érzékelő(k), erősítők, kalibrálási lehetőségek) az Arduino-s kiértékelésük mégsem olyan összetett dolog. Általában ugyanis egy információt adnak csak tovább, érzékelnek-e mozgást vagy sem. A készülékek egy része egy potenciálszabad kontaktot - azaz relét - tartalmaz, melyet mint egy kapcsolót vezetékezhetünk be egy szabad pin-re. ===== HC-SR501 ===== {{anchor:hcsr501}} Ez a mozgásérzékelő modul egy LHI778 passzív infravörös érzékelőt és BISS0001 IC-t használ érzékelésre. A modul érzékenysége állítható; ez lehetővé teszi a mozgásérzékelés tartományának a rugalmas beállítását 3 - 7 méter között. A modul rendelkezik még "idő késleltetés" beállítással és trigger kiválasztással. A modul összesen egy digitális bemenetet kapcsol, HI feszültségszint: 3,3V. {{:wiki:arduino:pir.png|HC-SR501 PIR mozgásérzékelő}} Az eszköz nagyjából 1 perc alatt inicializálja magát, ez alatt az idő alatt téves riasztást is adhat! Ráadásul minden késleltetési idő leteltével kb. 3 másodpercig nem érzékel, csak ennek az időnek a letelte után. Az érzékelő beállítása valódi sziszifuszi munka, készüljön rá! ==== Technikai adatok ==== * Tápfeszültség: 5V – 20V * Áramfelhasználás: 65mA * TTL kimenet: 3.3V, 0V * Időzítési idő: max. 5 min * Érzékelési idő: 0.2 sec * Trigger beállítás: L – trigger tiltása * Érzékelés: kevesebb, mint 120 fok, 7 méterig * Hőmérséklet: – 15 ~ +70 °C * Mérete: 32*24 mm ==== Beállítások ==== ^Beállítás / port^Leírás| |késleltetési idő|A beállított idő szerint marad a kimenet még aktív az érzékelés után. Ez az idő nagyjából 3 sec - 5 min tartományban állítható. Teljesen jobbra forgatva a potmétert a maximális idő állítható be.| |érzékelési távolság|Az érzékelési távolság, mely 3 és 7 méter között állítható. Teljesen jobbra forgatva a potmétert a minimális távolság állítható be.| |trigger jumper|L-állás: Egyszerű trigger. A késleltetési idő az első érzékelt mozgással indul \\ H-állás: Ismétlő trigger. A késleltetési idő az utolsó érzékelt mozgással újraindul| |kimenet|Érzékelés (+késleltetési idő) esetén a kimenet 3,3V-t ad ki.| ==== Példaprogram ==== // kód: OB121.com int ledPin = 13; // 13.LED kimenet int pirPin = 8; // jel a PIR szernzortól int pirStore; // tárolt PIR állapot void setup() { pinMode(ledPin, OUTPUT); pinMode(pirPin, INPUT); digitalWrite(ledPin, LOW); } void loop() { pirStore = digitalRead(pirPin); digitalWrite(ledPin, pirStore); } ==== Források ==== http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/arduino-hc-sr501-motion-sensor-tutorial/#attachment wp-att-2123/0/ ===== IR-08H infravörös digitális akadály-érzékelő modul ===== en: IR obstacle avoidance sensor \\ {{anchor:ir08h}} {{anchor:hxj38}} {{anchor:ad032}} Az IR-08H egy szűk tartományban hangolható digitális akadály-érzékelő modul. Technikailag megegyezik az alábbi (eltérő gyártójú) modulokkal: **HXJ-38**, **AD-032**, **KY-032**, **KeyesIR**, **FC-51**.. A modul az IR LED-et (**SN74LS00**) 38 kHz-es frekvencián vezérli, ha az engedélyező-jel (EN) kint van. Az (általában) **HS0038B** típusú érzékelő a közeli és látószögbe eső tárgyakról vagy felfestésekről visszaverődő jeleket figyeli. A vevőegység tartalmaz **AGC** (//Automatic Gain Control//) funkciót; ez egy külső, optikai, 950 nm-es IR szűrő és egy belső, elektronikus, 38 kHz-es sávszűrő, így a vevő csak az adott frekvencián pulzáló infravörös fényt érzékeli. Egyes fajtákon egy, míg más típusain kettő potméterrel lehet a modult hangolni: {{:wiki:arduino:ir_akadaly_1.png|IR-08H infravörös digitális akadály-érzékelő modul beállítása}} ==== Technikai jellemzők ==== * **Működési feszültség:** 3.3V .. 5V DC * **Üzemi áram:** ≥ 20mA * **Működési hőmérséklet:** -10 °C .. 50 °C * **Érzékelési távolság:** 2 .. 40 cm * **Kimeneti jel:** [[hu:arduino:start#arduino_ttl|TTL logikai szintek]] * - **LOW** szint, ha akadály észlelhető * - **HIGH**, ha nem észlelt akadályt * **Látószög:** ± 35 ° ==== Pin-ek, beállítási lehetőségek ==== ^beállítási lehetőség^leírás| |R6 potméter|a LED 38 kHz-ének a finomhangolása állítható| |R5 potméter|a jel munkaciklusának az állítása, ezzel az IR LED világossága hangolható| |zöld jumper|Ha a jumper a helyén van, a modul folyamatosan működni fog. Ha nincs a helyén, az érzékelés az "EN" pin-nel indítható / leállítható.| |EN, 1.pin|"engedélyezés": Az érzékelő működésének engedélyezése (HIGH aktív). Ha a zöld jumper a helyén van, nem használható.| |OUT, 2.pin|Jel kimenet| |+, 3.pin|Tápfeszültség, 3.3V..5V DC| |GND, 4.pin|grund| Az AGC működésének "jót tesz", azaz a modul megbízhatóbban működik, ha nem folyamatos üzemben alkalmazzuk, hanem (jumper nélkül) az "EN"-nel aktiváljuk a működését (azaz rászánunk egy digitális kimenetet is). A LED és a vevőegység bizonyos esetekben zavarni tudja egymást, ilyenkor érdemes a LED-et egy rövid csővel (pl. zsugorcsővel) körülvenni. ==== Szoftver ==== digitalWrite( enablePin, HIGH); // Enable the internal 38kHz signal. microDelay( 210); // Wait 210µs (8 pulses of 38kHz). if( digitalRead( outputPin)) // If detector Output is HIGH, { objectDetect = false; // then no object was detected; } else // but if the Output is LOW, { microDelay( 395); // wait for another 15 pulses. if( digitalRead( outputPin)) // If the Output is now HIGH, { // then first Read was noise objectDetect = false; // and no object was detected; } else // but if the Output is still LOW, { objectDetect = true; // then an object was truly detected. } } digitalWrite( enablePin, LOW); // Disable the internal 38kHz signal. Az infravörös átvitelről egy áttekintés a Kommunikáció fejezetben, az [[hu:comm:bus_ir|IR-nél]] található. \\ Az Arduino infravörös átvitellel [[hu:arduino:ir|ez a fejezet]] foglalkozik. \\ ==== Források ==== http://irsensor.wizecode.com/ \\