Arduino kezdőknek 9 - 8 bites futófények 1-4.
Szilágyi Sándor Zoltán Villamosmérnök, mérnök-informatikus
A cikket megírtam: 2022. 10. 05-án
A Rádiótechnikában megjelent: 2022. december
Ez a blog oldal tehát az eredeti, saját tulajdonomban levő dokumentum, és nem a nyomtatásban megjelent másolata. A cikket én írtam, én küldtem be, és csak azután jelent meg nyomtatott formában is. A nyomtatásban megjelent cikkeimre szerződést nem kötöttek velem, és anyagi juttatást se kaptam soha érte. Mivel a magazin már nem kapható, ezért a megjelent 13 cikkemet itt folytatnám, mivel Magyarországon jelenleg nincs hobbielektronikával foglalkozó magazin.
Az előző számban befejeztem az analóg beviteli eszközök alapjait. Lesz folytatása, de előtte a futófények alapjait is meg kell ismerni. Néhány egymást követő cikkben tervezem ezeket bemutatni, először digitális IC-k nélkül. Az áramkörök még mindig csak modellek, nem konkrét alkalmazások. Kezdő szintűek, akárcsak a programjaik. Több különböző áramkört kívánok bemutatni, az elsőhöz 8 db alapszintű programmal, melyet továbbfejlesztek digitális IC-kkel.
9.1 Futófény hardver
Az első 8 futófény programhoz egy olyan kapcsolást használunk, ami hasonlít a második cikk harmadik ábrájára, megnyolcszorozva a kimeneteket. Az áramkör a 39. ábrán látható. A panel 6-13 digitális kimeneteire egy-egy 220 ohmos védő ellenálláson át kötjük a led-ek anódjait. A katódokat közösítjük, és a GND pontra kapcsoljuk. Az áramkör ezzel kész.
39. ábra
9.1 Futófény programok
23. program: 8 db led astabil villogtatása
A 8-ledes villogtató program a 40. ábrán látható. Azért astabil, mert nincs stabil állapota. A villogás a végtelenségig tart (vagy ameddig ki nem kapcsoljuk).
A program egy megjegyzéssel kezdődik. Ezek lehetnek egysorosak, ekkor a //-jelet használjuk. Többsoros esetén (vagy ha ideiglenesen ki akarunk takarni egy részt a programból) használhatjuk a /* */-jelet is, melynek első része után több sorral lejjebb is elhelyezhetjük a záró részét.
Deklaráljuk és definiáljuk a led1-led8 változókat. Mindegyikük byte típusú. Az egyenlőségjel után írt 6-13 szám a panelen levő pineket jelöli. Korábban kevesebb változót használtunk, és külön-külön sorba kerültek. Mivel túl nagy helyet foglalnak el a képernyőn, és mivel azonos az adattípusuk, így csoportosíthatók: elég egyszer megadni az adattípust, majd vesszővel elválasztva felsorolni őket úgy, hogy új sor írásakor se kell az előző sort lezárni pontosvesszővel. Azaz elég csak a legutolsó után írni.
A setup részben a változókhoz hozzárendeljük a board kimeneteit. A deklarációs rész példáját csak részben tudjuk követni. Itt is fel lehet sorolni, több sorban, vesszővel elválasztva az egyes elemeket úgy, hogy a pontosvesszőt csak az utolsó után írjuk. Viszont a pinMode-ot mindegyik elé oda kell írni. Ha csak az első elé írjuk, a többinél elhagyjuk, akkor nem jelez a fordító hibát, viszont csak az első led fog villogni, mivel az a kimenet lesz aktív.
A főprogram egyszerű, nincs benne se szelekció, se iteráció. Azaz egyszerű szekvenciákból áll, melyek egymás után lefutnak. Egyszerűsítés, több sorba írás itt is lehetséges. A digitalWrite-ot itt is ki kell írni mindegyik elé, mert ha csak az elsőhöz írjuk, akkor a (már aktív kimenetek közül) csak ahhoz fog a jel valóban kijutni, így a többi nem fog világítani. Először az összes ledet egyszerre bekapcsoljuk, majd adott időzítés után kikapcsoljuk, majd újabb adott időzítés után kezdődik elölről a folyamat.
40. ábra
24. program: 4-4 led felváltva villogtatása
Ez a 2 bites astabil multivibrátor 8 bites változata úgy, hogy minden második (páros-páratlan) led világít vagy nem világít. Sorok összevonását itt is lehet alkalmazni. Működése egyszerű, nem sokban tér el az előzőtől. A program a 41-edik ábrán látható. Amíg a páratlan sorszámú ledek logikai magas állapotban vannak, addig a páros sorszámúak logikai alacsony állapotban, egészen az időzítés végéig. Ezután a páratlanok lesznek logikai alacsony-, illetve a páros sorszámúak logikai magas állapotban.
41. ábra
25. program: 8 bites futófény
Ifjúkoromban olvastam a Rádiótechnikában hasonlóról, ez most a jóval egyszerűbb, Arduino-s változat lesz. A program (42. ábra) annyiban tér el az előzőektől, hogy az egyes ledek időben egymás után villannak fel a beállított időre, majd miközben kialszik, (késleltetés nélkül) azonnal felgyullad a következő. A végén a folyamat késleltetés nélkül kezdődik elölről, mintha a soron következő led következne.
42. ábra
26. program: led-kígyó
A rendelkezésre álló szakirodalomban nem találtam hasonlót, így kénytelen vagyok így elnevezni. Működése (43. ábra) továbbra is astabil jellegű, mivel egy digitális kimenet se kerül stabil állapotba, logikai értékük adott idő múlva megváltozik. Minden kimenet azonos ideig van logikai magas-, majd azonos ideig logikai alacsony állapotban, csak időben egymáshoz képest sorban eltolva. Tehát először az első, majd adott idő múlva a második, majd adott idő múlva a harmadik, stb... led villan fel. Amikor mindegyik világít, adott idő múlva elalszik az első, majd adott idő múlva a második, stb..., végül ha mind elaludt, adott idő múlva kezdődik elölről a folyamat. Természetesen a késleltetési idők bármilyen értékre beállíthatók.
43. ábra
Felhasznált irodalom:
-
A cikket megírtam: 2022. 10. 05-án
A Rádiótechnikában megjelent: 2022. december