I den här handledningen ska vi utforma en 8x8 LED-matrisrullningsskärm med Arduino Uno, som visar rullningsalfabet.
8x8 LED-matris innehåller 64 lysdioder (ljusdioder) som är ordnade i form av en matris, varför namnet är LED-matris. Vi kommer att göra den här matrisen genom att löda dessa 64 lysdioder på perfboard eller DOT PCB. Lysdioderna kan ha vilken färg som helst, välj de som är tillgängliga med dig. Då kommer vi att skriva ett program för Arduino för att styra dessa 64 LED-matriser. UNO, enligt programmet, driver lämpliga lysdioder för att visa tecken på rullning.
Komponenter som krävs:
- Arduino Uno
- 64 lysdioder
- Perfboard med andra lödverktyg
- 1KΩ motstånd (8 delar)
- Strömförsörjning (5v)
Krets- och arbetsförklaring:
Det finns 64 lysdioder ordnade i matrisform. Så vi har 8 kolumner och 8 rader. Över dessa rader och kolumner samlas alla positiva terminaler i en rad. För varje rad finns en gemensam positiv terminal för alla 8 lysdioder i den raden. Det visas i nedanstående figur,
Så för 8 rader har vi 8 gemensamma positiva terminaler. Tänk på den första raden, som framgår av figuren, 8 lysdioder från D57 till D64 har en gemensam positiv terminal och betecknas med 'POSITIVE0'. Om vi nu vill glöda en eller alla lysdioder i den första raden av matrisen, ska vi driva PIN0 i LED-matrisen. På samma sätt om vi vill lysa någon LED (eller alla) i någon RAD måste vi driva motsvarande Common Positive Terminal Pin för respektive rad.
Detta är inte över ännu och bara att lämna MATRIX ROWS med positivt utbud kommer inte att ge någonting. Vi måste jorda LED-lamporna negativa för att lysa upp dem. Så i 8x8 LED-matris samlas alla negativa terminaler på lysdioderna i vilken kolumn som helst för att bilda åtta gemensamma negativa terminaler, liksom alla negativa terminaler i första kolumnen är anslutna till PIN-A1 (NEGATIVE7). Detta visas i figuren nedan:
Man bör vara uppmärksam på dessa stift när man lödder lysdioderna på Perfboard.
Om vi nu behöver jorda någon LED i den första kolumnen kommer vi att jorda PIN-A1 (NEGATIVE7) i MATRIX, och den kommer att jorda alla lysdioderna i första kolumnen. Samma process gäller för alla de andra sju vanliga negativa kolumnerna.
Sedan nu vet du hur Common Positive och Common Negative fungerar. Låt oss sätta ihop dem för att se hur de fungerar tillsammans och den slutliga Circuit for Scrolling 8x8 LED Matrix-skärmen kommer att se ut så här:
Kör 8x8 LED-matris med multiplexering:
Låt oss säga att vi vill sätta på LED57, då måste vi driva PIN0 för UNO och jorda PIN-8 för UNO. Nu för att slå på både LED57 och LED50 måste vi slå på PIN0, PIN1 och jorda PIN8, PIN9. Men att göra det kommer inte bara att slå på D57, D50 utan också D49, D58. För att undvika att vi använder en teknik som kallas Multiplexing. Vi har redan diskuterat denna multiplexteknik i 8x8 LED-matris i detalj; gå igenom den artikeln för detaljerad förklaring. Här förklarar vi Multiplexing kort.
Det mänskliga ögat kan inte fånga en frekvens på mer än 30 Hz. Det är om en LED tänds och släcks kontinuerligt med en hastighet på 30 Hz eller mer. Ögat ser LED-lampan som kontinuerligt PÅ. Detta är dock inte fallet och LED kommer faktiskt att tändas och släcks ständigt. Denna teknik kallas Multiplexing.
Låt oss säga att vi till exempel bara vill slå på LED57 och LED50 utan att slå på D49 och D58. Tricket är att vi först ger ström till första raden för att sätta PÅ LED57 och vänta på 1mSEC, och sedan stänger vi av den. Sedan kommer vi att ge ström till andra raden för att slå på LED50 och vänta på 1mSEC och sedan stänga av den. Cykeln går kontinuerligt med hög frekvens och LED57 & LED50 tänds och släcks snabbt och båda lysdioderna ser ut att vara kontinuerligt PÅ för vårt öga. Det betyder att vi bara tillhandahåller ström till en rad i taget, vilket eliminerar chansen att tända andra lysdioder i andra rader. Vi kommer att använda denna teknik för att visa alla karaktärer.
Det finns också ett bibliotek som heter LedControlMS.h för att ta hand om hela denna komplexitet av multiplexing, där du bara behöver ange tecknet eller numret som du vill skriva ut på LED-matris, kolla denna Arduino LED-matris med MAX7219-projektet för mer information.
Programmeringsförklaring:
I vår kod har vi skrivit decimalvärde för varje tecken och programmerat dessa värden i Arduino. Programmet har skrivits för att flytta dessa värden till nästa rad för varje 0,2 sek, detta kommer att ses som att rulla tecken uppåt, det är väldigt enkelt.
För att ändra de tecken som ska visas, ersätt bara värdet i char ALPHA- arrayen enligt teckenvärdena som anges nedan, 24,60,102,126,102,102,102,0,0,0, // A 124,102,102,124,102,102,122,0,0,0, // B 60,102,96,96,96,102,60,0, 0,0, // C 120,108,102,102,102,108,120,0, 0,0, // D 126,96,96,120,96,96,126,0, 0,0, // E 126,96,96,120,96,96,96,0, 0,0, // F 60,102,96,110,102,102,60, 0, 0,0, // G 102,102,102,126,102,102,102,0, 0,0, // H 60,24,24,24,24,24,60,0, 0,0, // I 30,12,12,12, 12108,56,0, 0,0, // J 102,108,120,112,120,108,102,0, 0,0, // K 96,96,96,96,96,96,126,0, 0,0, // L 99,119,127,107,99, 99,99,0, 0,0, // M 102,118,126,126,110,102,102,0, 0,0, // N 60,102,102,102,102,102,60,0, 0,0, // O 124,102,102,124,96,96,96,0, 0,0, // P 60,102,102,102,102,60,14,0, 0,0, // Q 124,102,102,124,120,108,102,0, 0,0, // R 60,102,96,60,6,102,60,0, 0,0, // S 126, 24,24,24,24,24,24,0, 0,0, // T 102,102,102,102,102,102,60,0, 0,0, // U 102,102,102,102,102,60,24,0, 0,0, // V 99,99,99,107,127,119,99,0, 0,0, // W 102,102,60,24,60,102,102,0, 0,0, // X 102,102,102,60,24,24,24,0, 0,0, // Y 126,6,12, 24,48,96,126,0, 0,0, // Z
Liksom om du vill visa DAD på LED-matrisen, ersätt först teckenvärdena i char ALPHA- arrayen genom att sätta värden för tecken D, A och D från listan ovan:
char ALPHA = {0,0,0,0,0,0,0,0,0,0,0, 120,108,102,102,102,108,120,0,0,0, 24,60,102,126,102,102,102,0,0,0, 120,108,102,102,102,108,120,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0};
Totala värden är nu 5 * 10 = 50 värden, så
Ersätt, för (int x = 0; x <142; x ++) // 150-8 (för att stoppa överflöd) {…….. Med, för (int x = 0; x <42; x ++) // 50-8 (för att stoppa överflöd) {……..
Så du behöver bara ändra numret.
Med det du har gjort programmeringen och nu kan du Bläddra någon text på 8x8 LED Matrix, kontrollera hela koden nedan med en demonstration video.