Arduino kezdőknek

É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!

DSC01101 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.

DSC01103 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!

switchCase_bb

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.)

DSC01106   DSC01105

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:

DSC01104

Teljesen azonosan működtethetünk más tipusú érzékelőket!

DSC01107 Mozgásérzékelő

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.

2015221185135

2015221185201

Led világít. A kis kék hőérzékelő “hideg”.

2015221185217

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.)

DSC01108

Pages: 1 2 3 4 5 6 7 8 9 10 11