
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47

Ez a projekt úgy tekinthető, mint egy másik bevezető Arduino projekt, amely valamivel fejlettebb, mint a tipikus „villogó LED” projekt. Ez a projekt magában foglal egy LED -mátrixot, nyomógombokat, váltásregisztereket (amelyek menthetik a csapokat az Arduino táblán), és egy kulcsfogalmat, az úgynevezett multiplexelést. Remélem, hogy az oktatóanyag felvilágosítónak tűnik, és kihívja magát, hogy javítson rajta!
Kellékek
(1x) Arduino Uno
(5x) Tapintható nyomógombok
(2x) 0,1 uF kondenzátorok
(2x) 1 uF kondenzátor
(8x) 1k ellenállás
(5x) 10k ellenállás
(2x) 74HC595 műszakregiszterek
Jumper vezetékek
Fekete vezeték
Vörös drót
1. lépés: 1. lépés: LED -mátrix készítése



A 8x8 LED mátrix elkészítéséhez használt oktatóanyag ebben a projektben itt található. A LED -mátrixnak gyakori konfigurációi vannak:
a) Közös soros anód
b) Közös sorkatód
Mivel a mátrix közös soros katód elrendezését használtam, elsősorban itt fogom tárgyalni, és ugyanezt a logikát kiterjesztheti a közös soros anód elrendezésére is. A közös soros katód elrendezésben a LED -ek katódjai (vagy negatív termináljai, amelyek a LED rövidebb lábai) sorokba vannak kötve, míg az anódok (vagy pozitív sorkapcsok, amelyek a LED hosszabb lábai) oszlopokban vannak összekötve. Egy adott LED megszólításához húzza le azt a katódsort, amelyen a LED katód alacsony, és húzza azt az anódoszlopot, amelyen a LED anód magasan van.
Megjegyzés: A fenti linken látható LED -mátrix készítésekor győződjön meg arról, hogy az anódoszlopokat csatlakoztatja az 1 k ohmos ellenállásokhoz, mielőtt bármilyen feszültséget alkalmazna a LED -ekre.
2. lépés: 2. lépés: A nyomógombok és a váltóregiszterek bekötése




A nyomógombok és a váltóregiszterek huzalozása fent látható. Szeretném megjegyezni, hogy az áramköri diagramban lévő eltolásregiszterek nem mutatják a chipek földelését (az IC 8. tüske) és a Vcc -t, vagy a tápegységet (az IC 16. csapja); a földelőcsap az Arduino kártya GND csapjához, a Vcc pedig az Arduino kártya 5 V -os csatlakozójához van csatlakoztatva. Az egyes váltóregiszterek Vcc -csapja a földhöz csatlakoztatott 0,1uF kondenzátorhoz is csatlakozik.
Megjegyzés: Az egyes műszakregiszterek kimenetei QA - QH (QH*figyelmen kívül hagyása). A legkevésbé szignifikáns bit (LSB) (QA esetén) a legjelentősebb bit (MSB) (QH esetén) szerint vannak felsorolva, azaz a QA a 0. sort vagy oszlopot irányítja stb.
3. lépés: 3. lépés: A kód feltöltése
A LED mátrix vezérlésére szolgáló kód ehhez az oktatóanyaghoz van csatolva. Megpróbáltam megjegyzést fűzni a kódhoz, amennyire csak tudtam, így nagyon világos lenne a program működése. A program fő alapja egy mátrix, amely nyomon követi, hogy mely LED -eknek kell be- vagy kikapcsolniuk. Annak érdekében, hogy a különböző LED -ek helyesen jelenjenek meg, anélkül, hogy véletlenül bekapcsolnák a nem kívánt diódákat, a multiplexelésnek nevezett koncepciót kell használni. A multiplexelés lényegében az egyes LED -ek meggyújtását egy adott sorban, míg az összes többi LED -et más sorokban, majd ugyanezt teszi a többi sorban. A trükk az, hogy ha a LED -ek elég gyorsan ciklusoznak a sorok között, akkor a szeme jelezheti, hogy az egyes sorok egyenként világítanak. Ha további módszereket szeretne felfedezni, hogyan csábíthatja el a szemét LED -ekkel, érdemes megvizsgálnia a látás állandóságának fogalmát (könnyen kereshető a Google -on vagy az Instructables -en).
Az anódoszlopok és a katódsorok frissítése a felhasználó által az „UpdateShiftRegisters” nevű függvényen keresztül történik. Ez a funkció először elfordítja a reteszelő csapot, amely azt szabályozza, hogy új bájt (8 bit) kerüljön -e a kimenetre, alacsony, így nincs lehetőség a kimenetek megváltoztatására, miközben új biteket írnak a chipre. Ezután a beépített „ShiftOut” nevű Arduino függvény használatával, amely kifejezetten kezeli az adatok küldését a váltóregiszterekhez, a program azt írja be, hogy melyik (katód) sor legyen alacsony, és melyik (anód) oszlop legyen magas. Végül a reteszcsapot magasra kell húzni, hogy frissítse a kimenetet (a LED -eket).
4. lépés: További információk/források

