В тази сесия ще проектираме 8x8 LED дисплей с 8x8 LED матрица и ATmega8 микроконтролер, който може да показва азбуки или имена. Типична 8x8 led матрица е показана по-долу:
8x8 LED матрица съдържа 64 LED (Светоизлъчващи диоди), които са подредени под формата на матрица, откъдето идва и името LED матрица. Тези матрици могат да бъдат направени чрез кръгови 64 светодиода; този процес обаче отнема много време. Сега на ден те се предлагат в компактни форми, както е показано на фигурата. Тези компактни модули се предлагат в различни размери и много цветове. Човек може да ги избере по удобство.
Цената на модула е същата като 64 LED, така че за любител това е най-лесно да се работи. ПИН конфигурацията на модула е показана на фигурата. ПИН кодовете трябва да имат точно номера, както е показано на снимката, за да се избегнат грешки. Ще обсъдим подробно конфигурацията на вътрешната верига на модула в описание.
Компоненти
Хардуер: ATMEGA8, захранване (5v), AVR-ISP ПРОГРАММЕР, 100 uF кондензатор (свързан през захранване), 1KΩ резистор (8 броя).
Софтуер: Atmel studio 6.1, progisp или flash magic.
Електрическа схема и работа
Връзките, които се осъществяват между ATMEGA8 и LED матричен модул, са показани на фигурата по-долу.
PORTD, PIN0 ------------------ PIN13 на LED модул
PORTD, PIN1 ------------------ PIN03 на LED модул
PORTD, PIN2 ------------------ PIN04 на LED модула
PORTD, PIN3 ------------------ PIN10 на LED модул
PORTD, PIN4 ------------------ PIN06 на LED модула
PORTD, PIN5 ------------------ PIN11 на LED модул
PORTD, PIN6 ------------------ PIN15 на LED модул
PORTD, PIN7 ------------------ PIN16 на LED модул
PORTB, PIN0 ------------------ PIN09 на LED модул
PORTB, PIN1 ------------------ PIN14 на LED модула
PORTB, PIN2 ------------------ PIN08 на LED модул
PORTB, PIN3 ------------------ PIN12 на LED модул
PORTC, PIN0 ------------------ PIN01 на LED модула
PORTC, PIN1 ------------------ PIN07 на LED модул
PORTC, PIN2 ------------------ PIN02 на LED модула
PORTC, PIN3 ------------------ PIN05 на LED модул
В диаграмата верига на дисплей 8х8 LED матрица е показано в по-долу фигура.
Има 64 светодиода, подредени в матрична форма. Имаме 8 колони и 8 реда, както е показано на фигурата. Над тези редове и колони се събират всички положителни терминали в един ред. За всеки ред има един общ положителен терминал за всичките 8 светодиода в този ред. Това е показано на фигурата по-долу,
Така че за 8 реда имаме 8 общи положителни терминала, помислете за първия ред. Както се вижда от снимката, светодиодите от D1 до D8 имат общ положителен терминал и са изведени от LED MODULE като PIN9.
Трябва да се види, че всички често срещани позитиви на редовете не са изведени от LED MODULE по реда. Във всеки случай има много нередности на общите терминали. Трябва да се има предвид това, докато се свързва терминалът.
Кажете, ако искаме някой или всички светодиоди в първия ред на матрицата да са включени, тогава трябва да захранваме PIN9 на LED MATRIX MODULE, а не PIN0.
Кажете, ако искаме да е включен някой или всички светодиоди в третия ROW на матрицата, тогава трябва да захранваме PIN8 на LED MATRIX MODULE, а не PIN2.
Така че, когато искаме един или всички светодиоди в един ред да бъдат включени, съответният щифт на LED MODULE да бъде захранван.
Това все още не е приключило, като просто оставите мощността ROWS не дава нищо. Трябва да заземим другия край. Ще го обсъдим по-долу.
Сега за този случай игнорираме общите положителни редове и се фокусираме върху общи отрицателни колони.
Така че в този модул всички отрицателни клеми на първа колона се събират в PIN13. Това е показано на фигурата по-долу.
Тук също има нередност в PIN OUTAGE на модула. Общият негатив на първата светодиодна колона се извежда на PIN13. Общата отрицателна честота на светодиодите във втората колона се извежда на PIN3.
Трябва да се обърне внимание на щифтовете, докато се свързвате. Сега, ако някой или всички светодиоди в първата колона трябва да бъдат заземени, PIN13 на МАТРИЧЕН МОДУЛ трябва да бъде заземен. По този начин се стига до останалите седем често срещани отрицателни колони. Когато и двата случая са събрани, ние попадаме на верига, както е показано по-долу,
Горната схема е пълната вътрешна схема на LED MODULE. Кажете, че ако искаме да включим LED D10 в матрицата, трябва да включим PIN14 на модула и да заземем PIN3 на модула. С това D10 ще се включи. Това е показано на фигурата по-долу. Това трябва да бъде първата проверка за MATRIX, за да знаете всичко в ред.
Кажете, че ако искаме да включим D1, трябва да захраним PIN9 на матрицата и да заземим PIN13. С този светодиод D1 ще свети. Текущата посока за този случай е показана на фигурата по-долу.
Сега за сложната част, помислете, че искаме да включим едновременно D1 и D10. Така захранваме както PIN9, PIN14, така и заземяваме двата PIN13, PIN3. С това ще имаме включени D2 и D9 заедно с D1 и D10. Това е така, защото те споделят общи терминали. Така че, ако искаме да включим светодиодите по диагонала, ще бъдем принудени да включим всички светодиоди по пътя. Това е показано на фигурата по-долу.
Така че, за да елиминираме този проблем, ще включим само по един включен в даден момент. Кажете при t = 0m SEC, светодиодът D1 е включен. При t = 1m SEC, светодиодът D1 се изключва и светодиодът D2 се включва. Отново при t = 2 m SEC, LED D2 се изключва и LED D1 се включва. Това продължава.
Номерът е, че човешкото око не може да улови честота повече от 30 HZ. Това е, ако светодиодът се включва и изключва непрекъснато със скорост 30 HZ или повече. Окото вижда светодиода като постоянно включен. Това обаче не е така. Светодиодът постоянно ще се включва и изключва. Тази техника се нарича мултиплексиране.
Използвайки мултиплексиране, ние ще завъртим само по един ред наведнъж и непрекъснато ще има колоездене около 8 реда. Това се визуализира като напълно включена матрица за невъоръжено око.
Сега кажете, че искаме да покажем „А“ на матрицата.
Както казахме, ще включим един ред за миг, При t = 0m SEC, PIN09 е зададен HIGH (в този момент другите ROW щифтове са НИСКИ), PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 са заземени (в този момент другите COLUMN щифтове са HIGH)
При t = 1m SEC, PIN14 е зададен HIGH (в този момент другите ROW щифтове са НИСКИ) по това време, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 са заземени (в този момент другите COLUMN щифтове са HIGH)
При t = 2m SEC, PIN08 е зададен HIGH (в този момент другите ROW щифтове са НИСКИ), PIN13, PIN3, PIN15, PIN16 са заземени (в този момент другите COLUMN щифтове са HIGH)
При t = 3m SEC, PIN12 е зададен HIGH (в този момент другите ROW щифтове са НИСКИ), PIN13, PIN3, PIN15, PIN16 са заземени (останалите COLUMN щифтове са HIGH в този момент)
При t = 4m SEC, PIN01 е зададен HIGH (в този момент другите ROW щифтове са НИСКИ), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 са заземени (в този момент другите COLUMN щифтове са HIGH)
При t = 5m SEC, PIN07 е зададен HIGH (в този момент другите ROW щифтове са НИСКИ) по това време, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 са заземени (в този момент другите COLUMN щифтове са HIGH)
При t = 6m SEC, PIN02 е зададен HIGH (в този момент другите ROW щифтове са НИСКИ), PIN13, PIN3, PIN15, PIN16 са заземени (в този момент другите COLUMN щифтове са HIGH)
При t = 7m SEC, PIN05 е зададен HIGH (в този момент другите ROW щифтове са НИСКИ), PIN13, PIN3, PIN15, PIN16 са заземени (в този момент другите COLUMN щифтове са HIGH)
При тази скорост дисплеят ще се вижда като непрекъснато показващ символ „А“. Това е показано на фигура.
По този начин всички символи се показват на дисплея. След като свържете веригата по правилния начин, както е показано на електрическата схема. Можем директно да дадем инструкции на контролера за извършване на мултиплексиране по реда, за да се показва името.