Okos otthon is fókuszban

Arduino kalandok

Arduino kalandok

Arduino Blink

2017. december 13. - denx

Ez az Arduino-világ Hello World-je. Miről is van szó? Minden programozási nyelvben az első program, amit meg szoktak írni a kezdő fejlesztők az egy szög egyszerű példa, ami kiírja a képernyőre, hogy "Hello World!". Mivel az Arduino-nak nincs alapból képernyője, ezért itt a legelső program egy led villogtatását szokta szemléltetni.

A fenti kép azt mutatja hogyan is lehet bekötni egy ledet az Ardu egyik digitális kimenetére. Jól látható, hogy egy ellenállást illik a leddel sorba kötni, hogy tartósabb legyen a megoldás. Amit még érdemes megfigyelni a képen, az a próbapanel használata!

A próbapanel az a fehér lyukacsos dolog, ami nagyon hasznos tud lenni prototipizálásnál. A lyukak úgy vannak összekötve egymással, hogy alul és felül van 2-2 vízszintesen összekötött "sín", ahol a piros a tápfeszültséget szimbolizálja, a kék pedig a 0-t, vagy földet, vagy negatív pólust. Ez persze csak jelölés, mindenki azt dug oda, amit csak akar...
A kettő sínpár közötti lyukak függőlegesen vannak összekötve, de külön állnak a felső és külön az alsó ötösök. Ez azért praktikus, mert egy DIP tokozású integrált áramkört kényelmesen be lehet középre vízszintesen dugni, majd a lábaira könnyen tudunk más alkatrészeket csatlakoztatni a függőleges sínek segítségéve.

Szóval a ledet a kép készítője bedugta úgy, hogy a 2 láb külön-külön függőleges sínre csatlakozik, az egyik sínre rádugta a földet egy úgynevezett jumper kábellel, a másikra egy 220 Ohm-os ellenállást dugott, aminek a szabad végét bedugta a táp sínbe. Itt van egy kis trükk, mert a táp sín itt eleve az Ardu egyik digitális kimenete, de a lényeg talán átjön.

Így néz ki a led bekötés sematikusan. A 13-as számú digitális IO lábra kell a ledet kötni. A sematikus ábra specialitása, hogy az Ardu lábai nem feltétlen ugyanúgy helyezkednek el, ahogy a valósárban, illetve a táp bekötése sem látszik. Ennek az ábrának az áttekinthetőség a lényege, hogy könnyen össze tudja az egyszeri fejlesztő dugdosni a dolgokat.

Lássuk a kódot:

void setup() {
  pinMode(D13, OUTPUT);
}

void loop() {
  digitalWrite(D13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(D13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

 Elemezzük kicsit a kódot! Ez egy C forráskód. 2 metódus van benne:
- setup: ez egyszer fut le, amikor elindul a gép, tápot kap, vagy valaki megnyomja a RESET gombot. Ide illik minden olyan dolgot berakni, amivel beállítjuk a környezetet.
- loop: ezt a metódust hívogatja a rendszer újra meg újra. Így kell gondolkodni: egy ciklus magja fut le újra meg újra. Itt kell mindenről gondoskodni, úgy mint bemenetek ellenőrzése, kimenetek állítgatása, kommunikáció lebonyolítása, stb.

pinMode: a digitális IO lábakat tudjuk beállítani ezzel, hogy kimenet, vagy bemenet a láb.
digitalWrite: nevéből sejthető is, írni tudunk rá, vagyis ha HIGH-ra állítjuk, akkor tápfeszültség lesz rajta, ha LOW-ra, akkor meg a nullához lesz nagyon közel.
delay: remélem nem kell sokáig magyarázni, várakozás fog történni ha ezt meghívjuk, méghozzá annyi milliszekundum, amennyit paraméterként adunk neki meg.

A delay-hez még jár némi magyarázat: illik kerülni a dolgot Ardu világában. Ennek az az oka, hogy amíg ott várakozik a processzor, addig szó szerint nem történik semmi! Viszont az idő nem áll meg és ami a világban közben történik, arról a proci lemarad! Ebben a primitív példában nyilván nem lehet olyan sok mindenről lemaradni, de egy bonyolultabb kódban előfordulhat, hogy közben a felhasználó megnyom egy gombot, mi meg észre sem vesszük, mert épp várakoztunk! Ennek a helyzetnek az elkerüléséről majd egy másik alkalommal fogok még mesélni.

A bejegyzés trackback címe:

https://ardu.blog.hu/api/trackback/id/tr7613479363

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