Драйвер семисегментных индикаторов MAX7219/MAX7221.
Драйвер семисегментных индикаторов MAX7219/MAX7221.
Электрические характеристики.
Напряжение питания 4.0 – 5.5В
Минимальный потребляемый ток без индикации 150мкА
Частота обновления дисплея 500-1300Гц
Ток одного сегмента индикатора 30-45мА
Управление микросхемой.
Типовая схема включения
Для загрузки данных в микросхему используется последовательный пакет длиной 16 бит. Младшие 8 бит являются информационными, следующие 4 задают номер регистра микросхемы, старшие 4 не используются. Первым передается старший бит.
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
|
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Не используется |
Регистр |
Данные |
Адреса регистров
Регистр |
Адрес |
HEX CODE |
||||
D15-D12 |
D11 |
D10 |
D9 |
D8 |
||
Нет операции |
х |
0 |
0 |
0 |
0 |
X0 |
Индикатор 0 |
х |
0 |
0 |
0 |
1 |
X1 |
Индикатор 1 |
х |
0 |
0 |
1 |
0 |
X2 |
Индикатор 2 |
х |
0 |
0 |
1 |
1 |
X3 |
Индикатор 3 |
х |
0 |
1 |
0 |
0 |
X4 |
|
х |
0 |
1 |
0 |
1 |
X5 |
Индикатор 5 |
х |
0 |
1 |
1 |
0 |
X6 |
Индикатор 6 |
х |
0 |
1 |
1 |
1 |
X7 |
Индикатор 7 |
х |
|
0 |
0 |
0 |
X8 |
Режим декодирования |
х |
1 |
0 |
0 |
1 |
X9 |
Интенсивность |
х |
1 |
0 |
1 |
0 |
XA |
Рабочие индикаторы |
х |
1 |
0 |
1 |
1 |
XB |
Гашение |
х |
1 |
1 |
0 |
0 |
XC |
Тест индикаторов |
х |
1 |
1 |
1 |
11 |
XF |
Режим декодирования
Микросхема MAX7219 может работать в двух режимах – декодирования BCD кода или непосредственной установки каждого сегмента. Имеется возможность установки режима для отдельных индикаторов. Делается это с помощью регистра режима декодировании. При записи в этот регистр, каждый разряд отвечает за отдельный семисегментный индикатор (одну цифру). Если в регистр записаны все 0, тогда декодирование не производится. Некоторые возможные варианты данных, для записи в регистр декодирования приведены в таблице.
Режим декодирования |
D7 |
D6 |
D5 |
D4 |
D3 |
|
D1 |
D0 |
HEX CODE |
Нет декодирования |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
00 |
Декодирование в индикаторах 0-3. |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0F |
Декодирование во всех индикаторах |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
FF |
Интенсивность свечения.
MAX7219/7221 позволяет задавать интенсивность свечения индикаторов, путем изменения скважности импульсов, реализующих режим динамической индикации. Для этого в соответствующий регистр заносится нужное значение. Для записи используются только 4 младших бита данных.
Соотношение цикла |
D4-D7 |
D3 |
D2 |
D1 |
D0 |
HEX CODE |
|
MAX7219 |
MAX7221 |
||||||
1/32 |
1/16 |
x |
0 |
0 |
0 |
0 |
X0 |
3/32 |
2/16 |
x |
0 |
0 |
0 |
1 |
X1 |
5/32 |
3/16 |
x |
0 |
0 |
1 |
0 |
|
7/32 |
4/16 |
x |
0 |
0 |
1 |
1 |
X3 |
9/32 |
5/16 |
x |
0 |
1 |
0 |
0 |
X4 |
11/32 |
6/16 |
x |
0 |
1 |
0 |
1 |
X5 |
13/32 |
7/16 |
x |
0 |
1 |
1 |
0 |
X6 |
15/32 |
8/16 |
x |
0 |
1 |
1 |
1 |
X7 |
19/32 |
9/16 |
x |
1 |
0 |
0 |
0 |
X8 |
17/32 |
10/16 |
x |
1 |
0 |
0 |
1 |
X9 |
21/32 |
11/16 |
x |
1 |
0 |
1 |
0 |
XA |
23/32 |
12/16 |
x |
1 |
0 |
1 |
1 |
XB |
25/32 |
13/16 |
x |
1 |
1 |
0 |
0 |
XC |
27/32 |
14/16 |
x |
1 |
1 |
0 |
1 |
XD |
29/32 |
15/16 |
x |
1 |
1 |
1 |
0 |
XE |
31/32 |
15/16 |
x |
1 |
1 |
1 |
1 |
XF |
Использование индикаторов
При работе микросхемы MAX7219 и MAX7221 позволяют использовать не все 8 индикаторов, а только необходимое количество. При этом отсчет начинается с 0 индикатора. Для задания используется 3 младших байта данных.
Индикатор |
D3-D7 |
D2 |
D1 |
D0 |
HEX CODE |
0 |
x |
0 |
0 |
0 |
X0 |
0,1 |
x |
0 |
0 |
1 |
X1 |
0,1,2 |
x |
0 |
1 |
0 |
X2 |
0,1,2,3 |
x |
0 |
1 |
1 |
X3 |
0,1,2,3,4 |
x |
1 |
0 |
0 |
X4 |
0,1,2,3,4,5 |
x |
1 |
0 |
1 |
X5 |
0,1,2,3,4,5,6 |
x |
1 |
1 |
0 |
X6 |
0,1,2,3,4,5,6,7 |
x |
1 |
1 |
1 |
X7 |
Тест дисплея
При записи в регистр теста единицы в младший разряд, микросхема включает все индикаторы. Это позволяет проверить работоспособность схемы и LED индикаторов.
Каскадирование индикаторов
Микросхемы MAX7219/7221 допускают каскадное включение. При этом информация передается последовательно из микросхемы в микросхему. Для целей недопущения искажения индикации, может быть использован регистр – Нет операции. При его задействовании микросхемы не производят никаких действий с индикаторами.
Выбор резистора Rset.
Для задания тока через отдельный сегмент, используется вход ISET, к которому подключается резистор Rset. Выбрать номинал резистора в кОм можно по таблице:
Ток через сегмент (мА) |
Напряжение питания индикатора (В) |
||||
1.5 |
2.0 |
2. 5 |
3.0 |
3.5 |
|
40 |
12.2 |
11.8 |
11.0 |
10.6 |
9.69 |
30 |
17.8 |
17.1 |
15.8 |
15.0 |
14.0 |
20 |
29. 8 |
28.0 |
25.9 |
24.5 |
22.6 |
10 |
66.7 |
63.7 |
59.3 |
55.4 |
51.2 |
Еще по теме:
Модуль семисегментных индикаторов
Работа с драйвером индикаторов MAX7219
You have no rights to post comments
Максимально универсальный семисегментный дисплей. Часть первая — Hardware / Хабр
Случилось так, что по наследству мне досталась целая коробка семисегментных индикаторов с гордой надписью «Комплект часы». Давно хотелось пустить её содержимое в дело, а когда дошли руки — оказалось, что внутри целый зоопарк разномастных индикаторов, разных размеров, цветов, с общим катодом и с общим анодом. По количеству штук так двадцать. И чтобы не пилить «очередные часы» пришла идея сделать, собственно, сабж — максимально универсальный семисегментный дисплей.
Что из этого получилось — под катом.
Disclaimer
Описанные ниже устройства являются довольно нишевыми, сделаны мною just for fun, но примененный подход может быть использован для решения аналогичной задачи универсализации там, где это потребуется. Текст разбавлю пояснениями для начинающих. Основная цель — спроектировать единую плату под все имеющиеся индикаторы и различные идеи их использования.
Статья получилась объемная, так что я разделил hardware и software части. К вашему вниманию часть первая — hardware.
Постановка задачи
Что я понимаю под максимальной универсальностью? Спроектировать модуль, с помощью которого или его комбинаций можно создать любой (или практически любой, в разумных пределах) дисплей для отображение информации с использованием этих самых семисегментных индикаторов. В голову приходит сразу с десяток применений — часы, конечно же, куда без них; туда же таймеры, счетчики чего угодно; термометры; табло для разных игр; дисплеи для отображения цифровой информации — курсов валют, индексов бирж и т.п. В общих чертах задача абсолютно тривиальная, но усложняется зоопарком типов индикаторов. В наличии одноразрядные китайские индикаторы с размером цифры 2.3 дюйма (тип FJ23101, четыре светодиода на сегмент) и 3 дюйма (тип CL-30011, пять светодиодов на сегмент), разных цветов и с различным типом подключения — с общим катодом и с общим анодом. Чтобы покрыть использование всех этих типов пришлось посидеть над схемой и разводкой, которая давала бы возможность без изменения топологии печатной платы управлять разными индикаторами. Поискав вечерок в интернете мне не удалось найти универсальных решений или схем, что и стало поводом для написания данной статьи.
По приведенным примерам использования становится понятно, что модуль должен поддерживать различную разрядность, от одной цифры для простых счетчиков событий, до шести для индексов некоторых финансовых бирж. Я решил ограничиться двумя цифрами для большего трехдюймового размера и тремя для меньшего, с возможностью подключения еще одного модуля в виде slave-а.
При выборе управляющей части долго думать не пришлось, выбор сразу пал на готовые модули ESP-07 на контроллере ESP8266 от Espressif. Дешевизна и простота использования этих модулей, возможность легкого подключения к Интернету, обширная комьюнити разработчиков и элементарность программирования этого контроллера отмели все другие варианты.
Приступим к деталям
Начнем с питания семисегментных индикаторов большого размера, где каждый сегмент представляет собой цепочку из нескольких последовательно включенных светодиодов. Такие дисплеи уже не получится зажечь «цифровыми» уровнями напряжения, так как падение на цепочке светодиодов больше этого значения. Конкретное значение указывается в даташите на дисплей, оно зависит от характеристик светодиодов, цвета и их количества и может варьироваться от 6 до 12 Вольт. Ток через каждый сегмент также превышает допустимые значения тока через отдельный пин для большинства контроллеров и составляет от 20 до 50 мА. Соответственно, нужно использовать напряжение 12 Вольт и коммутирующие ключи для управления сегментами и общими выводами. Также не стоит забывать о динамической индикации — последовательном переключении разрядов с частотой превышающей частоту восприятия глаза человека. Это позволяет значительно снизить энергопотребление практически без потери визуальной яркости дисплея.
Общее питание было решено брать от порта USB, как наиболее универсального стандарта на данный момент. После непродолжительного гугления я выбрал готовый модуль повышающего DC-DC преобразователя на МТ3608. Он компактный, дешевый (<0.5$), регулируемый, с достаточно высоким КПД — всё что нужно для наших целей. От резервного питания отказался, так как под рукой есть Интернет, где можно получить актуальную информацию в любой момент.
Питание цифровой части обеспечит линейный low-dropout стабилизатор LM1117-3. 3, классическое решение для нетребовательных применений.
Теперь по транзисторным ключам.
Для управления индикатором с общим катодом на сегменты нужно подавать плюс питания, общий контакт, катод, подключить к земле. Для данных целей удобно использовать микросхемы источников тока (source drivers IC), как пример UDN2981. На картинке ниже подключение индикатора к драйверу и упрощенная схема одной ячейки для лучшего понимания пути прохождения тока. Стоит заметить, что в классической схеме должны быть токоограничивающие резисторы в цепи каждого сегмента, они упущены по причинам использования другого метода ограничения тока — МАХ7219 имеет изменять скважность управляющих импульсов, что в сумме с возможность регулировки напряжения питания индикаторов даст необходимый результат.
Для индикаторов с общим анодом — наоборот, общий контакт подключается к плюсу питания, а сегменты коммутируются на землю. В плане управления индикаторы с общим анодом более простые, так как не требуют коммутации высокого напряжения, по этой причине они более распространены. Для управления сегментами удобно использовать микросхему-массив составных транзисторов Дарлингтона (Darlington Transistor Arrays), например всеми любимую ULN2803.
Значительным преимуществом перед UDN2981 является стоимость, которая в разы меньше. На картинке ниже подключение индикатора к драйверу и упрощенная схема одной ячейки.
Можно заметить, что верхние части схем очень схожи. Пара драйверов UDN2981 и ULN2803 подобрана неспроста. Относительно ножек вход/выход они pin-to-pin совместимы. Это дает возможность сделать универсальное посадочное место на плате добавив всего несколько перемычек под запайку для ножек питания. Бинго!
Чтобы упростить задачу динамической индикации я решил не изобретать велосипед, не городить 595-е сдвиговые регистры, а взять надежное и проверенное решение — специализированный драйвер семисегментного дисплея MAX7219. Эта микросхема умеет хранить во внутренней памяти до восьми цифр и самостоятельно коммутировать разряды с заранее установленной яркостью. По этой причине и не нужны резисторы последовательно с каждым сегментом. Управляется драйвер по шине SPI. Как по мне, микросхема имеет всего один недостаток — высокую стоимость. Имела. Пришли китайцы и наклепали полный функциональный аналог со стоимостью в несколько центов. Название такое же, правда маркировка отличается, отсутствует оригинальный логотип Maxim. В работе отличий не замечено, временные диаграммы такие же, не греется, отказов пока не было. Но для ответственных применений все-таки рекомендую ставить дорогой оригинал.
Вот такой набор MAX7219-MATRIX-KIT можно купить на Ali и в локальных магазинах для ардуинщиков по цене в четыре раза ниже оригинального драйвера MAX7219. Да-да, вы меня правильно поняли, набор с матрицей, платой и рассыпухой. Дешевле. В четыре раза. Выбор очевиден же?
Пока всё звучит очень хорошо и просто, берём драйвер дисплея, который всё делает за нас, в зависимости от типа индикатора ставим нужные ключи и вуа-ля! Все почти так и есть, кроме одного «но». MAX7219 рассчитан на работу с дисплеями с общим катодом с напряжением сегмента до 5В и никак иначе. Что это дает в сухом остатке? Перебирая разряды индикаторов драйвер подключает их на землю, поддерживая высокий уровень на катодах остальных разрядов. А теперь вернемся к схемам выше и проанализируем, что будет в случае с индикатором с общим анодом.
Нетрудно понять, что мы получим инверсию — нужный разряд будет выключен, все остальные — активные. Вместо динамической индикации на дисплее будет сплошной засвет от соседних разрядов. Чтобы избежать такой ситуации между контроллером и драйвером нужно добавить микросхему инвертирующую логические уровни. Так как максимальное количество разрядов шесть, гуглим «hex inverter» и тут же находим 74hc04. Отлично, а для общего катода вместо микросхемы сделаем перемычки или можно использовать pin-to-pin совместимую микросхему-буфер 74als34/74as34 (hex noninverter, но обязательно с выходом push-pull, открытый коллектор/сток типа 74hc07/74als35 работать не будет из-за отсутствия подтяжки к питанию).
В итоге имеем финальные схемы подключения индикаторов. Для общего катода все просто — драйвер плюс ключи способные подавать на сегменты повышенное напряжение. В даташите на MAX7219 приводится схема подключения индикаторов размера 2.3 дюйма и все это запитано от 5 Вольт, но мои экземпляры наотрез отказались работать при таком низком напряжении, сегмент начинал слабо светиться при подаче 7.2В (1.8В на светодиод). Катоды подключены напрямую к MAX7219, контроллер может прокачивать через себя от 320мА на каждый канал (>45мА на сегмент), чего с головой достаточно для данных типоразмеров индикаторов.
Для общего анода все немного сложнее. Тут уже нужно использовать разнотипные ключи для верхнего и для нижнего плечей плюс инвертирующий буфер для управления разрядами. Инвертирование сигналов для сегментов получаем автоматически при использовании ULN2803.
Как видим, со стороны драйвера MAX7219 и управляющего всем этим ESP8266 нет никакой разницы какой именно тип индикатора установлен в модуле, модифицировать прошивку не требуется.
Замечу, что при использовании внешних драйверов встроенное в контроллер ограничение тока сегментов (которое задается резистором на входе Iset) корректно работать не будет, поэтому интенсивность будем регулировать напряжением питания при максимальной скважности от MAX7219. Драйвер позволяет устанавливать интенсивность скважностью встроенного ШИМ генератора от 1/32 до 31/32 с шагом 1/16.
Для управляющей части на ESP8266 ничего выдумывать не нужно, берем типовое включение модуля, заводим линии SPI на MAX7219, UART для прошивки на внешний разъем. Дополнительно решил добавить преобразователь протокола UART в virtual COM port через USB, его устанавливать необязательно, но места на плате предостаточно, пускай будет такая возможность. Как преобразователь я выбрал СН340, как максимально простое и бюджетное решение. В версии чипа СН340G преобразователь даже не требует частотозадающего кварца, он уже встроен в конвертер, а из обвеса всего пара конденсаторов, проще не бывает.
Полная схема в хорошем качестве тут.
Со схемой определились, теперь можно приступать к топологии печатной платы. Как я уже упоминал, все эти заморочки именно через плату. Хотелось заказать партию плат на нормальном производстве под все вышеперечисленные устройства и не дорабатывать их по месту напильником и скальпелем. После непродолжительных размышлений на плате вырисовались аж целых восемь посадочных мест под семисегментные индикаторы:
- По одному для 2.3″ и 3″ по центру платы — для дисплея с одной цифрой
- По два для 2.3″ и 3″ — для дисплея с двумя цифрами
- Три для 2.3″ — соответственно, для дисплея с тремя цифрами
По краям платы расположены контакты расширения — для подключения справа от ведущего еще одного аналогичного ведомого модуля, но без схемы управления и питания, только индикаторы.
Такая комбинация позволяет расширить разрядность до шести цифр, а так же комбинируя расположение и размер индикаторов изготовить табло для различных, предположим, настольных игр и, конечно же, часы! На контакты продублированы сигналы управления всеми сегментами и выведены линии подключения 3 и 4 разряда для трехдюймовок, и 4, 5 и 6 разряд для двухдюймовок.
Дополнительно, два оставшихся свободных канала MAX7219 подключены к двум цепочкам дискретных светодиодов, расположенных над и под индикаторами. Их, например, можно будет использовать для фоновой подсветки, так сказать эффект ambilight.
Размер платы выбран таким образом, чтобы она не выходила за края индикаторов. В таком случае можно скомбинировать дисплей с одинаковыми расстояниями между цифрами для бо́льших и 6ти-разрядный для меньших индикаторов.
По углам платы расположены четыре отверстия под болт М3 для крепления модуля к несущей конструкции.
Микросхемы, если это было возможно, выбраны в выводных корпусах DIP, так как вопрос миниатюризации для данного устройства не актуален, а на плате они выглядят уже почти стимпанково, на фоне привычных BGA монстров. Это придает особого шарма, как у ламповых усилителей.
Посадочное место под модуль ESP-07 также pin-to-pin совместимо с модулями ESP-12S/E/F.
Плата проектировалась за два вечера, по этой причине использовался простой принцип разводки как у автороутеров — разделение горизонтальных и вертикальных линий на разные слои. В итоге плата получилась двухсторонняя, несложная и визуально красивая.
Плата была отправлена в производство как раз в канун китайского Весеннего Фестиваля и карантинных мер в КНР. Рассматривал три популярные площадки для изготовления мелкосерийных прототипов — PCBway, Seeed и JLCpcb. На последней стоимость получилась на 20 долларов дешевле (при партии в 20 шт) и значимым плюсом для меня было то, что фабрика не закрывалась на праздничную неделю. Суммарная стоимость составила 44 доллара, с учетом доставки 21$ и купона на скидку -5$. В пересчете на плату — чуть больше 2 долларов за штуку. Несмотря на разгар эпидемии коронавируса, от отправки gerber-ов на фабрику к моменту получения прошел 21 день. Качество плат на высоте.
За время пока в Китае изготавливались платы, в местном рекламном агентстве были заказаны основы из прозрачного акрила, куда можно закрепить платы и светорассеиватель. Теперь можно посмотреть, что получилось из задуманного.
Вот так выглядит вариант платы, запаянной под индикаторы с общим катодом. На фото указаны названия микросхем и обведены перемычки под запайку.
А вот так — под индикаторы с общим анодом.
На фото ниже различные комбинации индикаторов разных размеров. Как вы можете понять, их также можно удвоить, добавив slave-модуль.
Далее осталось только написать скрипт под конкретную реализацию, чем и займемся в следующей части.
Всем спасибо за внимание!
P.S.: Если кто-то заинтересовался проектом — пишите в личку, осталось еще с десяток плат или могу выслать gerber-файлы.
7segmentdisplay — Драйвер для 2-разрядного 7-сегментного дисплея
Да, я тоже сначала не знал, как он называется, но то, что вам нужно, называется драйвером светодиодного дисплея. Я погуглил «7-сегментный драйвер дисплея», добрался до Mouser.com (кстати, это еще один хороший сайт для электроники), но это был драйвер ЖК-дисплея. Итак, я поднялся на уровень выше и в микросхемах драйверов вижу драйверы светодиодных дисплеев, бинго.
В Digikey, на их странице микросхем, я просто нажал ctrl+F для «Дисплей» (драйверы) и, конечно же, там была только 1 категория. Оттуда я предлагаю вам сначала сузить результаты на основе конфигурации — вы захотите выбрать как можно больше, потому что разные производители называют это по-разному, например, «7 сегментов + DP» или «8 сегментов» и т. Д., Все из которых будет хорошо работать для вас. Это распространенная проблема при поиске компонентов электроники у многих поставщиков, когда вы начинаете сужать результаты, давайте как можно более широкие результаты — вы всегда можете сузить их позже, например, когда вы выбираете интерфейс, а затем сортируете по цене
Еще одна вещь, на которую следует обратить внимание, это то, что рейтинги на Digikey не всегда точны. Например, некоторые микросхемы показывают номинальный ток в микроамперах, но это ток покоя, когда он в основном выключен и не управляет светодиодами. Когда ваши возможности становятся ограниченными или цена становится огромной, вернитесь и поставьте под сомнение свои первоначальные предположения.
Есть драйверы, которые принимают серийный номер и делают несколько цифр, но для них вы никогда не доберетесь до отметки ниже 5 долларов. Также я думаю, что серийный номер может слишком усложнить ситуацию, у вас здесь только 2 цифры, так что не так много данных. Кроме того, все микросхемы стоимостью менее 3 долларов выполняют BCD, не выполняя никакой обработки в этом ценовом диапазоне. Если у вас есть контакты, я бы просто использовал одноразрядный 7-сегментный декодер/драйвер, подключил обе цифры к одним и тем же выходам, и вы просто установили, какая цифра активна, включив 1 катод или другой. Взгляните на CD54HC4511 от TI, в техническом описании объясняется все, что вам нужно знать — вам просто нужно его прочитать. Биты BLanking, LampTest и LatchEnable на самом деле не нужны для включения и выключения с помощью микроконтроллера, вы можете просто подключить их к соответствующим + и — рельсам, и тогда он будет работать, пока ваша плата включена. . Не забудьте про резистор, он не нужен для каждого светодиода, только общий катод. Вы установите ток и, следовательно, яркость с помощью этого резистора — сначала рассчитайте значения, которые дают вам минимальный / максимальный ток, а затем отрегулируйте, чтобы все выглядело нормально. Таким образом, всего 6 выходных контактов — вы можете уменьшить их до 5 с помощью пары транзисторов (1 PNP и 1 NPN), подключив свой единственный выход к базе обоих транзисторов. Затем транзисторы устанавливают, катод какой цифры активен. Микроконтроллер может очень быстро переключаться между двумя цифрами, задавая для каждой соответствующее значение BCD.
Но если у вас нет пинов, то вам придется раскошелиться на тот, который выполняет последовательные операции и мультиплексирует цифры независимо друг от друга, как этот MC14489B, а затем просто выяснить, как общаться с ним последовательно. Это может быть больше работы, чем стоит 2 контакта на MCU.
7-сегментный индикатор передач MegaShift
7-сегментный индикатор передач MegaShift Нажмите на кнопку меню, расположенную ниже, чтобы быстро найти информацию о MegaSquirt®: Безопасность Информация Поддержка Форум
Форум поддержки |
Щелкните здесь для получения информации, руководств и ссылок MegaSquirt® MegaManual™
7-сегментный индикатор переключения передач MegaShift™
Код MegaShift™ v2. 004+ позволяет пользователю устанавливать состояние четырех светодиодных индикаторов передач. Вместо того, чтобы использовать эти выходы для управления отдельными светодиодами, вы можете использовать их для управления 7-сегментным светодиодом (или ЖК-дисплеем) для отображения текущей передачи в числовом виде.
Для этого вам нужно будет построить схему, используя 7-сегментный светодиод, микросхему драйвера и несколько резисторов (на макетной плате или чем-то подобном). Примеры таких компонентов:
- 7-сегментный светодиод: Digi-Key 160-1576-5-ND, 0,88 долл. США за штуку.
- 4511 чип драйвера: Digi-Key 568-3124-5-ND, 0,61 доллара США каждый.
Вот как эти компоненты должны быть связаны:
Резисторы с R1 по R7 должны быть выбраны так, чтобы ограничить ток до 10 миллиампер (максимум для микросхемы 4511). На самом светодиоде падает ~ 2,1 Вольта.
- При питании 5 В резисторы должны быть не менее (5,0-2,1)/0,010 = 290 Ом
- При напряжении питания 12 В (номинальное) сопротивление резисторов должно быть не менее (14,5–2,1)/0,010 = 1240 Ом.
Резисторы на 1/8 Вт подойдут, но и на ¼ Вт тоже не повредят.
Обратите внимание, что цепи светодиодов на плате GPIO обеспечивают заземление светодиодов. В результате цепи заземлены, когда «включены», и «плавающие», когда «выключены». Для подачи сигнала на микросхему 4511 эти входы должны подтягивать цепи. Это делается путем подключения каждого входа к напряжению питания через резистор 1,0 кОм (R8 — R11 на схеме). Резисторы на 1/8 Вт подойдут, но и на ¼ Вт тоже подойдут.
Обратите внимание, что при таком соединении с подтягиванием:
Так, например, сначала будет установлено как:
- LED1 = «выкл.» — Цепь LED1 не проводит ток, поэтому на нее подается высокий уровень напряжения питания через R8; и, таким образом, 4511 контакт D0 (контакт № 7) имеет высокий уровень,
- LED2 = «включен» — Цепь LED2 работает, поэтому напряжение низкое; и, таким образом, 4511 контакт D1 (контакт № 2) имеет низкий уровень,
- LED3 = «включен» — Цепь LED3 работает, поэтому напряжение низкое; и, таким образом, 4511 контакт D2 (контакт № 3) имеет низкий уровень,
- LED4 = «включен» — Цепь LED4 работает, поэтому напряжение низкое; и, таким образом, 4511 контакт D3 (контакт № 6) имеет низкий уровень.
Затем вы настраиваете оставшиеся светодиодные выходы, чтобы дать соответствующий номер на каждой передаче:
Value Displayed | D1 | D2 | D3 | D4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 | «on» | «on» | «on» | «ON» | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | «OFF» | «на» | «на» | «на» | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
«на» | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
« | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2
Нажмите на ссылки компонентов на соответствующие таблицы данных выше для полного объяснения. Для нейтрали или парковки очевидным выбором является 0. Для передачи заднего хода вы можете использовать любое число, еще не использованное для передачи, или вы можете убрать дисплей. Дисплей может быть настроен пользователем на мигание в обратном направлении (вы устанавливаете два шаблона — один может быть пустым — и светодиоды будут чередоваться между ними один раз в секунду). Обратите внимание, что десятичная точка («DP» — контакт № 4 7-сегментного дисплея) не подключена. Вы можете использовать один из свободных портов, чтобы сигнализировать о какой-либо функции с помощью этого светодиода, или вы можете привязать его к выходу TCC (с резистором), чтобы сигнализировать о состоянии TCC. Контроллеры MegaSquirt ® , MicroSquirt ® и MegaShift™ являются экспериментальными устройствами, предназначенными для образовательных целей. Контроллеры MegaSquirt ® и MicroSquirt ® не предназначены для продажи и использования на транспортных средствах с контролируемым уровнем загрязнения. |