Stvorili smo seriju tutorijala za Raspberry Pi, u kojima smo pokrili Interface of Raspberry Pi sa svim osnovnim komponentama poput LED-a, LCD-a, gumba, istosmjernog motora, servo-motora, koračnog motora, ADC-a, registra smjene itd. Također imamo je objavio nekoliko jednostavnih Raspberry Pi projekata za početnike, zajedno s nekoliko dobrih IoT projekata. Danas ćemo, u nastavku ovih vodiča, upravljati 8x8 LED matričnim modulom tvrtke Raspberry Pi. Napisat ćemo python program za prikazivanje znakova na matričnom modulu.
Također provjerite Povezivanje 8x8 LED matrice s Arduinom i LED matrice s AVR mikrokontrolerom.
Potrebne komponente:
Ovdje koristimo Raspberry Pi 2 Model B s Raspbian Jessie OS. Svi osnovni hardverski i softverski zahtjevi su prethodno raspravljeni, možete ih potražiti u Uvodu Raspberry Pi i Trepćući LED Raspberry PI za početak, osim onoga što nam treba:
- Ploča Raspberry Pi
- Napajanje (5v)
- Kondenzator od 1000uF (povezan preko napajanja)
- Otpor 1KΩ (8 komada)
8x8 LED matrični modul:
8 * 8 LED matrični modul sadrži 64 LED (diode koje emitiraju svjetlost) koji su raspoređeni u obliku matrice, pa je stoga naziv LED matrica. Ovi kompaktni moduli dostupni su u različitim veličinama i mnogim bojama. Možete ih odabrati prema praktičnosti. Konfiguracija PIN-a modula prikazana je na slici. Imajte na umu da pinouti modula nisu u redu pa PIN-ovi trebaju biti numerirani točno onako kako je prikazano na slici kako bi se izbjegle pogreške.

U modulu LED Matrix postoji 8 + 8 = 16 zajedničkih terminala. Preko njih imamo 8 zajedničkih pozitivnih terminala i 8 zajedničkih negativnih terminala, u obliku 8 redaka i 8 stupaca, za povezivanje 64 LED u matričnom obliku. Ako bi modul bio nacrtan u obliku sheme spojeva, imat ćemo sliku kao što je prikazano dolje:

Dakle, za 8 redaka imamo 8 uobičajenih pozitivnih terminala (9, 14, 8, 12, 17, 2, 5). Uzmimo u obzir prvi red, LED diode od D1 do D8 imaju zajednički pozitivni priključak, a pin se izvodi na PIN9 LED matričnog modula. Kada želimo da jedna ili sve LED diode u REDU budu uključene, odgovarajući pin LED MODULA trebao bi se napajati s + 3,3 v.
Slično uobičajenim pozitivnim terminalima, imamo 8 zajedničkih negativnih terminala kao stupce (13, 3, 4, 10, 6, 11, 15, 16). Za uzemljenje bilo koje LED diode u bilo kojem stupcu odgovarajući zajednički negativni priključak mora biti uzemljen.
Objašnjenje sklopa:
Veze između Raspberry Pi i LED matričnog modula prikazane su u donjoj tablici.
|
LED matrični modul Pin br. |
Funkcija |
Raspberry Pi GPIO Pin No. |
|
13 |
POZITIVNO0 |
GPIO12 |
|
3 |
POZITIVNA1 |
GPIO22 |
|
4 |
POZITIVNA2 |
GPIO27 |
|
10 |
POZITIVNO3 |
GPIO25 |
|
6 |
POZITIVNA4 |
GPIO17 |
|
11 |
POZITIVNO5 |
GPIO24 |
|
15 |
POZITIVNO6 |
GPIO23 |
|
16 |
POZITIVNO7 |
GPIO18 |
|
9 |
NEGATIVNO0 |
GPIO21 |
|
14 |
NEGATIVNO1 |
GPIO20 |
|
8 |
NEGATIVNO2 |
GPIO26 |
|
12 |
NEGATIVNO3 |
GPIO16 |
|
1 |
NEGATIVNO4 |
GPIO19 |
|
7 |
NEGATIVNO5 |
GPIO13 |
|
2 |
NEGATIVNO6 |
GPIO6 |
|
5 |
NEGATIVNO7 |
GPIO5 |
Evo konačnog dijagrama sklopa za povezivanje 8x8 LED matrice s Raspberry Pi:

Radno objašnjenje:
Ovdje ćemo koristiti Multiplexing tehniku za prikaz likova na 8x8 LED matričnom modulu. Pa razgovarajmo o ovom multipleksiranju u detalje. Recimo ako želimo uključiti LED D10 u matrici, trebamo napajati PIN14 modula i uzemljiti PIN3 modula. S ovom LED diodom D10 će se uključiti kako je prikazano na donjoj slici. To bi također trebalo prvo provjeriti za MATRIX da biste znali da je sve u redu.

