Írja be a Mátrixot, a LED mátrixot! Készítse el saját világító LED kijelzőjét az Arduino

egyetlen LED hasznos lehet az Arduino projektek tesztelésében. De ha hozzáad egy LED mátrixot, akkor igazán kreatív lehet, betűket, számokat és szimbólumokat. Ez is egy praktikus módja annak, hogy megtanulják, hogyan bonyolultabb kijelzők-mint az egyik olvasod ezt a munka. Ebben az útmutatóban megmutatjuk, hogyan kell beállítani az alapvető 8 6. számú 6 LED-mátrixot.

hogyan működnek a LED-mátrixok

egy olyan alap LED-mátrix, mint amilyet használni fogunk, tartalmaz egy 8dB 8 LED-es rácsot, amely karakterek, alapképek és egyebek rajzolásához használható. A korábbi útmutatókban megmutattuk, hogy az Arduino hogyan vezérelhet egyetlen LED-et. Ez a komponens kiterjeszti ezt a koncepciót egy 64 LED-es tömbön, amelyek mindegyike egyetlen Arduino-val vezérelhető.

apró pontmátrix LED kijelző HP

LED mátrix

egy LED mátrixban áram folyik át a LED-ek sorain. Az áramkör befejezéséhez és az egyedi fény aktiválásához egy oszlop csatlakozik a földhöz. Ahol a tápellátás és a földvezeték keresztezi egymást, a LED-ek aktiválódnak. Gondolhatsz rá egy kicsit, mint a Battleship társasjáték. Ha például a tápellátást az A, B és C sorokra futtatja, de csak az 1.oszlop csatlakozik a földhöz, akkor az A1, B1 és C1 jelzőfények világítanak. A többi sötét marad.

ez egy praktikus módja annak, hogy egyszerre több LED-et kapcsoljon be, de problémát okoz, ha csak egy oszlopban lévő bizonyos LED-eket szeretne bekapcsolni. Mondjuk, ehelyett azt akarta, hogy az A1, B2 és C3 lámpák kigyulladjanak, átlós vonalat hozva létre. Mindhárom sor és oszlop aktiválása bekapcsolná az egész rácsot, ami nem az, amit akarunk.

a probléma megoldásához az Arduino egy hurokon keresztül futhat, egyszerre csak egy sor LED-et aktiválva. Így annyi oszlopot aktiválhat, amennyit csak akar, anélkül, hogy befolyásolná a következő sort. Hosszas késleltetés() funkció nélkül a sorok olyan gyors egymásutánban aktiválódnak, hogy az emberi szem nem tudja megmondani. De megmutatjuk, hogyan kell hozzáadni egy késleltetést, így láthatja, hogyan működik egyébként.

amire szükséged lesz

bonyolultabb módszert használunk a LED-Mátrix Oktatási célú vezérlésére – más alkatrészek csökkenthetik a szükséges csapok számát–, így ez jó néhány csapot és vezetéket igényel, mint a legtöbb más útmutatónk. Ezért egy Arduino Mega 2560-at fogunk használni a szokásos Arduino Uno helyett, hogy irányítsuk ezt a mátrixot. Szüksége lesz a következőkre is:

Arduino Mega 2560 Arduino Mega 2560
8×8 LED mátrix  8x8 LED mátrix
8 x 220ohm ellenállás

a legtöbb LED kiég, ha közvetlenül az Arduino 5V-os kimenetéhez csatlakoztatja őket. Helyezzen egy ellenállást a készletből a kimeneti csap és a LED közé.

8 x 220ohm ellenállás
egy pár breadboard  egy pár breadboard
Arduino IDE  Arduino IDE

szüksége lesz egy USB-kábelre és jó néhány vezetékre is – legalább 32!

számos módon lehet megszervezni a vezetékeket ehhez a projekthez, de mivel bonyolult lehet, javasoljuk, hogy használjon egy pár reteszelt kenyérlemezt, az egyiket a LED mátrix kezelésére, a másikat pedig az ellenállások vezetékezésére. Ugyanezt lehet elérni a LED-mátrixhoz futó női végű vezetékek használatával, bár álló helyett oldalra ül, ami kissé nehézkes lehet.

a kód

a projekt kódja hurkokat és tömböket használ az egyes LED-ek külön-külön történő írásához. Az eredmény egy tömb lesz a szkript tetején, amelyet könnyen módosíthat, hogy megváltoztassa a LED-mátrix által megjelenített képet. Először illessze be a teljes kódot az Arduino IDE-be, majd töltse fel az Arduino Mega-ba.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

megjelenítés = {
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,1,0},
{1,0,0,0,0,0,0,0},
{1,1,1,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0}
};
void setup() {
for (int i=2; i<=9; i++) {
pinMode (I, kimenet);
pinMode (i + 44, kimenet);
digitalWrite (I, alacsony);
digitalWrite (i+44, magas);
}
pinMode (A0, bemenet);
}
void loop() {
for (int i=0; i& lt; 8; i++) {
if (i==0) {
digitalWrite (9, alacsony);
}
else {
digitalWrite (i + 1, alacsony);
}
for (int j=0; j<8; j++) {
if (megjelenítés == 1) {
digitalWrite (j + 46, alacsony);
}
else {
digitalWrite (j + 46, magas);
}
}
digitalWrite (i+2, magas);
késleltetés(1);
}
}

ezután nézzük át, hogyan működnek ezek a szakaszok.

1
2
3
4
5
6
7
8
9
10

megjelenítés = {
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,1,0},
{1,0,0,0,0,0,0,0},
{1,1,1,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0}
};

