Щоб відображати зображення або текст, світлодіодами необхідно управляти. У розділі 2 ми показали, як управляти світлодіодами за допомогою контактів мікроконтролера. Ми підключали по одному светодиоду до одного висновку. Залежно від способу підключення світлодіода (до джерела живлення або до загальної шини) світлодіод можна було включати за допомогою установки на контакті сигналу “Г ‘або” 0 “. Інтенсивність світла від світлодіода регулювалася за допомогою ШІМ-сигналу на контакті мікроконтролера. Однак підключення до одного висновку мікроконтролера тільки одного світлодіода занадто марнотратно. Замість цього можна застосовувати мультіплексірованіе- управління світлодіодами за допомогою поділу часу. На рис. 3.2 показаний приклад мультиплексування: для управління дев’ятьма світлодіодами використовуються три рядки і три стовпці. Кожен стовпець і кожен рядок підключені до висновку мікроконтролера. Тому за допомогою шести контактів ми можемо керувати дев’ятьма світлодіодами. Цю схему можна поширити і на більше кількість рядків і стовпців. Однак для максимального використання контактів рекомендується по можливості витримувати однакове число рядків і стовпців. До якої міри можна розвивати цей підхід? Можна Чи управляти, наприклад, 225 світлодіодами за допомогою матриці розміром 15×15? Обмеження-максимальний струм світлодіодів, які застосовуються для такого дисплея.

Давайте спочатку розглянемо роботу мультиплексованих дисплея (рис. 3.2). Світлодіоди з’єднані проводами в ряди і стовпці. Кожен рядок і кожен стовпець підключені до висновків мікроконтролера.

Для включення конкретного світлодіода його стовпець потрібно підключити до джерела живлення Vcc, а його строку- до заземлення Gnd. У ланцюзі від Vcc до світлодіода повинні бути обмежують струм резистори. Після того, як стовпець підключений до Vcc, світлодіоди цього шпальти можна включити шляхом підключення відповідних рядків до загальної шини (за допомогою мікроконтролера). Наприклад, якщо підключити стовпець 1 до Vcc, а рядки 1 і 3 – до обший шині, то будуть включені світлодіоди LED1 і LED7. Припустимо, що потрібно включити LED1, LED2 і LED5. Для цього слід підключити до Vcc стовпець 1 (для LED1) і стовпець 2 (для LED2 і LED5), а до загальної шини – рядок 1 (для LED1 і LED2) і рядок 2 (для LED5). Однак якщо на ці рядки і стовпці подати зазначені напруги, то загориться також і LED4, оскільки стовпець 1 знаходиться під напругою Vcc, а рядок 2 заземлена! Тому щоб уникнути включення непотрібних світлодіодів напруги на рядки і стовпці подаються особливим чином.

Рис. 3.2. Приклад мультиплексування світлодіодів

На час Т на стовпець 1 подається Vcc, а стовпці 2 і 3 заземляются. Протягом цього інтервалу часу на рядок 1 подається заземлення (якщо потрібно включити LED1); в іншому випадку на неї подається Vcc. Якщо потрібно включити LED4, то рядок 2 заземляется; в іншому випадку на неї потрібно подати Vcc. І нарешті, якщо потрібно включити LED7 * то слід заземлити рядок 3; в іншому випадку на рядок 3 слід подати Vcc. Після закінчення першого періоду часу Т починається другий інтервал часу Г, протягом якого стовпець 1 заземлюється, на стовпець 2 подається Vcc, стовпець 3 заземлюється, а на рядки 1, 2 і 3 подається Vcc або земля, залежно від того, що потрібно зробити зі світлодіодами LED2, LED5 і LED8 (включити або виключити). Потім починається третій інтервал (знову тривалістю Т) і в цей період стовпці 1 і 2 заземляются, а на стовпець 3 подається Vcc. Рядки 1, 2 і 3 або заземляются, або на них подається Vcc (залежно від того, що потрібно зробити з LED3, LED6 і LED9 – включити або відключити). Після завершення інтервалу часу Т весь * цикл повторюється знову.

Яка тривалість періоду ΊΊ Це залежить від числа стовпців. Кожен стовпець повинен включатися кожні 100 Гц або частіше. У разі трьох стовпців 3Т- 10 ​​мс (10 мс – період 100 Гц). Тому Т – 3,3 мс.

Обмежує струм резистор може бути підключений або до катода (як на рис. 3.3), або до анода (як на рис. 3.4). Однак це розміщення резистора визначає номінал перемикачів на високій (SI, S2 ї S3) і низькою (S4, S5 і S6) сторонах. Для перемикання Vcc (високого потенціалу) потрібно біполярний р-п-р- транзистор або p-канальний польовий транзистор. Для перемикання заземлення (низького потенціалу) потрібно л-р-і-транзистор або і-канальний транзистор типу MOSFET.

