Lektorált tananyag, ami a BKF Digitális és Kollaboratív Művészet (DIKOM) pályázatnak keretén belül valósult meg.
Szerző: Harsányi Réka, Társszerző: Juhász Márton András, Lektor: Fernezelyi Márton
ADXL3xx gyorsulásmérő
Megnézzük, hogyan lehet adatot kinyerni az ADXL3xx sorozat gyorsulásmérőiből. 1, 2 vagy 3 tengely irányában működnek, a rászerelt tárgy Földhöz viszonyított helyzetét mérik, tehát a sebesség változását. Analóg és digitális kimenettel rendelkezőek egyaránt vannak. Ebben a példában az x, y, z tengelyből kinyert adatokat soros portra küldjük. Egyéb gyorsulásmérőt is használhatunk, a datasheetben keressük vissza, melyik lába miként funkcionál.
ADXL3xx gyorsulásmérő és az Arduino panelbe kötött ábrája. A lábak kiosztás olyan sorrendű, hogy elég rádugni az analóg pinsorra.
ADXL3xx gyorsulásmérő bekötése, áramköri rajz
Több gyártó létezik, közülük most két szenzornak a bekötését nézzük meg.
Az első a Spurkfun által gyártott:
Spurkfun ADXL335 gyorsulásmérő
Spurkfun gyorsulásmérő bekötése Arduinoba:
Breakout Board Pin | Self-Test | Z-Axis | Y-Axis | X-Axis | Ground | VDD |
Arduino Analog Input Pin | 0 | 1 | 2 | 3 | 4 | 5 |
Spurkfun gyorsulásmérő Arduinoval
A második az Adafruit által gyártott:
Adafruit ADXL335 gyorsulásmérő
Adafruit gyorsulásmérő bekötése Arduinoba:
ADXL3xx Pin | Self-Test | ZOut | YOut | XOut | Ground | VDD |
Arduino Pin | None (unconnected) | Analog Input 1 | Analog Input 2 | Analog Input 3 | GND | 5V |
Adafruit gyorsulásmérő Arduinoval
Az adafruit.com oldalon megtalálható, hogyan lehet kalibrálni ezt a szenzort: http://learn.adafruit.com/adafruit-analog-accelerometer-breakouts/programming
A kódban az analóg 4 és 5 pin speciális funkcióját használjuk. Az I2C kommunikációra a 13. fejezetben a Wire Könyvtár használata kapcsán részletesen kitérünk.
Arduino kód: 38gyorsulasmero
A kiolvasott érték szenzoronként változó, kb. 300–700 közé esik. Az ADXL322 2g gyorsulásmérőnél a vízszintes (amikor a szenzor párhuzamos a földdel) értéke 512 körüli.
Az alábbi táblázat csak nagyságrendi adatokat mutat, és egy tengelyre vonatkozik.
Gyorsulásmérő dőlésszöge és kiolvasott értéke (minta, szenzoronként eltérő):
Angle | -90 | -80 | -70 | -60 | -50 | -40 | -30 | -20 | -10 | 0 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 |
Acceleration | 662 | 660 | 654 | 642 | 628 | 610 | 589 | 563 | 537 | 510 | 485 | 455 | 433 | 408 | 390 | 374 | 363 | 357 | 355 |
Piezo szenzor
A piezo elektromos kristályszerkezetben összenyomás hatására feszültség keletkezik. A piezo hangszórók csak megfelelő polaritással működnek, mely azt jelenti, hogy meghatározott irányban kell, hogy átmenjen rajta az áram, ezért a fekete vagy kék vezetékét a földbe, míg a pirosat az analóg pinbe kell kötni. Ezt az analóg pint szintén le kell földelni úgy, hogy az 1 megaohmos ellenálláson keresztül vezetve átkötjük a GND pinbe, ahogy a 11.2.2. ábrán látható. A példában használt típus: Piezo hangszóró 12 V DC gerjesztő áramkörrel.
Műanyag borítás nélkül is beszerezhető a piezo, ilyenkor fényes lemezeknek látszanak és könnyebb őket szenzorként használni, pl. lehet nyomogatni. Akkor működnek a legjobban, ha az érzékelő felületük erősen neki van támasztva valaminek, vagy fel van ragasztva.
Piezo érzékelő
Piezo érzékelő bekötése
A lejjebb található kódban a piezóból érkező adatok egy általunk megadott küszöbértékhez vannak viszonyítva. Próbáljuk meg növelni vagy csökkenteni ezt az értéket, hogy kihasználjuk a szenzor teljes érzékenységi tartományát.
Arduino kód: 39piezo
Ultrahangos távolságszenzor
Ping))) ultrahangos távolságszenzor, gyártó: Parallax
A tőle 2–3 cm-re lévő tárgyakat érzékeli.
Az alábbiak szerint működik: Kiküld egy ultrahang jelet és a visszhangot figyeli, ami akkor keletkezik, ha az ultrahang visszaverődik a tárgyról. Az Arduino egy rövid impulzust küld, hogy előidézze az érzékelést, majd ugyanazon a pinen várja vissza az impulzust (ehhez a pulseIn() függvényt használja). A második impulzus időtartama megegyezik azzal az idővel, amit az ultrahang tett meg a szenzorból a tárgyig, majd arról visszaverődve a szenzorig – ezt számítja át a távolság meghatározásához.
Ping))) ultrahangos távolságszenzor
Bekötése: A földelés pineket és a feszültség pineket összekötjük az Arduinoval, a SIG (signal) pint pedig az Arduinon keresztül a digitális 7 pinbe vezetjük.
Ping))) ultrahangos távolságszenzor bekötése
Arduino kód: 40ping
Sharp infravörös távolságszenzor
A távolságszenzorok analóg vagy digitális kivitelben léteznek. Az egyes típusok különböző távolságokban mérnek. Háromszögeléses módszerrel működik, azaz kibocsát egy infravörös fényt, ami a tárgyakról bizonyos szögben visszaverődve a szenzor optikáján át a CCD-re érkezik (hogy azon belül hova, azt a távolság határozza meg).
A kódban kiolvassuk az értéket és serial monitoron kiírjuk. A példában a GP2D12 Sharp szenzort használjuk. Hogy a szenzornak melyik lába a feszültség (Vcc), a föld (Gnd) és az adatkimenet (Vo), azt a datasheetben megtaláljuk. Értelem szerűen a Vcc pint az Arduino 5V pinjébe, a Vo pint az analóg bementi pinbe, a Gnd-t pedig a földbe kötjük.
Sharp GP2D12 adatlapja és bekötése az Arduinoba
Arduino kód: 41sharp