Сегодня мы попробуем подключить к микроконтроллеру не один одноразрядный индикатор, а два. То есть подключим ещё один такой индикатор. Только если мы подключим его точно так же, как и первый, то мы на это дело задействуем практически все ножки портов контроллера, что сделает наш проект нежизнеспособный.
Поэтому на помощь нам придет в этом случае другой способ — это динамическая индикация.
При динамической индикации в каждый момент времени мы будем выводить цифру только на одном индикаторе. То есть цифры, предназначенные для обоих индикаторов мы будем выводить по очереди. Но выводить по очереди мы их будем с такой частотой, что наш глаз этого не заметит. И нам будет казаться, что индикаторы работают постоянно, а не по очереди. Это позволяет нам подключить сегменты обоих индикаторов, а в последствии и большего количества индикаторов к одним и тем же ножкам порта, то есть параллельно. При таком способе будут сразу на оба индикатора подаваться по очереди сначала цифра, предназначенная для первого индикатора, а затем цифра, предназначенная для второго. И чтобы нам не виделись одновременно две цифры на каждом индикаторе, во время отображения цифры, предназначенной для определённого индикатора, мы будем на его анод положительное напряжение, а на другой анод не будем, а будем соединять его с общим проводом. Поэтому независимо от состояния его катодов светиться не будет ни один из его сегментов. Если на сегменте будет ноль, то вообще не будет разности потенциалов, а если будет единица, то разность потенциалов будет, но ток будет направлен в другую сторону и светодиод при таком направлении не будет светиться.
Новый проект мы создадим также как и обычно, скопировав код в main.c из одноименного файла прошлого проекта. Назовём проект Test08.
Давайте сначала соберём схему в протеусе, скопировав, как обычно, файл проекта из предыдущего занятия и подключив в свойствах контроллера путь к новому проекту. Сначала мы переподключим кнопку на другую ножку порта. Зачем это нужно, мы увидим позже
Отключим пока от питания общий анод и добавим ещё один такой же индикатор, какой у нас уже есть в проекте.
Для этого достаточно его просто выбрать в левой панели, заново из библиотеки его добавлять не нужно. Затем соединим катоды данного индикатора с одноимёнными катодами первого
Освободившиеся аноды мы подключим к ножкам другого порта. Но подключим мы не напрямую, а через ключевые транзисторы, так как при свечении нескольких сегментов индикатора одновременно через ножку порта, подключенную к аноду индикатора, потечёт слишком большой ток. Порт может выйти из строя. Это нам вовсе не интересно. Поэтому подключим наши аноды к ножкам B0 и B1 через транзисторы. Вот зачем мы перенесли кнопку на другую ножку. Причём перенесли с запасом, так как подключать впоследствии мы будем четыре индикатора.
Добавим из библиотеки транзистор. Включать мы его будем в инверсном режиме, поэтому выбираем структуру p-n-p
Подключим таких два транзистора в схему, добавив ещё два резистора по 2 килоома для ограничения тока базы. Эмиттеры подключим к питанию, а коллекторы — к анодам индикаторов (нажмите на картинку для увеличения изображения)
Также я покажу полную схему нашей сборки (нажмите на картинку для увеличения изображения)
Здесь мы видим, что транзисторы применены здесь ss8550. Стоят они копейки, но в качестве ключей работают прекрасно.
Со схемой пока всё.
А проектом мы займёмся в следующей части нашего занятия.
Предыдущий урок Программирование МК AVR Следующая часть
Программатор и индикаторы можно приобрести здесь:
Программатор USBASP USBISP с адаптером USBASP USBISP 3.3 с адаптером
Семисегментный чертырехразрядный индикатор красный (с общим анодом или катодом на выбор) 10 шт
Смотреть ВИДЕОУРОК
Здравствуйте. Вы не могли бы сделать видео про независимое подключение семисегментного индикатора. Все используют порт D для подключения сегментов и тем самым лишают себя последовательного канала, двух прерываний с наивысшим приоритетом, двух счетных входов и компаратора. Было бы очень удобно сделать библиотеку с независимым подключением (к примеру часть сегментов с порта В, часть с порта С). Информации о независимом подключении мало, а та что есть очень навороченная для начинающих.
Интересная тема. Взял на заметку.
А чё тут сложного переделать под себя, и так всё разжёвано уважаемым Автором.