На цій сесії ми плануємо розробити світлодіодний дисплей 8x8 із світлодіодною матрицею 8x8 та мікроконтролером ATmega8, який може відображати алфавіти або імена. Типова світлодіодна матриця 8x8 показана нижче:
Світлодіодна матриця 8x8 містить 64 світлодіоди (світлодіоди), які розташовані у формі матриці, звідси і назва LED матриця. Ці матриці можуть бути виготовлені за допомогою ланцюга 64 світлодіодів; однак цей процес займає багато часу. Зараз вони доступні в компактних формах, як показано на малюнку. Ці компактні модулі випускаються різних розмірів та різноманітних кольорів. Вибрати їх можна за зручністю.
Вартість модуля така ж, як вартість 64 світлодіодів, тому для любителя це найпростіше працювати. Конфігурація PIN-коду модуля така, як показано на малюнку. Для запобігання помилкам PIN-коди повинні мати цифру в точності, як показано на малюнку. Ми детально обговоримо конфігурацію внутрішньої схеми модуля в описі.
Компоненти
Апаратне забезпечення: ATMEGA8, блок живлення (5 в), AVR-ISP ПРОГРАММЕР, конденсатор 100 мкФ (підключений через блок живлення), резистор 1 кОм (8 штук).
Програмне забезпечення: Atmel studio 6.1, progisp або flash magic.
Принципова схема та робота
З'єднання між ATMEGA8 та світлодіодним матричним модулем показано на малюнку нижче.
PORTD, PIN0 ------------------ PIN13 світлодіодного модуля
PORTD, PIN1 ------------------ PIN03 світлодіодного модуля
PORTD, PIN2 ------------------ PIN04 світлодіодного модуля
PORTD, PIN3 ------------------ PIN10 світлодіодного модуля
PORTD, PIN4 ------------------ PIN06 світлодіодного модуля
PORTD, PIN5 ------------------ PIN11 світлодіодного модуля
PORTD, PIN6 ------------------ PIN15 світлодіодного модуля
PORTD, PIN7 ------------------ PIN16 світлодіодного модуля
PORTB, PIN0 ------------------ PIN09 світлодіодного модуля
PORTB, PIN1 ------------------ PIN14 світлодіодного модуля
PORTB, PIN2 ------------------ PIN08 світлодіодного модуля
PORTB, PIN3 ------------------ PIN12 світлодіодного модуля
PORTC, PIN0 ------------------ PIN01 світлодіодного модуля
PORTC, PIN1 ------------------ PIN07 світлодіодного модуля
PORTC, PIN2 ------------------ PIN02 світлодіодного модуля
PORTC, PIN3 ------------------ PIN05 світлодіодного модуля
Схема електричного світлодіодного дисплея розміром 8x8 показана на малюнку нижче.
Є 64 світлодіоди, розташовані у матричній формі. Отже, ми маємо 8 стовпців і 8 рядків, як показано на малюнку. Над цими рядками та стовпцями всі позитивні термінали в рядку зведені. Для кожного рядка існує одна загальна позитивна клема для всіх 8 світлодіодів у цьому рядку. Це показано на малюнку нижче,
Отже, для 8 рядків у нас є 8 загальних позитивних клем, розглянемо перший рядок. Як видно з малюнка, світлодіоди від D1 до D8 мають спільну позитивну клему і виведені зі світлодіодного модуля як PIN9.
Слід бачити, що всі загальні позитивні сторони рядків не виведені зі світлодіодного модуля впорядковано. У звичайних терміналах у кожному випадку є дуже нерегулярність. Це слід пам’ятати, підключаючи термінал.
Скажімо, якщо ми хочемо, щоб якийсь один або всі світлодіоди в першому РЯДКУ матриці були увімкнені, тоді нам слід подавати живлення на PIN9 модуля LED MATRIX, а не на PIN0.
Скажімо, якщо ми хочемо, щоб якийсь один або всі світлодіоди в третьому РЯДКУ матриці були увімкнені, тоді нам слід живити PIN8 модуля LED MATRIX, а не PIN2.
Отже, коли ми хочемо, щоб один або всі світлодіоди РЯДКУ були ввімкнені, відповідний штифт світлодіодного модуля повинен мати живлення.
Це ще не закінчилося, якщо залишити потужність ROWS нічого не дає. Нам потрібно заземлити інший кінець. Ми обговоримо це нижче.
Тепер для цього випадку ми ігноруємо загальні позитивні рядки та зосереджуємось на загальних негативних стовпцях.
Отже, у цьому модулі всі мінусові клеми першої колонки об’єднані в PIN13. Це показано на малюнку нижче.
Тут також є нерегулярність виведення PIN-коду модуля. Загальний мінус світлодіодів першого стовпця виводиться на PIN13. Загальний мінус світлодіодів другого стовпця виводиться на PIN3.
Слід звертати увагу на штифти під час підключення. Тепер, якщо потрібно заземлити будь-який один або всі світлодіоди в першій колонці, слід заземлити PIN13 МОДУЛЮ МАТРИЦІ. Цей шлях переходить до інших семи поширених негативних стовпців. Коли обидва випадки зібрані разом, ми зустрічаємо схему, як показано нижче,
Наведена схема - це повна внутрішня схема світлодіодного модуля. Скажімо, якщо ми хочемо увімкнути світлодіод D10 в матриці, нам потрібно включити PIN14 модуля і заземлити PIN3 на модулі. З цим D10 увімкнеться. Це показано на малюнку нижче. Це перша перевірка для MATRIX, щоб знати все по порядку.
Скажімо, якщо ми хочемо увімкнути D1, нам потрібно включити PIN9 матриці і заземлити PIN13. При цьому світлодіод D1 буде світитися. Поточний напрямок для цього випадку показано на малюнку нижче.
Тепер, що стосується складної частини, розглянемо, що ми хочемо одночасно вмикати як D1, так і D10. Таким чином, ми живимо як PIN9, PIN14, так і заземлюємо обидва PIN13, PIN3. З урахуванням цього ми будемо включати D2 і D9 разом з D1 і D10. Це тому, що вони мають спільні термінали. Отже, якщо ми хочемо включити світлодіоди по діагоналі, ми будемо змушені увімкнути всі світлодіоди по ходу. Це показано на малюнку нижче.
Тож для усунення цієї проблеми ми включимо за раз лише один світлодіод. Скажімо, при t = 0 м SEC, світлодіод D1 налаштований на ON. При t = 1 м SEC, світлодіод D1 вимкнено, а світлодіод D2 увімкнено. Знову при t = 2 м SEC, світлодіод D2 вимикається, а світлодіод D1 вмикається. Це триває.
Тепер фокус у тому, що людське око не може вловлювати частоту більше 30 Гц. Тобто, якщо світлодіод постійно вмикається і вимикається зі швидкістю 30 Гц або більше. Око бачить, що світлодіод постійно горить. Однак це не так. Світлодіод буде постійно вмикатися та вимикатись. Цей прийом називається мультиплексування.
Застосовуючи мультиплексування, ми будемо повертати лише по одному рядку за раз, і навколо 8 рядків буде постійно їздити на велосипеді. Це візуалізується як повністю включена матриця неозброєним оком.
Тепер скажімо, що ми хочемо відобразити «А» на матриці.
Як сказано, ми одразу включимо один рядок, При t = 0m SEC, PIN09 встановлюється HIGH (в цей час інші РЯДНІ штифти НИЗЬКІ), PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 заземлені (інші штифти СТОЛБКИ ВИСОКИЙ в цей час)
При t = 1 м SEC, PIN14 встановлюється ВИСОКО (в цей час інші РЯДНІ штифти НИЗЬКІ), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 заземлюються (інші штифти СТОЛБКИ в цей час ВИСОКИ)
При t = 2 м SEC, PIN08 встановлюється ВИСОКО (в цей час інші РІВНІ штифти НИЗЬКІ), PIN13, PIN3, PIN15, PIN16 заземлені (інші штифти СТОЛБКИ ВИСОКИЙ в цей час)
При t = 3 м SEC, PIN12 встановлюється ВИСОКО (в цей час інші РЯДНІ штифти НИЗЬКІ), PIN13, PIN3, PIN15, PIN16 заземлені (інші штифти СТОЛБИ В цей час ВИСОКИЙ
При t = 4 м SEC, PIN01 встановлюється HIGH (в цей час інші ROW-шпильки НИЗЬКІ), в цей час PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 (інші COLUMN-шпильки в цей час HIGH)
При t = 5 м SEC, PIN07 встановлюється HIGH (в цей час інші РІВНІ штирі НИЗЬКІ), PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 заземлюються (інші штифти СТОЛБИ В цей час HIGH)
При t = 6 м SEC, PIN02 встановлюється HIGH (в цей час інші РІВНІ штифти НИЗЬКІ), PIN13, PIN3, PIN15, PIN16 заземлені (інші COLUMN штифти в цей час HIGH)
При t = 7 м SEC, PIN05 встановлюється ВИСОКО (в цей час інші РІВНІ штифти НИЗЬКІ), PIN13, PIN3, PIN15, PIN16 заземлені (інші штифти СТОЛБКИ ВИСОКИЙ в цей час)
При такій швидкості дисплей буде сприйматися як постійно відображаючий символ «А». Це показано на малюнку.
Так відображаються всі символи на дисплеї. Після правильного підключення схеми, як показано на схемі. Ми можемо безпосередньо дати вказівки контролеру виконувати мультиплексування впорядковано для відображення імені.