I den här sessionen ska vi utforma en 8x8 LED-skärm med 8x8 LED-matris och ATmega8-mikrokontroller, som kan visa alfabet eller namn. En typisk 8x8 ledd matris visas nedan:
En 8x8 LED-matris innehåller 64 LED (Light Emitting Diodes) som är ordnade i form av en matris, därav namnet LED-matris. Dessa matriser kan göras genom att kretsa 64 lysdioder; den processen är dock tidskrävande. Nu om dagen finns de i kompakta former som visas i figuren. Dessa kompakta moduler finns i olika storlekar och många färger. Man kan välja dem på bekvämlighet.
Kostnaden för modulen är samma som kostnaden för 64 LED, så för en hobbyist är det enklast att arbeta med det. Modulens PIN-konfiguration är som visas i figuren. PIN-koden ska vara exakt så som visas på bilden för att undvika fel. Vi kommer att diskutera modulens interna kretskonfiguration i detalj i beskrivningen.
Komponenter
Hårdvara: ATMEGA8, strömförsörjning (5v), AVR-ISP-PROGRAMMER, 100 uF kondensator (ansluten över strömförsörjningen), 1KΩ motstånd (8 delar).
Programvara: Atmel studio 6.1, progisp eller flash magi.
Kretsschema och arbete
Anslutningarna som görs mellan ATMEGA8 och LED-matrismodul visas i figuren nedan.
PORTD, PIN0 ------------------ PIN13 för LED-modulen
PORTD, PIN1 ------------------ PIN03 för LED-modulen
PORTD, PIN2 ------------------ PIN04 för LED-modulen
PORTD, PIN3 ------------------ PIN10 för LED-modulen
PORTD, PIN4 ------------------ PIN06 för LED-modulen
PORTD, PIN5 ------------------ PIN11 för LED-modulen
PORTD, PIN6 ------------------ PIN15 för LED-modulen
PORTD, PIN7 ------------------ PIN16 för LED-modulen
PORTB, PIN0 ------------------ PIN09 för LED-modulen
PORTB, PIN1 ------------------ PIN14 för LED-modulen
PORTB, PIN2 ------------------ PIN08 för LED-modulen
PORTB, PIN3 ------------------ PIN12 för LED-modulen
PORTC, PIN0 ------------------ PIN01 för LED-modulen
PORTC, PIN1 ------------------ PIN07 för LED-modulen
PORTC, PIN2 ------------------ PIN02 för LED-modulen
PORTC, PIN3 ------------------ PIN05 av LED-modul
Den kretsschema för 8x8 LED matrisdisplayen visas i figuren nedan.
Det finns 64 lysdioder ordnade i matrisform. Så vi har 8 kolumner och 8 rader som visas i figuren. Ö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, överväga den första raden. Som framgår av bilden har lysdioderna från D1 till D8 en gemensam positiv terminal och tas ut ur LED-MODUL som PIN9.
Det bör ses att alla vanliga positiva rader inte tas ut ur LED-MODUL på ordnat sätt. Det finns mycket oegentligheter på vanliga terminaler i alla fall. Man bör komma ihåg detta när man ansluter terminalen.
Säg om vi vill att någon eller alla lysdioder i den första matrisraden ska vara PÅ, så ska vi driva PIN9-enheten i LED-MATRIXMODULEN inte PIN0.
Säg om vi vill att någon eller alla lysdioder i den tredje raden i matrisen ska vara PÅ, då ska vi driva PIN8: n i LED MATRIX MODULE inte PIN2.
Så när vi vill att en eller alla lysdioder i en RÖD ska vara PÅ, ska motsvarande stift av LED-MODUL drivas.
Detta är inte över ännu genom att bara lämna makten ROWS ger inget. Vi måste jorda den andra änden. Vi kommer att diskutera det nedan.
För det här fallet ignorerar vi de vanliga positiva raderna och fokuserar på vanliga negativa kolumner.
Så i den modulen samlas alla negativa terminaler i första kolumnen till PIN13. Detta visas i bilden nedan.
Även här finns det oegentligheter i PIN OUTAGE i modulen. De första kolumn-lysdioderna som är vanliga negativa visas vid PIN13. Den andra kolumnens lysdioder som är vanliga negativa visas vid PIN3.
Man bör vara uppmärksam på stiften när man ansluter. Om någon eller alla lysdioderna i första kolumnen ska jordas ska PIN13 i MATRIX MODULE jordas. Det här sättet går till de andra sju vanliga negativa kolumnerna. När båda fallen är sammanlagda stöter vi på en krets som visas nedan,
Kretsen ovan är det kompletta interna diagrammet för LED-MODUL. Säg att om vi vill sätta på LED D10 i matrisen måste vi slå på PIN14 på modulen och jorda PIN3 på modulen. Med detta slås D10 PÅ. Detta visas i figuren nedan. Detta bör vara den första kontrollen för MATRIX att veta allt i ordning.
Säg att om vi vill slå på D1 måste vi driva PIN9 i matrisen och jorda PIN13. Med den lyser LED D1. Den aktuella riktningen för detta fall visas i nedanstående figur.
Nu för den knepiga delen, överväga att vi vill slå på både D1 och D10 åt gången. Så vi driver både PIN9, PIN14 och jordar båda PIN13, PIN3. Med det kommer vi att ha D2 och D9 PÅ tillsammans med D1 och D10. Det beror på att de delar gemensamma terminaler. Så om vi vill tända lysdioder längs diagonalen tvingas vi tända alla lysdioder under vägen. Detta visas i bilden nedan.
Så för att eliminera detta problem kommer vi bara att tända en led i taget. Säg vid t = 0m SEC, LED D1 är inställd PÅ. Vid t = 1m SEC stäms LED D1 AV och LED D2 slås PÅ. Återigen vid t = 2 m SEC släcks LED D2 och LED D1 slås PÅ. Detta fortsätter.
Nu är tricket att det mänskliga ögat inte kan fånga en frekvens 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Å. Men så är inte fallet. Lysdioden tänds ständigt PÅ och AV. Denna teknik kallas multiplexing.
Genom att använda multiplexing kommer vi bara att vrida en rad i taget, och det kommer att cyklas runt de 8 raderna kontinuerligt. Detta visualiseras som en helt påslagen matris för blotta ögat.
Säg nu att vi vill visa “A” på matrisen.
Som sagt kommer vi att slå på en rad på ett ögonblick, Vid t = 0m SEC är PIN09 inställt HÖG (andra ROW-stift är LÅGA vid denna tidpunkt) vid denna tidpunkt är PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 jordade (andra KOLONN-stift är HÖG vid denna tidpunkt)
Vid t = 1m SEC är PIN14 inställt HÖG (andra ROW-stift är LÅGA vid denna tidpunkt) vid denna tidpunkt är PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 jordade (andra KOLONN-stift är HÖG vid denna tidpunkt)
Vid t = 2m SEC är PIN08 inställt HÖG (andra RAD-stift är LÅGA vid denna tidpunkt) vid denna tidpunkt är PIN13, PIN3, PIN15, PIN16 jordade (andra KOLONN-stift är HÖGA just nu)
Vid t = 3m SEC är PIN12 inställt HÖG (andra ROW-stift är LÅGA vid denna tidpunkt) vid denna tidpunkt är PIN13, PIN3, PIN15, PIN16 jordade (andra KOLONN-stift är HÖG vid denna tidpunkt)
Vid t = 4m SEC är PIN01 inställt HÖG (andra ROW-stift är LÅGA vid denna tidpunkt) vid denna tidpunkt är PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 jordade (andra KOLONN-stift är HÖG vid denna tidpunkt)
Vid t = 5m SEC är PIN07 inställt HÖG (andra ROW-stift är LÅGA vid denna tidpunkt) vid denna tidpunkt är PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 jordade (andra KOLONN-stift är HÖG vid denna tidpunkt)
Vid t = 6m SEC är PIN02 inställt HÖG (andra ROW-stift är LÅGA vid denna tidpunkt) vid denna tidpunkt är PIN13, PIN3, PIN15, PIN16 jordade (andra KOLONN-stift är HÖGA vid denna tidpunkt)
Vid t = 7m SEC är PIN05 inställt HÖG (andra RAD-stift är LÅGA vid denna tidpunkt) vid denna tidpunkt är PIN13, PIN3, PIN15, PIN16 jordade (andra KOLONN-stift är HÖGA just nu)
Vid denna hastighet kommer displayen att ses som kontinuerligt "A" -tecken. Det visas i figur.
Så här visas alla tecken på displayen. Efter att ansluta kretsen på rätt sätt, som visas i kretsschemat. Vi kan direkt ge styrenheten instruktioner för att utföra multiplexeringen på ett ordnat sätt för att namnet ska visas.