====== 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/ \\