Érzékelők:
Az érzékelők az elektronikában pontosan azt a szerepet töltik be mint az emberi szervezetben az érzékszervek. Keress hasonlatokat az emberi szervezet kapcsán! pl: szem – fényérzékelő, bőr – érintés érzékelő ….
Az egyszerűbb érzékelők közé tartozó eszközök működése olyan mint a kapcsolóké. A digitális oldalra kötjük, majd kiolvassuk az állapotukat.
Nézzünk egy példát!
A mágneses tér érzékelésére használjuk a következő eszközt:
A reed szenzor egy mágneses elven működő érzékelő. Egy üvegcsőben elhelyezett vékonyka érintkező pár, az állandó mágnes közelítése vagy távolításának hatására jelzést küld az Arduinonak.
A mágnes közelségét érzékelve a led felvillan.
Tanulmányozd a rajzot! Magyarázd el a cső működését!
A program:
A 4. csatlakozóra kötöttük a ledet, a 8. csatlakozóra a reed cső egyik végét. A led és a reed cső másik lába a GND csatlakozóra kapcsolódik. Tanulmányozd a képeket.
Vizsgéljuk meg a programot:
void setup()
{
pinMode(4, OUTPUT); //A 4-es csatlakozó bekepcsolása – kimeneti
pinMode(8, INPUT_PULLUP); //kimeneti csatlakozó
}
void loop()
{
int sensorVal = digitalRead(8); //”sensorVal” változóba kiolvassuk a 8. csatlakozó állapotát
if (sensorVal == HIGH) {
digitalWrite(4, LOW);
}
else {
digitalWrite(4, HIGH);
}
}
Magyarázat: a sensorVAL = változó, kiolvasva a 8. csatlaozó állapotát egy számértéket vesz fel
Ha (IF) a sensorVal állapota bekapcsolt (HIGH), a 4 csatlakozó pontot kapcsoljuk le a (LOW) – led nem világít
Egyébként (ELSE) a 4. csatlakozó pontot kapcsoljuk be – a led világít.
Ez a megoldás minden ilyen jellegű feladatnál használható, ahol az értzékelő kapcsolóként működik.
Analóg oldalra kapcsolt érzékelők:
Egy ilyen feladatot már megoldottunk, akkor nem magyaráztuk meg. Fényérzékelőt használtunk a hangcsúzdás feladatban.
Tanulmányozzuk a rajzot!
Feladat: Keressd meg a rajzon a következő elemeket! ellenállás, fényérzékelő! Az analóg oldal melyik pontját használjuk?
Figyeld meg hogyan kell bekötni ezeket az Arduino-hoz! (0. számú analóg csatlakozót használjuk!)
Az első modellünk az utcai közvilágítás irányítására is használt szürkületkapcsoló lesz. (A modell a sötétedést érzékelve bekapcsol egy ledet.)
A fényérzékelő és az ellenállás bekötése az előző rajz és a fénykép alapján elvégezhető.
Tegyünk még egy ledet a digitális oldal 13. pontjára, a szkott módon bekötve!
// Analóg jel olvasása A3. portról történik – fényérzékelő állapota egy számértékben kifejezve
// GND ellenállás oldalra, a fényérzékelőre 5V, a közös megy A3-ra, lásd fénykép!
int val = 0; // változó amit majd kiolvasunk
void setup()
{
Serial.begin(9600); // setup serial
pinMode (13, OUTPUT); // A 13 digitalis pin bekapcsolása
}
void loop()
{
val = analogRead(A3); // input A3 pinről – itt olvassuk ki a fényérzékelő állapotát
Serial.println(val); // kiírjaj a serial monitorra – Korábbi példában már megmutattuk, hogyan kell bekapcsolni!
if (val>900) // Ha a kiolvasott érték 900 -nál kisebbb
{
digitalWrite (13, LOW ); // A 13. pinre szerelt led lekapcsol
}
else {digitalWrite (13, HIGH); } //egyébként a ledet kapcsoljuk be
}
A serial monitort azért használjuk a mert a fényérzékelő tipusától és a fényviszonyktól függően a kiolvasott érték nagyon különböző lehet.
Az IF sorban megvizsgálva a VAL értéke eltérő lehet. Mindwen helyzetben a nagyságát pontosan be kell állítani.
Példa egy másik fényérzékelőre:
Teljesen azonosan működtethetünk más tipusú érzékelőket!
A mozgásérzékelő egy kis cső melyben egy golyó található. Ha a golyó megmozdul, a kiolvasott érték változik a nyugalmi állapothoz képest.
Hőérzékelő:
Testhőmérsékletünket is megvizsgálhatjuk az Arduino segítségével.
Led világít. A kis kék hőérzékelő „hideg”.
Testünk melege elég, hogy kikapcsoljuk a ledet.
Nézzük a programot!
// Analóg jel olvasása A3. portról
// GND ellenállás oldalra, a fényérzékelőre 5V, a közös megy A3-ra
int val = 0; // változó amit majd kiolvasunk
void setup()
{
Serial.begin(9600); // setup serial
pinMode (13, OUTPUT); // A 13 digitalis pin bekapcsolása
}
void loop()
{
val = analogRead(A3); // input A3 pinről
Serial.println(val); // kiírjaj a serial monitorra
if (val>580)
{
digitalWrite (13, LOW ); // A 13. pinre szerelt led nincs bekapcsolva
}
else {digitalWrite (13, HIGH); }
}
Nagyon hasonlít a program a fényérzékelő működésére. Magyarázatától eltekintünk.
Még egy érdekesség a végére! Figyeld meg a képet! Kísérletezz! (Nem érzékelő, de a készleted tartalmazza, potméter.)