Minden, ami elektronika

Elektronikával hobbi szinten foglalkozó oldal

Késleltetés delay() parancs nélkül

2019. december 20. 17:11 - raptor13

avagy BlinkWithoutDelay

Néha két dolgot kell egyszerre tennie. Például szeretne villogni egy LED-et, miközben egy gomb állapotát szeretné figyelni. Ebben az esetben nem használhatja a delay() parancsot, mert a program futása szünetel, amíg az időzítés le nem telik. Ha a delay() futása közben nyomja meg a gombot, akkor semmi sem fog történni.

Az alábbi példaprogram be fogja mutatni, hogy hogyan tud egy LED diódát úgy villogtatni, hogy közben nem kell használnia a delay() parancsot. Bekapcsolja a LED-et, majd feljegyzi az időt. Ezután minden alkalommal, amikor a program loop() része lefut, ellenőrzi, hogy a kívánt villogási idő eltelt-e. Ha igen, akkor be- vagy kikapcsolja a LED-et, és feljegyzi az új időt. Ilyen módon a LED folyamatosan villog, miközben a program futása nem szakad meg, ezáltal a többi parancs is végrehajtódik (többek között a gomb állapotának a figyelése).

Ennek a módszernek a könnyebb megértéséhez vegyünk egy példát az életből. Tételezzük fel, hogy szeretné megmelegíteni a pizzáját a mikrohullámú sütőben, de közben várja a postást, hogy hozzon egy fontos levelet. A delay() használata az olyan, mintha leülne a mikrohullámu sütő elé és befogott füllel végig figyelné, ameddig le nem jár a melegítés ideje. Ha közben kopogtat a postás, nem fogja hallani, mert befogott füllel figyeli a mikrót. Így marad le a fontos levélről, ugyan úgy, ahogy az Ön által megírt program a gombnyomásról. Ellenben a delay() használata nélküli program, az olyan, mintha betenné a pizzát a mikróba és időről időre megnézné, hogy felmelegedett-e. Közben van ideje figyelni a postást, tenni-venni, stb. Látható, hogy ebben az esetben nem marad le a postásról, ha a pizza felmelegítése közben jön.

 

Ebben az oktatóanyagban megtudhatja, hogyan állítson be hasonló időzítőt.

Szükséges hardver

  • Arduino vagy a Genuino alaplap
  • LED dióda
  • 220 ohm értékű ellenállás


Az áramkör

Az áramkör felépítéséhez csatlakoztassa az ellenállás egyik végét az alaplap 13. érintkezőjéhez. Csatlakoztassa a LED hosszú lábát (a pozitív lábat, úgynevezett anódot) az ellenállás másik végéhez. Csatlakoztassa a LED rövid lábát (a negatív lábat, úgynevezett katódot) az alaplap GND kivezetéséhez, a fenti ábra és az alábbi kapcsolási rajz szerint.

A legtöbb Arduino és a Genuino alaplapnak már van gyárilag LED-je a 13 lábra kötve. Ha ezt a példaprogramot feltölti, akkor az alaplapon lévő LED fog villogni.

Kapcsolás

Miután összeállította az áramkört, csatlakoztassa az alaplapot a számítógéphez, indítsa el az Arduino szoftvert (IDE), és írja be az alábbi kódot.

Kód

Az alábbi kód a millis() függvényt használja, egy parancsot, amely eredményeképpen megtudhatja, hogy mennyi idő telt el (ezredmásodpercben), azóta, hogy elindult a program (minden alkalommal, amikor kikapcsolja a készüléket, ez nulláról indul ismét) és ezt használja a program a LED villogtatásához.

 

Szólj hozzá!

A bejegyzés trackback címe:

https://electro.blog.hu/api/trackback/id/tr2415360410

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása