Tartalomjegyzék:
- Célok
- Tapasztalat és készségek
- Jogi nyilatkozat és jóváírás
- 1. lépés: Alkatrészek
- Alkatrész lista
- Általános alkatrészek
- Itt használt egyedi alkatrészek
- Megjegyzések az alkatrészekkel kapcsolatban
- 2. lépés: A mátrix
- Építési szempontok
- A Mátrix építése
- Fontos
- 3. lépés: A hardver vezérlése
- A vezérlő hardver építése
- 4. lépés: Szoftver
- A trükk
- Váltóregiszterek: hogyan
- A kijelző megszólítása
- Programozás
- Akcióban
- 5. lépés: Moduláris fogalmak
- Math
- Lépcsőzetes váltóregiszterek
- Több soros illesztőprogram
- Például
- 6. lépés: Következtetés
- Lehetséges kiegészítések
- 7. lépés: Követés
- Az áramköri lap jellemzői
- Összeszerelés
Videó: LED mátrix váltóregiszterek használatával: 7 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:44
Ez az oktatóanyag teljesebb magyarázatot jelent, mint mások az interneten. Nevezetesen, ez több hardveres magyarázatot fog adni, mint amennyi a led555 által utasítható LED sátorban elérhető.
Célok
Ez az útmutató bemutatja a műszakregiszterek és a magas oldali meghajtók fogalmait. Ha ezeket a fogalmakat egy 8x8 LED -es mátrixszal szemléltetem, remélem, hogy az Ön rendelkezésére fogom bocsátani azokat az eszközöket, amelyek szükségesek ahhoz, hogy alkalmazkodni tudjanak a projekt méretéhez és elrendezéséhez.
Tapasztalat és készségek
Ezt a projektet közepes nehézségűnek minősíteném:
- Ha már rendelkezik tapasztalattal a mikrokontrollerek programozásában és a LED -ekkel való munkában, akkor ezt a projektet meglehetősen könnyűnek kell lennie a teljesítéshez és a nagyobb fénycsövekhez való méretezéshez.
- Ha most kezdi használni a mikrokontrollereket, és villog egy vagy két LED -et, akkor képesnek kell lennie arra, hogy befejezze ezt a projektet a google barátunk segítségével.
- Ha kevés vagy nincs tapasztalata a mikrovezérlőkkel vagy a programozással kapcsolatban, akkor ez valószínűleg meghaladja azt, amibe bele kellene kezdenie. Próbáljon ki néhány más kezdő projektet, és térjen vissza, ha már van tapasztalata a mikrokontrollerek programjainak írásával kapcsolatban.
Jogi nyilatkozat és jóváírás
Először is, nem vagyok villamosmérnök. Ha valamit rosszul lát, vagy nem a legjobb gyakorlat, kérjük, tudassa velem, és elvégezem a javítást. Tegye ezt saját felelősségére! Tudnia kell, mit csinál, különben kárt okozhat a számítógépében, a mikrokontrollerében és még önmagában is. Sokat tanultam az internetről, különösen a következő fórumokról: https://www.avrfreaks.net egy betűkészlet, amely a ks0108 univerzális C könyvtárhoz került. Nézze meg itt:
1. lépés: Alkatrészek
Alkatrész lista
Általános alkatrészek
A 8x8 -as LED -rács elkészítéséhez és vezérléséhez szüksége lesz:
- 64 LED választható
- 8 Ellenállás a LED -ekhez
- 1 Shift regiszter az oszlopokhoz
- 1 Illesztőprogram tömb a sorokhoz
- 8 Ellenállások a meghajtó tömb átkapcsolásához
- 1 mikrovezérlő
- 1 óraforrás a mikrovezérlőhöz
- 1 prototípus -tábla
- 1 tápegység
- Csatlakozó vezeték
Itt használt egyedi alkatrészek
Ehhez az utasításhoz a következőket használtam:
- 64 zöld LED (Mouser part #604-WP7113GD)
- 8 220ohm 1/4 wattos ellenállás a LED-ekhez (Mouser part #660-CFS1/4CT52R221J)
- 1 HEF4794 LED meghajtó váltásregiszterrel (Mouser alkatrész #771-HEF4794BPN)
- 1 mic2981 Nagyfeszültségű nagyáramú forrás meghajtó tömb (Digikey alkatrész #576-1158-ND)
- 8 3,3 kΩ-os 1/4 wattos ellenállás a meghajtó tömb átkapcsolásához (Radio Shack part #271-1328)
- 1 Atmel ATmega8 mikrokontroller (Mouser alkatrész #556-ATMEGA8-16PU)
- 1 12 MHz-es kristály a mikrovezérlő óraforrásához (Mouser #815-AB-12-B2)
- 1 2200 lyukú prototípus-tábla (Radio Shack alkatrész #276-147)
- Átalakított ATX tápegység: Lásd ezt az utasítást
- Szilárd magú 22 awg bekötő vezeték (Radio Shack part #278-1221)
- Forrasztás nélküli kenyértábla (Radio Shack alkatrész #276-169 (már nem elérhető, próbálja ki: 276-002)
- AVR Dragon (Mouser rész #556-ATAVRDRAGON)
- Dragon Rider 500, Ecros Technologies: Lásd ezt az utasítást
Megjegyzések az alkatrészekkel kapcsolatban
Sorok és oszlopok meghajtói: A projekt talán legnehezebb része a sorok és oszlopok meghajtóinak kiválasztása. Először is, nem hiszem, hogy egy szabványos 74HC595 váltóregiszter jó ötlet, mert nem tudják kezelni azt az áramot, amelyet a LED -eken keresztül szeretnénk küldeni. Ezért választottam a HEF4794 illesztőprogramot, mivel az könnyen lemerítheti az áramot, ha mind a 8 led egy sorban van bekapcsolva. A váltásregiszter az alsó oldalon (a LED -ek földelőcsapja) található. Szükségünk lesz egy sorvezérlőre, amely elegendő áramot tud biztosítani több oszlop összeillesztéséhez. A mic2981 akár 500mA tápellátást is képes biztosítani. Az egyetlen másik alkatrész, amit találtam, hogy elvégzi ezt a feladatot, az UDN2981 (digikey part #620-1120-ND), amely egy másik gyártó azonos alkatrésze. Kérem, küldjön nekem egy üzenetet, ha ismer más magas szintű illesztőprogramokat, amelyek jól működnének ebben az alkalmazásban. Egy nagyobb LED -tömb épülhet több mátrix összefűzésével, és a "moduláris fogalmak" lépésben tárgyaljuk. Ha nagy tömböt szeretne, rendelje meg az összes szükséges alkatrészt egyszerre. 8x8, 5x7 és 5x8 LED mátrixok állnak rendelkezésre egy kényelmes csomagban. Ezeket könnyű helyettesíteni egy barkács mátrixszal. Az Ebay jó forrás ezekhez. A Mouser 5x7 egységet kínál, például a #604-TA12-11GWA alkatrészt. Olcsó zöld LED -eket használtam, mert csak játszok és szórakozom. Ha többet költ a nagy fényerejű, nagy hatékonyságú LED-ekre, sokkal látványosabb megjelenítést eredményezhet … ez azonban elég jó számomra! Ehhez programozóra lesz szüksége. Mivel prototípusokat készítek, a Dragon Rider 500 -at használom, amelyhez az összeszerelési és használati utasításokat is írtam. Ez egy egyszerű eszköz a prototípusok készítéséhez, és nagyon ajánlom.
2. lépés: A mátrix
Saját LED -mátrixomat fogom építeni ehhez a projekthez 5 mm -es ledek és a Radio Shack prototípus -táblája segítségével. Meg kell jegyezni, hogy több forrásból, köztük az ebayről is vásárolhat 8x8 pontmátrixos led modulokat. Jól működniük kell ezzel az utasítással.
Építési szempontok
A LED -eket úgy kell igazítani, hogy azonos irányba nézzenek azonos szögben. Úgy találtam, hogy a legegyszerűbb lehetőség az volt, hogy a LED burkolat testét a táblához tettem, és ott tartottam egy kis plexi darabbal és szorítóval. Néhány LED -et a helyére helyeztem a pár sorral arrébb a soromtól, amelyen dolgoztam, hogy megbizonyosodjak arról, hogy a plexi párhuzamos -e a prototípus -táblával. Sorok és oszlopok Minden sorhoz és minden oszlophoz közös kapcsolattal kell rendelkeznünk. Sor- és oszlopvezérlőnk miatt az anódot (a LED pozitív vezetéke) sorral kell összekötni, a katódot (a LED negatív vezetéke) pedig oszloppal kell összekötni. Ehhez a prototípushoz szilárd magú (egyvezetékes) csatlakozóvezetéket használok. Ez nagyon könnyen illeszthető lesz a forrasztás nélküli kenyértáblához. Nyugodtan használjon más típusú csatlakozót a projektnek megfelelően.
A Mátrix építése
1. Helyezze a LED -ek első oszlopát a prototípus -táblába.2. Ellenőrizze kétszer, hogy a polaritása minden egyes LED esetében helyes -e, ezt nagyon nehéz lesz kijavítani, ha később rájön. Forrasztja a LED mindkét vezetékét a táblához. Ellenőrizze, hogy megfelelően vannak -e igazítva (nem furcsa szögben), és vágja le a katód vezetékeket. Ügyeljen arra, hogy ne csíptesse le az anódvezetéket, mert erre később szükségünk lesz, ezért hagyja felfelé mutatva. Távolítsa el a szigetelést egy szilárd maghuzalból. Forrasztja ezt a huzaldarabot minden katódhoz közvetlenül a tábla szintjén.
- Ezt mindkét végén megcsaptam, majd visszamentem, és minden csomóponthoz hozzáadtam egy kis forrasztást.
- Ennek a vezetéknek el kell futnia az utolsó LED -en, hogy megkönnyítse az interfészt, amikor vezérlővezetékeket adunk hozzá.
5. Ismételje meg az 1-4. Soros busz létrehozásához hajlítsa meg az anódvezetékek közül néhányat 90 fokos szögben, hogy érintkezzenek az ugyanabban a sorban lévő többi anódvezetékkel.
- Erről részletes képek találhatók alább.
- Ügyeljen arra, hogy ezek ne érintkezzenek az oszlopos buszokkal, rövidzárlatot okozva.
7. Forrasztja a vezetékeket minden csomópontnál, és vágja le a felesleges anódvezetékeket.
Hagyja az utolsó anódot a végső LED mellett. Ezt a sorvezérlő vezetékek csatlakoztatására használják
8. Ismételje meg a 6. és 7. részt, amíg az összes sor buszát forrasztják. Csatlakoztassa a vezérlő vezetékeket.
- A sorokhoz piros tömör huzalt, az oszlopokhoz feketét használtam.
- Csatlakoztasson egy vezetéket minden oszlophoz és egyet minden sorhoz. Ez könnyen elvégezhető minden busz végén.
Fontos
Ez a LED mátrix nem rendelkezik áramkorlátozó ellenállással. Ha ezt ellenállások nélkül teszteli, akkor valószínűleg kiégeti a LED -eket, és ez a munka semmi.
3. lépés: A hardver vezérlése
Ellenőriznünk kell a LED -mátrix oszlopait és sorait. A mátrixot úgy építették fel, hogy az anódok (a LED feszültség oldala) alkotják a sorokat, és a katódok (a LED földi oldala) alkotják az oszlopokat. Ez azt jelenti, hogy a sorvezérlőnknek áramot kell szereznie, az oszlopvezérlőnknek pedig le kell süllyesztenie. A csapok megtakarítása érdekében egy váltóregisztert használok az oszlopok vezérlésére. Így szinte korlátlan számú oszlopot tudok irányítani mindössze négy mikrovezérlő tűvel. Csak akkor használható három, ha a Kimenet engedélyezése csap közvetlenül a feszültséghez van kötve. Kiválasztottam a HEF4794 LED meghajtót váltóregiszterrel. Ez jobb megoldás, mint a normál 74HC595, mivel könnyen elmeríti az áramot, ha mind a 8 LED egyszerre világít. A magas oldalon (a sorok aktuális forrása) egy mic2981 -et használok. A vázlat egy UDN2981 -et mutat, szerintem ez a kettő felcserélhető. Ez a meghajtó akár 500 mA áramot is képes biztosítani. Mivel egyszerre csak 1 sort vezetünk, ez sok lehetőséget ad a bővítésre, akár 33 oszlopot is ehhez a chiphez (erről bővebben a "moduláris koncepciók" lépésben).
A vezérlő hardver építése
Ennek az oktathatónak a kedvéért most kenyerezettem ezt az áramkört. Az állandóbb megoldás érdekében saját maratott áramköri lapját vagy prototípus -kártyát kell használni. Sorvezető
- Helyezze a mic2981 -et (vagy UDN2981 -et) a kenyértáblába
- Csatlakoztassa a 9 -es érintkezőt a feszültséghez (ez zavaró az ábrán)
- Csatlakoztassa a 10 -es csapot a földhöz (ez zavaró a vázlatban)
- helyezzen be 3k3 ellenállásokat az 1-8
- Csatlakoztassa az ATmega8 (PD0-PD8) D portjáról a 8 ellenálláshoz
- Csatlakoztassa a LED-mátrix 8 soros vezérlővezetékét a 11-18. Tűkhöz (vegye figyelembe, hogy a legalacsonyabb LED-sorokat a 18-as, a legmagasabb sorokat a 11-es tűhöz kötöttem).
2. Oszlopvezető
- Helyezze a hef4794 -et a kenyértáblába
- Csatlakoztassa a 16 -os csapot a feszültséghez
- Csatlakoztassa a 8 -as csapot a földhöz
- Csatlakoztasson 220 ohmos ellenállásokat a 4-7. És 11-14.
- Csatlakoztassa a 8 oszlopos vezérlővezetéket a LED -mátrixból az imént csatlakoztatott 8 ellenálláshoz.
- Csatlakoztassa a Pin1 (reteszt) az ATmega8 PC0 -jához
- Csatlakoztassa a Pin2 -t (adatok) az ATmega8 PC1 -hez
- Csatlakoztassa a Pin3 -at (óra) az ATmega8 PC2 -jéhez
- Csatlakoztassa a Pin15 -öt (kimenet engedélyezése) az ATmega8 PC3 -hoz
3. Óra kristály
Csatlakoztasson egy 12 MHz -es kristályt és terhelési kondenzátorokat az ábra szerint
4. ISP
Csatlakoztassa a programozási fejlécet az ábrán látható módon
5. Szűrő kondenzátor és felhúzó ellenállás
- A legjobb az ATmega8 tápfeszültségének szűrése. Használjon 0.1uf kondenzátort az ATmega8 7. és 8. tűje között
- A visszaállító csapot nem szabad lebegni hagyni, mert véletlenszerű visszaállítást okozhat. Használjon ellenállást a feszültséghez való csatlakoztatáshoz, minden 1k -nak jónak kell lennie. A rajzban 10k ellenállást használtam.
6. Győződjön meg arról, hogy +5V szabályozott teljesítményt használ. A szabályozó tervezése rajtad múlik.
4. lépés: Szoftver
A trükk
Igen, mint mindennek, van egy trükkje. A trükk az, hogy soha nem lehet egyszerre több, mint 8 LED világítani. Ahhoz, hogy ez jól működjön, szükség van egy kis ravasz programozásra. Az általam választott koncepció az időzítő megszakítás használata. Így működik a kijelző megszakítása egyszerű angolul:
- Az időzítő egy bizonyos pontig számít, amikor eléri a megszakítási szolgáltatás rutinját.
- Ez a rutin határozza meg, hogy melyik sor jelenik meg legközelebb.
- A következő sorra vonatkozó információkat egy pufferből keresik fel, és az oszlopillesztőbe helyezik át (ez az információ nincs „rögzítve”, így még nem jelenik meg).
- A sorvezérlő ki van kapcsolva, jelenleg nem világít semmilyen LED.
- Az oszlop -illesztőprogram "reteszelt", hogy a két lépéssel ezelőtt eltolt információk között jelenítse meg az aktuális információkat.
- A sorvezérlő ezután áramot szolgáltat a megjelenített új sornak.
- A megszakítási szolgáltatási rutin véget ér, és a program visszatér a normál folyamatba a következő megszakításig.
Ez nagyon gyorsan történik. A megszakítást 1 mSec -enként dobják. Ez azt jelenti, hogy körülbelül 8 mSec -enként frissítjük a teljes kijelzőt. Ez 125 Hz körüli megjelenítési gyakoriságot jelent. A fényerővel kapcsolatban némi aggodalomra ad okot, mivel lényegében a LED -eket 1/8 üzemi cikluson keresztül működtetjük (az idő 7/8 -án ki vannak kapcsolva). Az én esetemben kellően világos kijelzőt kapok, amely nem villog. A teljes LED -kijelző egy tömbben van leképezve. A megszakítások között a tömb megváltoztatható (ügyeljen az atomosságra), és megjelenik a kijelzőn a következő megszakítás során. Az AVR mikrokontroller kódjának írása és a műszakregiszterekkel való beszélgetés kódjának leírása kívül esik a hatókörön ennek tanulságos. A programozáshoz mellékeltem a forráskódot (C-ben írva és AVR-GCC-vel összeállítva), valamint a hexafájlt. Megjegyztem az összes kódot, így ezt használhatja arra, hogy tisztázzon minden kérdést azzal kapcsolatban, hogyan lehet adatokat bevinni a műszakregiszterbe, és hogyan működik a sorfrissítés. Kérjük, vegye figyelembe, hogy a ks0108 univerzális C könyvtár. A könyvtár itt található:
Váltóregiszterek: hogyan
Úgy döntöttem, hozzáteszek egy kicsit arról, hogyan kell programozni műszakregiszterekkel. Remélem, ez tisztázza a dolgokat azok számára, akik korábban nem dolgoztak velük. Amit csinálnak A váltóregiszterek vesznek egy jelet egy vezetékből, és ezt az információt sok különböző tűre továbbítják. Ebben az esetben van egy adatkábel, amely az adatokat veszi fel, és 8 érintkező, amelyeket attól függően vezérelnek, hogy milyen adatokat kapott. A helyzet javítása érdekében minden műszakregiszterhez van egy kimenet, amely csatlakoztatható egy másik műszakregiszter bemeneti tűjéhez. Ezt kaszkádnak nevezik, és a bővítési potenciál szinte korlátlan kilátássá válik. A Control PinsShift regiszterek 4 vezérlőtűvel rendelkeznek:
- Retesz - Ez a csap jelzi a váltásregiszternek, hogy mikor kell átállni az újonnan bevitt adatokra
- Adatok - Az 1 -esek és a 0 -k megmondják a váltóregiszternek, hogy milyen csapokat kell aktiválni.
- Óra - Ez a mikrokontroller által küldött impulzus, amely azt mondja a műszakregiszternek, hogy olvassa le az adatokat, és lépjen tovább a kommunikációs folyamat következő lépésére
- Kimenet engedélyezése - Ez egy ki/be kapcsoló, Magas = Be, Alacsony = Ki
A licitálás végrehajtása: Íme egy összeomlási tanfolyam a fenti vezérlőcsapok működésében: 1. lépés: Állítsa alacsonyra a reteszt, az adatokat és az órát
A retesz alacsony beállítása jelzi a műszakregisztert, hogy írni készülünk hozzá
2. lépés: Állítsa be az adatcsapot arra a logikai értékre, amelyet el szeretne küldeni a váltásregiszterbe 3. lépés: Állítsa az órajelmagot magasra, és mondja meg a váltóregiszternek, hogy olvassa be az aktuális adatcsapértéket
Az összes többi érték, amely jelenleg a Shift Register -ben van, 1 hellyel meghaladja a helyet, teret engedve a Data pin aktuális logikai értékének
4. lépés: Állítsa az Óracsapot alacsony szintre, és ismételje meg a 2. és 3. lépést mindaddig, amíg minden adatot el nem küld a műszakregiszterbe.
Az óracsapot alacsonyra kell állítani, mielőtt a következő adatértékre vált. Ennek a csapnak a magas és az alacsony közötti váltása hozza létre az "óraimpulzust", amelyet a váltásregiszternek tudnia kell, mikor kell a folyamat következő lépésére lépni
5. lépés: Állítsa a reteszt magasra
Ez azt mondja a műszakregiszternek, hogy vegye fel az összes eltolt adatot, és használja fel a kimeneti tüskék aktiválására. Ez azt jelenti, hogy nem fogja látni az adatokat, amint azok befelé tolódnak; a kimeneti csapok nem változnak addig, amíg a reteszt magasra nem állítják
6. lépés: Állítsa a Kimenet engedélyezése beállítást magasra
- Mindaddig nem lesz tűkimenet, amíg az Enable Output nincs magasra állítva, függetlenül attól, hogy mi történik a másik három vezérlőtűvel.
- Ezt a csapot mindig magasan lehet hagyni, ha szeretné
Két lépcsőfok használható az ütközéshez: Os és Os1. Az Os a gyorsan emelkedő órákra, az Os1 pedig a lassan emelkedő órákra vonatkozik. Csatlakoztassa ezt a csapot a következő műszakregiszter adattüskéjéhez, és a chip túlcsordulása bekerül a következőbe.
A kijelző megszólítása
A példaprogramban létrehoztam egy 8 bájtos tömböt row_buffer néven. Minden bájt a 8x8 -as kijelző egy sorának felel meg, a 0. sor az alsó és a 7. sor a felső. Minden sor legkevésbé jelentős bitje a jobb oldalon, a legjelentősebb bit a bal oldalon található. A kijelző megváltoztatása olyan egyszerű, mint új érték írása az adott tömbhöz, a megszakítási szolgáltatási rutin gondoskodik a kijelző frissítéséről.
Programozás
A programozást itt nem tárgyaljuk részletesen. Figyelmeztetlek, hogy ne használj DAPA programozókábelt, mivel úgy gondolom, hogy nem fogod tudni programozni a chipet, ha az 12MHz -en fut. Minden más szabványos programozónak működnie kell (STK500, MKII, Dragon, Párhuzamos/soros programozók, stb.). Biztosítékok: Ügyeljen arra, hogy a biztosítékokat a 12 MHz -es kristálybiztosítékhoz használja: 0xC9lfuse: 0xEF
Akcióban
Miután beprogramozta a chipet, a kijelzőn görgetnie kell a "Hello World!" Itt egy videó a LED mátrixról a műveletek során. A videó minősége meglehetősen gyenge, mivel ezt a digitális fényképezőgép videó funkciójával készítettem, nem pedig megfelelő videóval vagy webkamerával.
5. lépés: Moduláris fogalmak
Ez a projekt méretezhető. Az egyetlen korlátozó tényező az lesz, hogy mennyi áramot tud biztosítani a tápegység. (A másik valóság az, hogy hány LED és regisztrációs váltó áll rendelkezésre.)
Math
A LED-eket körülbelül 15 mA-en hajtom (5V-1.8vDrop/220ohms = 14.5mA). Ez azt jelenti, hogy akár 33 oszlopot is meg tudok vezetni a mic2981 illesztőprogrammal (500mA/15mA = 33,3). 8 -mal osztva láthatjuk, hogy ez lehetővé teszi számunkra 4 műszakregiszter összefűzését. Vegye figyelembe azt is, hogy nem kell mind a 32 oszlopot balról jobbra húznia. Ehelyett létrehozhat egy 16x16 tömböt, amely ugyanúgy van bekötve, mint a 8x32 tömb. Ezt 4 bájt eltolásával oldanák meg…. az első kettő egészen a ledek felé tolódna a 9. sorban, a második két bájt az első sorba. Mindkét sort a sorvezérlőn lévő egy csap fogja biztosítani.
Lépcsőzetes váltóregiszterek
A használt műszakregiszterek lépcsőzetes műszakregiszterek. Ez azt jelenti, hogy az adatok eltolásakor a túlcsordulás megjelenik az Os -tűn. Ez nagyon hasznos lesz, mivel a műszakregiszterek halmaza összekapcsolható egymással, az Os tű az adatcsaphoz, és 8 oszlopot ad hozzá minden új chiphez. Az összes váltásregiszter ugyanahhoz a reteszhez, órához és kimeneti engedélyezéshez csatlakozik a mikrokontrollert. A "lépcsőzetes" effektus akkor jön létre, amikor az első műszakregiszter Os -ját csatlakoztatják a második adatcsapjához. A programozást módosítani kell, hogy tükrözze az oszlopok számának növekedését. Mind az információt tároló puffert, mind az egyes oszlopokban információt áthelyező függvényt frissíteni kell, hogy tükrözze az oszlopok tényleges számát. Ennek vázlata az alábbiakban található példaként.
Több soros illesztőprogram
A sorvezérlő (mic2981) elegendő áramot tud biztosítani 32 oszlop meghajtásához. Mi van, ha 32 -nél több oszlopot szeretne? Lehetővé kell tenni több soros illesztőprogramok használatát anélkül, hogy több mikrovezérlőt kellene használni. Szükségünk van arra, hogy a sorvezérlők elegendő áramot biztosítsanak a LED -ek meggyújtásához. Ha több oszlopot használ, mint amennyit egyszerre ki lehet világítani, akkor a kiegészítő sorvezérlők biztosíthatják a szükséges áramot. A mikrovezérlő ugyanazokat a bemeneti csapokat használja, így nincs szükség a sorok letapogatásának módosítására. Más szóval, minden illesztőprogram egy 8x32 -es mondat sorait vezérli. Annak ellenére, hogy 64 oszlopnak lehet ugyanaz a FIZIKAI soros elhelyezése, a soros buszokat ketté osztjuk, egy meghajtót használva az első 32 oszlop 8 sorához, és egy második meghajtót a második 32 oszlop 8 sorához stb. Ennek vázlata az alábbiakban található példaként. Lehetséges hibák: 1. Ne használjon több sorvezérlőt azonos számú oszloppal. Ez azt jelentené, hogy minden váltóregiszter -tüske egyszerre több LED -et vezetne. Minden sorvezérlőhöz 8 ellenállásból (3k3) kell állnia, egy sor több soros meghajtóhoz nem fog működni, mivel nem biztosítja a kapuk kapcsolásához szükséges áramot.
Például
Úgy döntöttem, hogy kibővítem a korábban felépített mátrixot. Hozzáadtam még 7 sort, összesen 15 -öt, mivel ennyi fér el ezen a protoboardon. Én is most tudtam meg egy versenyt, amelyet az Instructables csinál, "Let it Glow". Itt egy videó a véleményemről ezzel kapcsolatban. Ismétlem, a digitális fényképezőgép, amellyel videót készítettem, nem tesz igazságot. Ez nagyszerűen néz ki az emberi szem számára, különösen ott, ahol az összes LED villog, de közel sem néz ki olyan jól a videóban. Élvezze: A nagyobb kijelző forráskódja alább található.
6. lépés: Következtetés
Lehetséges kiegészítések
Az I2CI a kétvezetékes interfész (I2C) érintkezőit használaton kívül hagyta ebben a kialakításban. Számos érdekes kilátás van erre a két csapra. Az I2C EEPROM hozzáadása sokkal nagyobb üzenetek tárolását teszi lehetővé. Az is kilátásba helyezhető, hogy olyan programozást terveznek, amely a mega8 -ból I2C kompatibilis kijelző -illesztőprogramot készít. Ez megnyitná annak lehetőségét, hogy az USB -eszköz lehetővé tegye az adatok megjelenítését a LED -tömbön az I2C buszon keresztül. Bevitel Ez lehetővé tenné az üzenetek menürendszerben történő beprogramozását. Az egyik csak karaktereket ír a kijelzőre, a másik a karaktereket görgesse a kijelzőre. Fontos megjegyezni, hogy amit a fényekben lát, az adattömbben jelenik meg. Ha az adattömb megváltoztatásának hasító módszereivel találkozik, a fények ugyanúgy fognak változni. Néhány csábító lehetőség egy grafikus mérő létrehozása az oszlopokból. Ez használható sztereó jelfeldolgozó elemként. A görgetés felülről lefelé vagy alulról felfelé, akár balról jobbra is megvalósítható. Sok szerencsét, jó szórakozást!
7. lépés: Követés
Miután hónapokig hagytam a vezérlő áramkört a kenyértáblán ülni, végül megterveztem és maratottam néhány áramköri lapot, hogy összeállítsam ezt a prototípust. Minden remekül sikerült, nem hiszem, hogy bármit is másképp csináltam volna.
Az áramköri lap jellemzői
- A műszakregiszterek külön táblákon találhatók, amelyeket láncra lehet kötni a kijelző méretének növelése érdekében.
- A vezérlőpanel saját teljesítményszabályozóval rendelkezik, így ezt bármelyik 7–30 V-os áramforrás működtetheti (a 9 V-os akkumulátor vagy a 12 V-os tápegység mindkettő jól működik).
- 6 tűs ISP fejlécet tartalmaz, így a mikrokontroller átprogramozható anélkül, hogy eltávolítaná a tábláról.
- 4 tűs fejléc áll rendelkezésre az I2C busz későbbi használatához. Ezt fel lehet használni egy eeprom számára, hogy több üzenetet tároljon, vagy akár egy másik mikrovezérlő (RSS ticker bárki?) Által vezérelt szolga eszközzé tegye ezt.
- A tervezéshez 3 pillanatnyi nyomógomb tartozik. A jövőben módosíthatom a firmware -t, hogy belefoglaljam ezeknek a gomboknak a használatát is.
Összeszerelés
Adjon plexit, szögtartókat, 6x32 -es gépcsavarokat, anyákat és alátéteket, valamint egy csapkészletet a lyukak menetéhez, és bármit létrehozhatok.
Második díj a Let It Glow!
Ajánlott:
RGB LED MATRIX NEOPIXEL HASZNÁLATÁVAL: 8 lépés (képekkel)
RGB LED MATRIX NEOPIXEL HASZNÁLATÁVAL: Ebben az oktatóanyagban megmutatom, hogyan lehet 5*5 RGB LEDMATRIX -ot felépíteni NEOPIXEL használatával. Ezzel a mátrixszal lenyűgöző animációkat, hangulatjeleket és betűket jeleníthetünk meg nagyon vonzóan. Lássunk neki
A váltóregiszterek kaszkádja 74HC595 Arduino és Ethernet segítségével vezérelhető: 3 lépés
A váltóregiszterek kaszkádja 74HC595 Arduino és Ethernet segítségével vezérelve: Ma egy olyan projektet szeretnék bemutatni, amelyet két változatban valósítottam meg. A projekt 12 műszakregisztert 74HC595 és 96 LED -et, Arduino Uno kártyát és Wiznet W5100 Ethernet pajzsot használ. Minden műszakregiszterhez 8 LED kapcsolódik. A számok 0
Neopixel Ws2812 Rainbow LED izzás M5stick-C - Szivárvány futtatása a Neopixel Ws2812 készüléken az M5stack M5stick C használatával Arduino IDE használatával: 5 lépés
Neopixel Ws2812 Rainbow LED izzás M5stick-C | Szivárvány futása a Neopixel Ws2812-en az M5stack M5stick C használatával Arduino IDE használatával: Sziasztok, srácok, ebben az oktatási útmutatóban megtanuljuk, hogyan kell használni a neopixel ws2812 LED-eket, vagy led szalagot vagy led mátrixot vagy led gyűrűt m5stack m5stick-C fejlesztőtáblával Arduino IDE-vel, és elkészítjük szivárványos mintát vele
Vezeték nélküli távirányító 2,4 GHz -es NRF24L01 modul használatával Arduino - Nrf24l01 4 csatorna / 6 csatornás adó vevő négykópás - Rc Helikopter - Rc sík az Arduino használatával: 5 lépés (képekkel)
Vezeték nélküli távirányító 2,4 GHz -es NRF24L01 modul használatával Arduino | Nrf24l01 4 csatorna / 6 csatornás adó vevő négykópás | Rc Helikopter | Rc sík Arduino használatával: Rc autó működtetése | Quadcopter | Drone | RC sík | RC csónak, mindig szükségünk van vevőre és adóra, tegyük fel, hogy az RC QUADCOPTER esetében szükségünk van egy 6 csatornás adóra és vevőre, és az ilyen típusú TX és RX túl költséges, ezért készítünk egyet
48 X 8 Gördülő LED mátrix kijelző Arduino és Shift regiszterek használatával: 6 lépés (képekkel)
48 X 8 görgetéses LED -mátrix kijelző Arduino és Shift regiszterek használatával: Üdvözlök mindenkit! Ez az első utasításom, és arról szól, hogy 48 x 8 -as programozható görgető LED -mátrixot készítek Arduino Uno és 74HC595 shift regiszterek használatával. Ez volt az első projektem egy Arduino fejlesztői táblával. Kihívás volt számomra