Давайте розглянемо приклад розрахунку транзисторних ключів високого і низького потенціалів, коли обмежують струм резистори підключені послідовно з катодами світлодіодів (див. Рис. 3.3).

Рис. 3.3. Підключення струмообмежувальні резистора до катода

Рис. 3.4. Підключення струмообмежувальні резистора до анода

На цій схемі ключ S1 включається на період Г, під час якого включаються ключі S2 і S3. Струм через світлодіод визначається напругою живлення Uun (Vcc), падінням напруги на світлодіоді і послідовно включеним резистором (якщо падіння напруги на комутуючих елементах пренебрежимо мало):

де R – це послідовно включене опір. Однак це максимальний струм. Середній струм через світлодіод менше в N раз, де N- число стовпців (в нашому випадку ЛЬ3). Для створення необхідного струму значення опору потрібно зменшити в ці N раз (збільшивши таким чином піковий струм). Однак піковий струм не може збільшуватися довільно, оскільки в якийсь момент він перевершить максимальний струм світлодіода.

Зазвичай піковий струм може бути від п’яти до десяти разів більше, ніж максимальний середній струм.

Тому число стовпців може бути не більше десяти. Якщо ви хочете зменшити необхідний середній струм до величини меншої максимального середнього номіналу світлодіода, то можна збільшити N. Давайте проілюструємо це прикладом. У табл. 2.1 з попередньої глави наведено дані світлодіодів. Червоні світлодіоди мають робочий середній струм 30 мА і максимальний прямий струм 120 мА.

Значення R слід вибирати таким, щоб піковий струм через світлодіод ніколи не перевищував 120 мА. Якщо число стовпців дорівнює десяти, то середній струм (завдяки мультиплексуванню) складе 12 мА, що не перевищує середнього значення струму. Ми можемо збільшити число стовпців до 20 за рахунок зниження середнього струму (і отже, інтенсивності світіння світлодіодів). Вплив послідовно підключеного до катода обмежує ток резистора (як показано на рис. 3.3) полягає в тому, що ключі S4, S5 і S6 будуть працювати на такому максимальному струмі, що дорівнює піковому току світлодіода (в даному випадку 120 мА). Ключі SI, S2 і S3 повинні бути здатні працювати на 360 мА кожен. Зазвичай п- р-п-транзистор або η-канальний транзистор типу MOSFET можуть забезпечити більш високий струм, ніж відповідний р-п-р-транзистор або / 7-канальний MOSFET. Замість послідовно підключеного до катода обмежує струм резистора, ми можемо підключити резистор послідовно з анодом (рис. 3.4). Однак для цього потрібно відповідна зміна у схемі мультиплексування. Замість підключення стовпчика до Vcc нам доведеться підключати рядок до заземлення на період часу Г і (залежно від того, який світлодіод нам потрібно запалити) підключати відповідний стовпець до Vcc. Наступного період часу Т до заземлення підключається наступний рядок і т. Д. Перемикачі стовпців (S1, S2 і S3) повинні тепер витримувати максимальний струм 120 мА, а перемикачі рядків – 360 мА. Однак ключі загальної шини будуть реалізовані за допомогою п-р- η-транзисторів (або η-канальних MOSFET), які більш доступні, ніж аналогічні їм р-п-р або / 7-канальні MOS-транзистори.

А що, якщо число світлодіодів набагато більше, ніж можна організувати в одну матрицю з строк’і стовпців? Збільшення розміру матриці светодйодов- це проблема (як уже обговорювалося раніше), оскільки піковий прямий струм світлодіодів не дозволяє збільшувати розмір дисплея понад певної межі. У такій ситуації можна реалізувати кілька Матриць з світлодіодів, керованих незалежними рядками і стовпцями (Рис. 3.5).

Рис. 3.5. Об’єднання матриць світлодіодів

Тепер може не вистачити контактів мікроконтролера. Замість мікроконтролера з великим числом контактів можна додати зовнішні зсувні регістри. На рис. 3.6 показана схема для збільшення числа керуючих виходів за допомогою зсувного регістру (наприклад, 74НС164 або 74НС595).

Рис. 3.6. Збільшення числа керуючих виходів за допомогою регістра