Recimo sada, ako želimo uključiti D1, moramo napajati PIN9 matrice i uzemljiti PIN13. Uz to će LED D1 svijetliti. Trenutni smjer u ovom slučaju prikazan je na donjoj slici.

A sada, što se tiče nezgodnog dijela, uzmimo u obzir da istovremeno želimo uključiti i D1 i D10. Dakle, trebali bismo napajati i PIN9, PIN14 i uzemljiti oba PIN13, PIN3. Ovo će uključiti LED D1 i D10, ali uz to će uključiti i LED D2 i D9. To je zato što dijele zajedničke terminale. Dakle, ako želimo uključiti LED diode duž dijagonale, bit ćemo prisiljeni uključiti sve LED diode usput. To je prikazano na donjoj slici:

Da bismo izbjegli ovaj problem, koristimo tehniku zvanu Multiplexing. Također smo raspravljali o ovoj Multiplexing tehnici dok smo povezivali 8x8 LED matricu s AVR-om, ovdje opet objašnjavamo. Ista se tehnika multipleksiranja koristi i u pomicanju teksta na 8x8 LED matrici s Arduinom i s AVR mikrokontrolerom.
Ljudsko oko ne može zabilježiti frekvenciju veću od 30 HZ. To jest ako se LED neprekidno UKLJUČUJE I ISKLJUČUJE brzinom od 30 HZ ili više. Oko vidi LED kao neprekidno UKLJUČENU. Međutim, to nije slučaj i LED će se zapravo neprestano paliti i gasiti. Ova se tehnika naziva Multiplexing.
Recimo, na primjer, želimo uključiti samo LED D1 i LED D10 bez uključivanja D2 i D9. Trik je u tome da ćemo prvo napajati samo LED D1 pomoću PIN-a 9 i 13 i pričekati 1mSEC, a zatim ćemo ga ISKLJUČITI. Tada ćemo napajati LED D10 pomoću PIN-a 14 i 3 i pričekati 1mSEC, a zatim ćemo ga isključiti. Ciklus kontinuirano ide s visokom frekvencijom i D1 i D10 će se brzo paliti i gasiti, a čini se da će obje LED diode neprestano biti upaljene za naše oko. Znači da istovremeno napajamo samo jedan red (LED), eliminirajući šanse za uključivanje drugih LED dioda u drugim redovima. Ovom tehnikom ćemo prikazati sve likove.
To možemo dalje razumjeti na jednom primjeru, na primjer ako želimo prikazati "A" na matrici, kao što je prikazano dolje:

Kao što smo rekli, za čas ćemo UKLJUČITI jedan red, Na t = 0m SEC, PIN09 je postavljen HIGH (trenutno su ostale ROW pinove NISKE), PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 su uzemljeni (ostale COLUMN pinove su VISOKO u ovom trenutku)
Na t = 1m SEC, PIN14 je postavljen HIGH (trenutno su ostale ROW pinove NISKE), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 su uzemljeni (ostale COLUMN pribadače su HIGH u ovom trenutku)
Na t = 2m SEC, PIN08 je postavljen HIGH (trenutno su ostale ROW pinove NISKE), PIN13, PIN3, PIN15, PIN16 su uzemljeni (ostale COLUMN pinove su VISOKE u ovom trenutku)
Na t = 3m SEC, PIN12 je postavljen HIGH (trenutno su ostale ROW pinove NISKE), PIN13, PIN3, PIN15, PIN16 su uzemljeni (ostale COLUMN pinove su VISOKE u ovom trenutku)
Na t = 4m SEC, PIN01 je postavljen HIGH (ostale ROW pribadače su NISKO u ovom trenutku), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 su uzemljeni (ostale COLUMN pribadače su HIGH u ovom trenutku)
Na t = 5m SEC, PIN07 je postavljen HIGH (trenutno su ostale ROW pinove NISKE), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 su uzemljeni (ostale COLUMN pribadače su HIGH u ovom trenutku)
Na t = 6m SEC, PIN02 je postavljen HIGH (trenutno su ostale ROW pinove NISKE), PIN13, PIN3, PIN15, PIN16 su uzemljeni (ostale COLUMN pinove su VISOKE u ovom trenutku)
Na t = 7m SEC, PIN05 je postavljen HIGH (trenutno su ostale ROW pinove NISKE), PIN13, PIN3, PIN15, PIN16 su uzemljeni (ostale COLUMN pinove su VISOKE u ovom trenutku)
Tom brzinom prikazat će se zaslon koji neprekidno prikazuje znak "A" kao što je prikazano na slici.
Python program za prikazivanje znakova na LED matrica pomoću malina Pi je dano u nastavku. Program je dobro objašnjen komentarima. Vrijednosti priključka za svaki znak dane su u programu. Možete prikazati bilo koji znak koji želite samo promjenom vrijednosti 'pinp' u 'for petlje' u danom programu. Također pogledajte demo video u nastavku.
