Vytvorili sme sériu návodov na Raspberry Pi, v ktorej sme pokryli prepojenie Raspberry Pi so všetkými základnými komponentmi, ako sú LED, LCD, tlačidlá, jednosmerný motor, servomotor, krokový motor, ADC, posuvný register atď. Máme tiež zverejnil niekoľko jednoduchých projektov Raspberry Pi pre začiatočníkov spolu s niekoľkými dobrými projektmi IoT. Dnes, v pokračovaní týchto tutoriálov, sa chystáme na Control 8x8 LED Matrix Module od Raspberry Pi. Napíšeme program v jazyku python, ktorý zobrazí znaky na maticovom module.
Skontrolujte tiež rozhranie 8x8 LED Matrix s Arduino a LED Matrix s AVR Microcontorller.
Požadované komponenty:
Tu používame Raspberry Pi 2 Model B s Raspbian Jessie OS. Všetky základné hardvérové a softvérové požiadavky sú už predtým diskutované. Môžete si ich vyhľadať v úvode Raspberry Pi a blikaní Raspberry PI LED, okrem toho, čo potrebujeme:
- Doska Raspberry Pi
- Napájanie (5v)
- 1000uF kondenzátor (pripojený cez napájací zdroj)
- 1KΩ rezistor (8 kusov)
Maticový modul LED 8x8:
8 * 8 LED maticový modul obsahuje 64 LED (svetlo emitujúcich diód), ktoré sú usporiadané vo forme matice, preto sa volá LED matica. Tieto kompaktné moduly sú k dispozícii v rôznych veľkostiach a mnohých farbách. Jeden si ich môže zvoliť pre väčšie pohodlie. Konfigurácia PIN modulu je zobrazená na obrázku. Pamätajte, že pinouty modulu nie sú v poriadku, takže kódy PIN by mali byť očíslované presne tak, ako je to znázornené na obrázku, aby sa zabránilo chybám.
V module LED Matrix je 8 + 8 = 16 spoločných svoriek. Nad nimi máme 8 spoločných kladných svoriek a 8 spoločných záporných svoriek vo forme 8 riadkov a 8 stĺpcov na pripojenie 64 LED v maticovej podobe. Ak by bol modul nakreslený vo forme schémy zapojenia, budeme mať obrázok, ako je uvedené nižšie:
Takže pre 8 riadkov máme 8 bežných pozitívnych terminálov (9, 14, 8, 12, 17, 2, 5). Uvažujme o prvom rade, LED diódy od D1 do D8 majú spoločnú kladnú svorku a pin je vyvedený na PIN9 modulu LED Matrix. Ak chceme, aby jedna alebo všetky LED v riadku svietili, zodpovedajúci pin LED MODULU by mal byť napájaný +3,3 V.
Podobne ako pri bežných pozitívnych termináloch máme 8 bežných negatívnych terminálov ako stĺpce (13, 3, 4, 10, 6, 11, 15, 16). Na uzemnenie ľubovoľnej LED v ktoromkoľvek stĺpci musí byť príslušná spoločná záporná svorka uzemnená.
Vysvetlenie obvodu:
Pripojenia medzi Raspberry Pi a LED maticovým modulom sú uvedené v nasledujúcej tabuľke.
LED Matrix Module Pin č. |
Funkcia |
Pin Raspberry Pi GPIO č. |
13 |
POZITÍVNE0 |
GPIO12 |
3 |
POZITÍVNE1 |
GPIO22 |
4 |
POZITÍVNE2 |
GPIO27 |
10 |
POZITÍVNE3 |
GPIO25 |
6 |
POZITÍVNE4 |
GPIO17 |
11 |
POZITÍVNE5 |
GPIO24 |
15 |
POZITÍVNE6 |
GPIO23 |
16 |
POZITÍVNE7 |
GPIO18 |
9 |
NEGATÍVNE0 |
GPIO21 |
14 |
NEGATÍVNE1 |
GPIO20 |
8 |
NEGATÍVNE2 |
GPIO26 |
12 |
NEGATÍVNE3 |
GPIO16 |
1 |
NEGATÍVNE4 |
GPIO19 |
7 |
NEGATÍVNE5 |
GPIO13 |
2 |
NEGATÍVNE6 |
GPIO6 |
5 |
NEGATÍVNE7 |
GPIO5 |
Tu je konečná schéma zapojenia pre prepojenie LED Matrix 8x8 s Raspberry Pi:
Pracovné vysvetlenie:
Tu použijeme techniku multiplexovania na zobrazenie znakov na maticovom module LED 8x8. Poďme si teda o tomto multiplexovaní podrobne pohovoriť. Povedzme, že ak chceme v matici rozsvietiť LED D10, musíme napájať PIN14 modulu a uzemniť PIN3 modulu. Pomocou tejto LED sa D10 rozsvieti, ako je to znázornené na nasledujúcom obrázku. Toto by tiež malo byť najskôr skontrolované, aby MATRIX vedel, že je všetko v poriadku.
Teraz, povedzme, že ak chceme zapnúť D1, musíme napájať PIN9 matice a uzemniť PIN13. Vďaka tomu bude LED D1 svietiť. Aktuálny smer je v tomto prípade uvedený na nasledujúcom obrázku.
Teraz pri zložitej časti zvážte, že chceme zapnúť súčasne D1 aj D10. Mali by sme teda napájať oba kódy PIN9, PIN14 a uzemňovať oba kódy PIN13, PIN3. Týmto sa rozsvietia LED D1 a D10, ale spolu s nimi aj LED D2 a D9. Je to preto, lebo zdieľajú spoločné terminály. Ak teda chceme rozsvietiť LED diódy pozdĺž uhlopriečky, budeme nútení rozsvietiť všetky LED diódy pozdĺž cesty. Toto je zobrazené na nasledujúcom obrázku:
Aby sme sa vyhli týmto problémom, používame techniku zvanú Multiplexovanie. Tiež sme diskutovali o tejto metóde multiplexovania pri prepojení 8x8 LED Matrix s AVR, tu to opäť vysvetľujeme. Rovnaká technika multiplexovania sa používa aj pri posúvaní textu na matici LED 8x8 s procesorom Arduino a mikrokontrolérom AVR.
Ľudské oko nedokáže zachytiť frekvenciu viac ako 30 HZ. To znamená, že LED svieti a zhasína nepretržite rýchlosťou 30 Hz alebo viac. Oko vidí LED ako nepretržite svieti. To však nie je tento prípad a LED sa budú neustále zapínať a vypínať. Táto technika sa nazýva multiplexovanie.
Povedzme napríklad, že chceme zapnúť iba LED D1 a LED D10 bez zapnutia D2 a D9. Trik je v tom, že najskôr poskytneme energiu iba LED D1 pomocou PIN 9 a 13 a počkáme na 1mSEC, a potom ju VYPNEME. Potom zaistíme napájanie LED D10 pomocou PIN 14 a 3 a počkáme na 1mSEC, potom ju VYPNEME. Cyklus ide kontinuálne s vysokou frekvenciou a D1 a D10 sa rýchlo zapínajú a vypínajú a obe LED diódy sa zdajú byť pre naše oko neustále zapnuté. Znamená to, že napájame iba jeden riadok (LED) súčasne, čím vylučujeme pravdepodobnosť rozsvietenia ďalších LED v iných riadkoch. Touto technikou ukážeme všetky postavy.
Môžeme to ďalej pochopiť podľa jedného príkladu, napríklad ak chceme na matici zobraziť „A“, ako je to zobrazené nižšie:
Ako už bolo povedané, zapneme jeden riadok v okamihu, Pri t = 0 m SEC je PIN09 nastavený na VYSOKÝ (ostatné ROW kolíky sú v tomto okamihu NÍZKE) v tomto okamihu sú PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 uzemnené (ostatné COLUMN piny sú v tomto okamihu VYSOKÉ)
Pri t = 1 m SEC je PIN14 nastavený na VYSOKÝ (ostatné ROW kolíky sú v tomto okamihu NÍZKE) v tomto okamihu sú PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 uzemnené (ostatné kolíky COLUMN sú v tejto chvíli VYSOKÉ)
Pri t = 2 m SEC je PIN08 nastavený na VYSOKÝ (ostatné ROW kolíky sú v tomto okamihu NÍZKE) v tomto okamihu sú PIN13, PIN3, PIN15, PIN16 uzemnené (ostatné COLUMN piny sú v tomto okamihu VYSOKÉ)
Pri t = 3 m SEC je PIN12 nastavený na VYSOKÝ (ostatné ROW kolíky sú v tomto okamihu NÍZKE) v tomto okamihu sú PIN13, PIN3, PIN15, PIN16 uzemnené (ostatné COLUMN piny sú v tomto okamihu VYSOKÉ)
Pri t = 4 m SEC je PIN01 nastavený na VYSOKÝ (ostatné ROW kolíky sú v tomto čase NÍZKE) v tomto okamihu sú PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 uzemnené (ostatné kolíky COLUMN sú v tejto chvíli VYSOKÉ)
Pri t = 5 m SEC je PIN07 nastavený na VYSOKÝ (ostatné ROW kolíky sú v tomto okamihu NÍZKE) v tomto okamihu sú PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 uzemnené (ostatné COLUMN piny sú v tejto chvíli VYSOKÉ)
Pri t = 6 m SEC je PIN02 nastavený na VYSOKÝ (ostatné ROW kolíky sú v tomto okamihu NÍZKE) v tomto okamihu sú PIN13, PIN3, PIN15, PIN16 uzemnené (ostatné COLUMN piny sú v tejto chvíli HIGH)
Pri t = 7 m SEC je PIN05 nastavený na VYSOKÝ (ostatné ROW kolíky sú v tomto okamihu NÍZKE) v tomto okamihu sú PIN13, PIN3, PIN15, PIN16 uzemnené (ostatné COLUMN piny sú v tomto okamihu VYSOKÉ)
Pri tejto rýchlosti sa na displeji bude neustále zobrazovať znak „A“, ako je to znázornené na obrázku.
Ďalej je uvedený program Python na zobrazovanie znakov na LED Matrix pomocou Raspberry Pi. Program je dobre vysvetlený komentármi. Hodnoty portov pre každý znak sú uvedené v programe. Môžete zobraziť ľubovoľné znaky, ktoré chcete, iba zmenou hodnôt „pripnúť“ v reťazci „pre slučky“ v danom programe. Skontrolujte tiež ukážkové video uvedené nižšie.