Два 8-розрядних зсувних регістра забезпечують вісім бітів вихідних даних. Крім того, ці зсувні регістри можна каскадировать і отримати 16 або 24 біта даних (рис. 3.7). Зсувні регістри дозволяють підключити велике число світлодіодів (або безпосередньо до кожного контакту, або за допомогою мультиплексування), але не можуть підтримувати струм, для цього будуть потрібні додаткові транзистори.

На рис. 3.7 показана схема, в якій три вихідних контакту мікроконтролера використані для отримання 16 вихідних контактів. Однак потрібна програма для зсуву 16 бітів даних в 16 вихідних контактів. Ця програма повинна починати зі скидання двох зсувних регістрів (генеруючи імпульс на контакті РВО), а потім видавати потрібні дані на вхід верхнього зсувного регістру. Нижній зсувний регістр отримує свої дані з сигналу Qh верхнього зсувного регістру. Після установки потрібного логічного сигналу на тому контакті мікроконтролера, який підключений до входу зсувного регістру, дані в регістрі зсуваються (По тактовому імпульсу на тактовій вході зсувного регістру – це контакт РВ1 мікроконтролера). Кожен тактовий імпульс зрушує дані з входу в Qa, з Qa в Qb і т. Д. Після 16 імпульсів тактової частоти перший біт даних з’являється на контакті Qh нижнього зсувного регістру. Тобто для виведення будь-яких даних нам потрібно 16 імпульсів тактової частоти.

Рис. 3.7. Каскадування зсувних регістрів

Змінивши конфігурацію підключення зсувних регістрів і мікроконтролера (рис. 3.8), ми можемо зменшити число тактів з 16 до 8, але за рахунок додаткового контакту мікроконтролера (як показано далі). Вхід даних на кожен з зсувних регістрів налаштовується мікроконтролером окремо. Тактова частота генерується мікроконтролером для обох зсувних регістрів. Тому для виведення 16 бітів даних в два зсувних регістра буде потрібно тільки вісім імпульсів тактової частоти.

У порівнянні з рис. 3.7, тепер потрібно вісім сигналів тактової частоти (оскільки введення даних в два зсувних регістра налаштовується мікроконтролером окремо).

Давайте ж застосуємо отримані нами знання для розробки реальної схеми. Одна з найпопулярніших конфігурацій світлодіодів – точково-матричний дисплей 5×7. Внутрішня структура такого дисплея показана на рис. 3.9.

Рис. 3.8. Схема із зменшеним числом тактів

Рис. 3.9. Структура світлодіодного дисплея 5×7

Аноди світлодіодів підключені до стовпців, а катоди – до рядків. Однак є і дисплеї 5×7 з підключенням до анодам – ​​рядків, а до катодів – стовпців. При роботі зі світлодіодними матрицями необхідно звертати увагу на їх конфігурацію.

На рис. 3.10 показаний спосіб підключення матриці світлодіодів до мікроконтролера AVR. У дисплея анод підключений до стовпців, а катод – до рядків. У цій конструкції використовується здатність мікроконтролера AVR коммутировать струм до 40 мА. Аноди підключені до Vcc через р-і-р-транзистори (по одному).

Рис. 3.10. Підключення матриці світлодіодів до мікроконтролера

Залежно від того, який світлодіод в даному стовпці необхідно запалити, відповідний рядок підключається до загальної шини через контакт мікроконтролера. Резистор R підібраний для обмеження струму через світлодіод до 40 мА (оскільки саме такий струм витримує контакт мікроконтролера AVR). Для включення шпальти на відповідному контакті порту (підключеного до бази транзистора) виставляється логічний 0. Це призводить до включення р-п-р- транзистора і дозволяє току текти через світлодіоди. Оскільки стовпців п’ять, то робочий струм через світлодіод стовпця становить 20%. Тому середній струм через світлодіод становить 20% від 40 мА, т. е. 8 мА. Така схема підходить тільки для невеликих дисплеїв. Для більш великих дисплеїв (у яких більш високі середні і пікові струми) буде потрібно інша схема, що забезпечує більший струм.

На рис. 3.11 зображена схема для збільшення пікового струму через світлодіоди (з ключами на основі я-р-а-транзисторів). ULN2003 – це інтегральна схема з сімома η-ρ-я-каскадами і логічним входом. Кожен вихід цієї схеми може працювати з струмом до 500 мА. Тепер величину опору струмообмежувальні резистора R можна зменшити, що забезпечить більш високий піковий струм на кожен світлодіод.

Рис. 3.11. Схема для збільшення струму через світлодіоди

Рис. 3.12. Ще один приклад схеми для збільшення струму світлодіодів

На рис. 3.12 приведена аналогічна схема, однак тут застосовуються п-р-п-транзистори.

