Játék a fénnyel
Egy fényszenzor beépítése bizony számos új funkciót megnyit az Arduino-programozók számára, cikkünkben bemutatjuk, merre érdemes elindulnod, ha ezt az apró kiegészítőt szeretnéd a projektjeidben szerepeltetni.
Rengeteg kreatív megoldást kínálnak az Arduino projektekhez beszerezhető és használható szenzorok, melyek közül sokrétű felhasználhatóságának köszönhetően kiemelkedik a fényérzékelő. Az apró, és rendkívül olcsón beszerezhető kiegészítő segítségével ugyanis számos különféle projekt megvalósítása lehetővé válik.
Cikkünkben most bemutatjuk a szenzor működését, és néhány rövid kóddal segítünk, hogy gyorsan elsajátíthass minden ismeretet, mely a hardver bevetéséhez elengedhetetlen.
Első lépések a szenzorral
Az alapvető áramkör, mely a Soros-monitorra küldi a beolvasott értékeket tényleg rendkívül egyszerűen megvalósítható, mindössze annyit kell tenned, hogy a fényézrékelőt a nullás analóg porthoz kapcsolod, beépítesz egy ellenállást, küldesz egy kis áramot az 5V-os feliratú pinről és már kész is a konfigurációd. Ezután már kötheted is PC-re az Arduino-lapkát és jöhet az alapkódod létrehozása. Szerencsére nem kell több száz sornyi utasítással bajlódnod, tényleg csak néhány alapvető utasítást kell begépelned, hogy a számítógépeden megjelenjenek az adatok. Az első lépés ennek megvalósításához, hogy a fejlesztői környezetben egy új projektet létrehozol, és a start() függvény belsejében a portot megnyitod, így már felkészül számítógéped a szenzorról érkező üzenetek fogadására. Ennek megvalósításához csupán írd be a Serial.begin(9600); utasítást és már kész is a start-függvényed. Ezt követően át is nyergelhetsz a loop()-ra, melyben mindössze két sornyi kód begépelésével elvégezheted az adatok beolvasását. Hozz létre tehát egy számokat tartalmazó változót, melynek az A0-ás portunkról beolvasott információt add át.
Ehhez gépeld be a loop() függvény kapcsos zárójelei közé a int A = analogRead(A0); utasítást, majd egy sortörést követően helyezd el a Serial.println(A); kódot is a beviteli mezőben. Így pedig már készen is áll a kódod a feltöltésre, futtatását követően csupán annyi a teendőd, hogy megnyitod a Soros-monitort és máris láthatod, hogy folyamatosan záporoznak a beolvasott értékek 0 és 1023 között. Ha jobban megfigyeled az is feltűnhet, hogy a magasabb érték jelöli a több fényt, így a közvetlen a szenzorra eső napsugár esetén kapod a legmagasabb, teljes sötétségben pedig a legalacsonyabb számokat. Ez azért lényeges, mert a későbbiekben az adatokat számos projektben felhasználhatod majd.
Világítást fel
Az alapok elsajátítása után érdemes lehet megpróbálni a LED-lámpa vezérlését, hisz nem kell túlzottan sok kiegészítést eszközölnöd - a bemutatott alapkódhoz képest - ha azt szeretnéd elérni, hogy a fényváltozásokat a csatlakoztatott dióda dinamikusan kövesse le. A megfelelően felprogramozott lámpa ugyanis a beállított fényérték-küszöb eléréséig kikapcsolt állapotban vár. és amint átlépi a határt felvillan. A szükséges kódkiegészítés során a start() függvényben helyezd el a megfelelő pin címkézéséhez szükséges pinMode(13, OUTPUT); parancsot, majd a korábbi értékek alapján kiszűrt adatokból állíts be a loop-on belül egy ellenőrzést, mely azt figyeli, hogy az éppen beolvasott érték nagyobb, vagy kisebb, mint a vizsgált adatod, és ez alapján módosítsd a pinre küldött áramot. Az if feltételbe tehát akkor lépjn be a vezérlés, ha az épp beolvasott érték kisebb, mint 300, ebben az esetben a digital.write(13, HIGH); parancs segítségével kapcsolható fel a 13-as porthoz csatolt lámpa, minden más esetben pedig az itt beállított HIGH értéket állítsd LOW-ra.