Íme néhány hivatkozás olyan webhelyekre vagy könyvekre, amelyek további információkat tartalmazhatnak a projektről:
learn.adafruit.com/adafruit-arduino-lesson-4-eight-leds/arduino-code
www.arduino.cc/en/tutorial/ShiftOut
www.ti.com/lit/ds/symlink/sn74hc595.pdf
www.youtube.com/watch?v=7VYxcgqPe9A
www.youtube.com/watch?v=VxMV6wGS3NY
Az Arduino első lépései, 2. kiadás, Massimo Banzi
Ajánlott:
Nyomógombos kapcsoló: 31 lépés

Nyomógombos kapcsoló: A nyomógombos kapcsoló a segédkapcsoló egy másik változata. A fogyatékkal élő gyermekek számára készült, így fel tudják hatalmazni a mindennapi tárgyak használatára
Arduino zongora nyomógombos kapcsolókkal: 3 lépés

Arduino zongora nyomógombos kapcsolókkal: Készítette: Haotian YeOverview: Ez egy zongora tábla nyolc nyomógombos kapcsolóval, amely lehetővé teszi egy oktáv (Do Re Mi Fa So La Si Do) lejátszását, és ezzel az egy oktávval megpróbálhat játszani néhány dal tetszik. Ennek a projektnek van néhány hatása
Dupla nyomógombos LED áramkör: 5 lépés

Dupla nyomógombos LED áramkör: Minden tőlem telhetőt megpróbálok, hogy régi kéznek tűnjek a programozásnál és az arduino -val való együttműködésnél, de az igazat megvallva, a valóságban csak néhány nappal ezelőtt ismertem meg ezeket a dolgokat, ezért nagy örömömre szolgál sikeresen létrehoztam és programoztam
AVR mikrovezérlő. Kapcsolja be a LED -eket nyomógombos kapcsolóval. Nyomógomb kikapcsolása: 4 lépés

AVR mikrovezérlő. Kapcsolja be a LED -eket nyomógombos kapcsolóval. Nyomógombos kikapcsolás: Ebben a részben megtanuljuk, hogyan kell C programprogramot készíteni az ATMega328PU számára, hogy a három LED állapotát a gombkapcsoló bemenete szerint változtassa meg. Ezenkívül megvizsgáltunk egy megoldást a „Switch Bounce” problémára. Mint általában, mi
LED, nyomógombos indítással és kialvással: 5 lépés

LED, nyomógombos indítással és elhalványulással: Ez egy egyszerű áramkört ír le, amely lehetővé teszi, hogy a 9 voltos akkumulátor táplálja a LED -et, majd a nyomógomb elengedése után elhalványul. Valami nagyon hasonlót kértek valahol a fórumok egyik kérdésében. Remélem, ez prototípusként hasznos lesz