У цій схемі всі рядки активовані за допомогою логічної 1 на вході бази та – /? – Л-транзистора і залежно від того, який світлодіод цього рядка потрібно включити в логічну 1, включаються відповідні аноди. Номінал опору і раніше підбирається так, щоб обмежити струм до 40 мА (оскільки струм надходить безпосередньо з контактів мікроконтролера). Проте в цій схемі робочий струм становить 1/7 (оскільки рядків сім) і середній струм через світлодіод дорівнює приблизно 6 мА, що набагато менше, ніж середній струм в показаної раніше схемою с / 7-п-р-транзисторами. Однак, оскільки тут використані п-р-п-транзистори, схема підходить лише для невеликих дисплеїв.

На рис. 3.13 наведена схема підключення до мікроконтролеру AVR точечно- матричного дисплея 16×16 зі зсувними регістрами і декодером. На блок-схемі не показані підсилюють струм транзистори, які потрібні для комутації як високого, так і низького потенціалів.

Рис. 3.13. Підключення до мікроконтролера матричного дисплея 16×16

Особливість цієї схеми – наявність декодера 74154 з 16 активними виходами, які підходять для управління /> – л-р-транзисторами або / 7-канальними MOS- транзисторами. Додатковий сигнал з мікроконтролера AVR служить для відключення декодера (за допомогою сигналів G1 / G2). Пара каскадних зсувних регістрів видає 16 вихідних сигналів (для управління 16 рядками дисплея). Включення конкретних стовпців дисплея виконується просто: необхідно встановити входи декодера в потрібне стан; якщо потрібно активувати самий лівий стовпець (стовпець номер 0), то на вхід декодера подається логічна комбінація ABCD = 0000. Для включення стовпчика 1 подається ABCD = 0001 і т. Д. Для включення декодера на вхід G1 / G2 подається логічний 0. Якщо потрібно відключити всі стовпці, то на вхід G1 / G2 подається логічна 1. Для зміни стовпців потрібно спочатку відключити декодер (встановивши на вході G1 / G2 логічну 1), а потім у зсувні регістри зрушити нові значення для 16 рядків (пам’ятайте, що для цього буде потрібно 16 імпульсів тактової частоти), а потім активувати новий стовпець (за допомогою установки входів декодера ABCD), після чого включити сам декодер (встановивши на вході G1 / G2 логічний 0). Для реалізації розглянутої схеми потрібно також 16 р-п-р-транзисторів (або / 7-канальних MOSFET) на виході декодера і 16 л-р-л-транзйсторов (або η-канальних MOSFET) на виході зсувних регістрів.

Незважаючи на те, що на рис. 3.10-3.12 наведено методи управління точечно- матричними дисплеями 5×7 за допомогою мікроконтролерів AVR, їх можна використовувати і для семисегментних, і для алфавітно-цифрових індикаторів (які також часто зустрічаються). На рис. 3.14 зображений семісегментний дисплей (ліворуч) і два типи алфавітно-цифрових дисплеїв (в центрі і праворуч). Кожен сегмент дисплея промаркований буквою. Сегменти семисегментного дисплея помічені буквами від А до G, а десяткова точка – dp. Фактично в ньому вісім сегментів (включаючи десяткову крапку), але в літературі і специфікаціях такий дисплей називається семісегментним. Алфавітно-цифрові дисплеї бувають двох типів: з 14 або 16 сегментами (не рахуючи десяткового дробу).

Рис. 3.14. Приклади світлодіодних дисплеїв

На рис. 3.15 показана організація світлодіодів в семисегментний дисплеї. Кожен дисплей має загальний сигнал (або анод, або катод). Тобто семисегментні дисплеї бувають або із загальним анодом, або з загальним катодом. Точно так само і алфавітно-цифрові дисплеї бувають або із загальним анодом, або з загальним катодом.

Рис. 3.15. Включення світлодіодів семисегментного дисплея

Рис. 3.16. Керування кількома семисегментний дисплеями

Кожен точково-матричний дисплей 5×7 можна замінити п’ятьма семисегментний дисплеями. Спосіб управління вісьмома семисегментний дисплеями ілюструє рис. 3.16. У даній схемі зсувний регістр 74164 управляє сегментами семисегментного дисплея, а декодер 74138- загальними анодами дисплеїв. Буферні транзистори тут знову не показані.

Джерело: Гадре, Д., Цікаві проекти на базі мікроконтролерів tinyAVR / Дхананья Гадре, Нігула Мелхотра: Пер. з англ. – СПб .: БХВ-Петербург, 2012. – 352 с .: іл. – (Електроніка)