Mēs esam izveidojuši Raspberry Pi apmācību sēriju, kurā mēs esam iekļāvuši Raspberry Pi saskarni ar visiem pamatkomponentiem, piemēram, LED, LCD, pogu, līdzstrāvas motoru, servomotoru, soļu motoru, ADC, maiņu reģistru utt. Mums ir arī publicēja dažus vienkāršus Raspberry Pi projektus iesācējiem, kā arī dažus labus IoT projektus. Šodien, turpinot šīs apmācības, mēs gatavojamies Raspberry Pi kontrolēt 8x8 LED matricas moduli. Mēs uzrakstīsim pitona programmu, lai parādītu rakstzīmes matricas modulī.
Pārbaudiet arī Interfacing 8x8 LED Matrix ar Arduino un LED Matrix ar AVR Microcontorller.
Nepieciešamās sastāvdaļas:
Šeit mēs izmantojam Raspberry Pi 2 B modeli ar Raspbian Jessie OS. Visas aparatūras un programmatūras pamatprasības ir iepriekš apspriestas, lai sāktu darbu, varat to apskatīt Raspberry Pi ievadā un mirgo Raspberry PI LED, izņemot mums nepieciešamo:
- Aveņu Pi dēlis
- Barošanas avots (5v)
- 1000uF kondensators (savienots ar strāvas padevi)
- 1KΩ rezistors (8 gab.)
8x8 LED matricas modulis:
8 * 8 LED matricas modulis satur 64 LED (gaismas diodes), kas ir sakārtoti matricas formā, tāpēc nosaukums ir LED matrica. Šie kompaktie moduļi ir pieejami dažādos izmēros un daudzās krāsās. Tos var izvēlēties pēc ērtības. Moduļa PIN konfigurācija ir tāda, kā parādīts attēlā. Paturiet prātā, ka moduļa pinouts nav kārtībā, tāpēc, lai izvairītos no kļūdām, PIN numurējami tieši tā, kā parādīts attēlā.
LED Matrix modulī ir 8 + 8 = 16 parastie termināli. Virs tiem mums ir 8 kopīgi pozitīvi spailes un 8 kopīgi negatīvi spailes 8 rindu un 8 kolonnu veidā, lai savienotu 64 LED matricas formā. Ja modulis tiks uzzīmēts shēmas formā, mums būs attēls, kā parādīts zemāk:
Tātad 8 rindās mums ir 8 kopējie pozitīvie termināli (9, 14, 8, 12, 17, 2, 5). Apsveriet pirmo rindu: gaismas diodēm no D1 līdz D8 ir kopīgs pozitīvs spaile, un tapa tiek izvadīta pie LED Matrix moduļa PIN9. Kad mēs vēlamies, lai viena vai visas rindā esošās gaismas diodes būtu ieslēgtas, atbilstošajai LED MODUĻA tapai jābūt darbinātai ar + 3,3 V.
Līdzīgi kā kopējie pozitīvie termināļi, mums kā kolonnas ir 8 kopējie negatīvie termināļi (13, 3, 4, 10, 6, 11, 15, 16). Lai iezemētu jebkuru gaismas diodi jebkurā kolonnā, ir jāzemē attiecīgais kopējais negatīvais spailes.
Ķēdes skaidrojums:
Savienojumi, kas tiek veikti starp Raspberry Pi un LED matricas moduli, parādīti zemāk esošajā tabulā.
LED matricas moduļa tapas Nr. |
Funkcija |
Aveņu Pi GPIO tapas Nr. |
13 |
POZITĪVA0 |
GPIO12 |
3 |
POZITĪVA1 |
GPIO22 |
4 |
POZITĪVA2 |
GPIO27 |
10 |
POZITĪVA3 |
GPIO25 |
6 |
POZITĪVS4 |
GPIO17 |
11 |
POZITĪVS5 |
GPIO24 |
15 |
POZITĪVS6 |
GPIO23 |
16 |
POZITĪVS7 |
GPIO18 |
9 |
NEGATĪVA0 |
GPIO21 |
14 |
NEGATĪVA1 |
GPIO20 |
8 |
NEGATĪVA2 |
GPIO26 |
12 |
NEGATĪVA3 |
GPIO16 |
1 |
NEGATĪVS4 |
GPIO19 |
7 |
NEGATĪVS5 |
GPIO13 |
2 |
NEGATĪVS6 |
GPIO6 |
5 |
NEGATĪVS7 |
GPIO5 |
Šeit ir pēdējā 8x8 LED matricas un Raspberry Pi saskarnes shēmas shēma:
Darba skaidrojums:
Šeit mēs izmantosim multipleksēšanas tehniku, lai parādītu rakstzīmes 8x8 LED matricas modulī. Tāpēc sīki apspriedīsim šo multipleksēšanu. Sakiet, ja mēs vēlamies matricā ieslēgt LED D10, mums jāiedarbina moduļa PIN14 un jāmaina moduļa PIN3. Ar šo LED D10 ieslēgsies, kā parādīts attēlā. Tas arī vispirms jāpārbauda, lai MATRIX zinātu, ka viss ir kārtībā.
Tagad, sakiet, ja vēlamies ieslēgt D1, mums jāaktivizē matricas PIN9 un jāmaina PIN13. Ar šo gaismas diode D1 mirgos. Pašreizējais virziens šajā gadījumā parādīts zemāk redzamajā attēlā.
Apsveriet, ka tagad mēs vēlamies ieslēgt gan D1, gan D10 vienlaikus. Tāpēc mums vajadzētu darbināt gan PIN9, gan PIN14, gan iezemēt gan PIN13, gan PIN3. Tas ieslēgs LED D1 un D10, bet kopā ar to ieslēgs arī LED D2 un D9. Tas ir tāpēc, ka viņiem ir kopīgi termināļi. Tātad, ja mēs vēlamies ieslēgt gaismas diodes pa diagonāli, mēs būsim spiesti ieslēgt visus gaismas diodes pa ceļam. Tas parādīts zemāk redzamajā attēlā:
Lai izvairītos no šīs problēmas, mēs izmantojam tehniku, ko sauc par multipleksēšanu. Mēs arī esam apsprieduši šo multipleksēšanas tehniku, vienlaikus sasaistot 8x8 LED matricu ar AVR, šeit mēs atkal izskaidrojam. Šo pašu multipleksēšanas paņēmienu izmanto arī teksta ritināšanā uz 8x8 LED matricas ar Arduino un ar AVR mikrokontrolleru.
Cilvēka acs nevar uztvert frekvenci, kas lielāka par 30 HZ. Tas ir, ja gaismas diode nepārtraukti ieslēdzas un izslēdzas ar ātrumu 30 Hz vai vairāk. Acs redz gaismas diode kā nepārtraukti ieslēgta. Tomēr tas tā nav, un LED faktiski pastāvīgi ieslēdzas un izslēdzas. Šo tehniku sauc par multipleksēšanu.
Teiksim, piemēram, mēs vēlamies ieslēgt tikai LED D1 un LED D10, neieslēdzot D2 un D9. Triks ir tas, ka vispirms mēs nodrošināsim enerģiju tikai LED D1, izmantojot PIN 9 un 13, un gaidīsim 1mSEC, un pēc tam mēs to izslēgsim. Tad mēs nodrošināsim LED D10 strāvu, izmantojot PIN 14 un 3, un gaidīsim 1mSEC, pēc tam to izslēgsim. Cikls notiek nepārtraukti ar augstu frekvenci, un D1 un D10 ātri ieslēgsies un izslēgsies, un abas gaismas diodes, šķiet, pastāvīgi ieslēdzas mūsu acīs. Tas nozīmē, ka mēs vienlaikus piegādājam tikai vienu rindu (LED), novēršot iespēju ieslēgt citas gaismas diodes citās rindās. Mēs izmantosim šo tehniku, lai parādītu visas rakstzīmes.
Mēs to varam tālāk saprast ar vienu piemēru, piemēram, ja mēs vēlamies matricā parādīt “A”, kā parādīts zemāk:
Kā teicām, vienā mirklī ieslēgsim vienu rindu, Kad t = 0m SEC, PIN09 iestatījums ir HIGH (citi ROW tapas šajā laikā ir LOW), PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 ir iezemēti (citi COLUMN tapas šobrīd ir AUGSTAS)
Kad t = 1m SEC, PIN14 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS))
Kad t = 2m SEC, PIN08 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS)
Kad t = 3m SEC, PIN12 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS)
Kad t = 4m SEC, PIN01 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS))
Kad t = 5m SEC, PIN07 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šajā laikā ir AUGSTAS))
Kad t = 6m SEC, PIN02 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS)
Kad t = 7m SEC, PIN05 iestatījums ir HIGH (citas ROW tapas šajā laikā ir LOW), PIN13, PIN3, PIN15, PIN16 ir iezemētas (citas COLUMN tapas šobrīd ir AUGSTAS)
Šādā ātrumā displejs tiks uzskatīts par nepārtrauktu “A” rakstzīmi, kā parādīts attēlā.
Programma Python rakstzīmju parādīšanai uz LED matricas, izmantojot Raspberry Pi, ir sniegta zemāk. Programma ir labi izskaidrota ar komentāriem. Katra rakstzīmes porta vērtības ir norādītas programmā. Jūs varat parādīt visas vēlamās rakstzīmes, vienkārši mainot “pinp” vērtības “for loops” dotajā programmā. Pārbaudiet arī zemāk esošo demonstrācijas video.