a vázlat egyik fő hurokja előtt ez a többdimenziós tömb meghatározza, hogy mely LED-eket kell világítani, és melyeknek sötétnek kell maradniuk. Nyolc sor nyolc értékből áll, amelyek megfelelnek a mátrix nyolc LED-sorának. Azáltal, hogy a vázlat rácsába helyezi őket, megkönnyíti annak vizualizálását, hogy a LED-ek milyen formát alkotnak.

1
2
3
4
5
6
7
8
9

void setup() {
for (int i=2; i<=9; i++) {
pinMode(I, kimenet);
pinMode(i+44, kimenet);
digitalWrite(I, alacsony);
digitalWrite(I, alacsony);+44, magas);
}
pinMode (A0, bemenet);
}

a setup () részben inicializáljuk a mátrixhoz szükséges csapokat. Mivel tizenhat különböző csap van, ezt hatékonyabban tudjuk megtenni, mint egyenként. A csapok fut a földre lesz dugva csapok 2 keresztül 9. A mátrixnak energiát küldő csapok a 46-tól 53-ig terjedő csapokig futnak. Ez a szakasz hurok segítségével inicializálja mindkét csapkészletet.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

void loop() {
for (int i=0; i& lt; 8; i++) {
if (i==0) {
digitalWrite (9, alacsony);
}
else {
digitalWrite (i + 1, alacsony);
}
for (int j=0; j<8; j++) {
if (megjelenítés == 1) {
digitalWrite (j + 46, alacsony);
}
else {
digitalWrite (j + 46, magas);
}
}
digitalWrite (i+2, magas);
késleltetés(1);
}
}

a vázlat főhurok () szakaszában van egy többlépcsős hurok. Az első IF utasítás visszaállítja az utoljára használt Sort alacsonyra,ami megakadályozza az áram áramlását.

a következő beágyazott ciklus ellenőrzi az adatokat a tömbben. Ha egy cella 1-ként szerepel, akkor az oszlop földvezetékét alacsonyra állítja, lehetővé téve az áram kifolyását. Ellenkező esetben magasra állítja a csapot, ami megakadályozza az áramkör befejezését az oszlop mentén. Ez egy adott sor mind a nyolc cellájára vonatkozik.

végül az utolsó digitalWrite() utasítás bekapcsolja az egész sort. Minden alacsonyra beállított oszlop kigyullad. A többi sötét marad. Amikor a vázlat újra hurkol, azonnal elkezdi kikapcsolni ezt a sort.

az utolsó parancs egy delay() utasítás, amely beállítja az egyes sorok közötti késleltetést. Példánkban 1 milliszekundumra van állítva, mert amikor az állítás nincs ott, a LED-ek kissé túl homályosak lesznek. Növelheti azonban a késést, hogy lassabban lássa, mit csinál a vázlat. Látnia kell, hogy minden sor egyenként világít, mielőtt kikapcsol, amikor a következő sor bekapcsol.

a huzalozás

ehhez a projekthez a huzalozás viszonylag egyszerű, csak sok van belőle. Mivel sok csap van, leírjuk, hogy mit szeretne tenni az egyes teljes áramköröknél, ahelyett, hogy minden egyes vezetéket felsorolnánk, mint általában.

a 2-től 9-ig tartó Csapok legyenek a tápcsapok, a 46-tól 53-ig tartó csapok pedig a földcsapok. Vezessen egy vezetéket a tápcsapról a LED – mátrixra (ellenőrizze, hogy az alábbiakban mely csapok vannak-ez fontos), a LED-mátrixból egy 220 ohmos ellenállásba, majd vezesse vissza a vezetéket az Arduino csapjára. A 2. tűnek végül a 46. tűhöz kell vezetnie, a 3.tűnek a 47. tűhöz kell vezetnie stb.

a fő komplikáció itt maga a LED mátrix. Ellenintuitívan a mátrix mindkét oldalán lévő csapok egyáltalán nincsenek koherens sorrendben. Például, azt akarjuk, hogy a pin 2 táplálja azt,amit a sornak hívunk. Ennek az áramkörnek a másik vége – amelynek az 1.oszlophoz kell vezetnie – az első tű a mátrix alján, a jobb oldalon.

mivel ez a sorrend meglehetősen bonyolult, meg fogjuk határozni, hogy a mátrix melyik csapját kell közvetlenül bekötni az egyes Arduino csapokhoz.

a mátrix tetején (a rajta nyomtatott számmal ellátott oldalon) nyolc csap van. Balról jobbra ezeket az Arduino következő csapjaihoz kell kötni:

  • Pin 7
  • Pin 4
  • Pin 49
  • Pin 2
  • Pin 51
  • Pin 52
  • Pin 3
  • Pin 5

ezután a mátrix nyolc csapjának alsó sorát (a számok nélküli oldalt) a következő csapokhoz kell kötni (balról jobbra, a számok még mindig felfelé néznek):

  • 9. tű
  • 50. tű
  • 48. tű
  • 6693
  • 53. tű
  • 8. tű
  • 47. tű
  • 46

Miután az összes vezeték csatlakoztatva van, bekapcsolhatja a projektet, és látni fogja, hogy a LED mátrix kigyullad. Próbálja meg megváltoztatni az 1s elrendezését a kezdeti tömbben, majd töltse fel újra a szkriptet, hogy különböző alakzatokat hozzon létre. Beállíthatja a delay() parancs hosszát is, hogy az egyes sorok egyenként világítsanak.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.