Site Loader

Программирование Arduino урок 12 — семисегментный индикатор часть 1

Доброго времени суток! После моего затяжного и вынужденного перерыва, продолжим освоение курса «Программирование Ардуино». В одном из наших предыдущих уроков, мы уже работали с последовательностью светодиодов, теперь пора переходить к следующему этапу обучения. Темой сегодняшней статьи будет – 7-сегментный индикатор.

Знакомство с 7-сегментным индикатором будет состоять из двух частей. В первой части мы поверхностно «пробежимся» по теоретической составляющей, поработаем с «железом» и напишем простенькие программки.

Прошлый раз мы работали с последовательностью из 8 светодиодов, сегодня их также будет 8 (7 – светодиодных полосок и 1 точка). В отличии от предыдущей последовательности, элементы этого набора не выстроенные в ряд (друг за дружкой), а расположены в определённом порядке. Благодаря чему используя лишь один компонент можно вывести 10 цифр (от 0 до 9).

Еще одно существенное отличие, что выделяет данный индикатор на фоне простых светодиодов. У него общий катод (вернее две равноценные ножки 3 и 8, на который заведен катод). Достаточно всего лишь соединить один из катодов с землей (

GND). Аноды у всех элементов индикатора индивидуальные.

Небольшое отступление. Все выше сказанное относится к 7-сегментным индикаторам с общим катодом. Однако существуют индикаторы с общим анодом. Подключение таких индикаторов имеет существенные отличия, поэтому прошу не путать «грешное с праведным». Необходимо четко понимать, какой именно тип семисегментника у вас в руках!

Кроме отличий между простыми светодиодами и 7-сегментными индикаторами, есть и общие черты. Например: индикаторы, как и светодиоды, можно смонтировать в ряд (последовательность) для отображения двух-, трёх-, четырехзначных чисел (разрядов). Однако не советую сильно заморачиваться по поводу самостоятельной сборки сегментных наборов. В продаже «рядом» с одноразрядными индикаторами, продаются и многоразрядные.

Надеюсь, вы не забыли об необходимости использования токоограничивающих резисторов при подключении светодиодов. Это же относится и к индикаторам: на каждый элемент индикатора должен быть подключен свой резистор. 8 элементов ( 7 + 1) – 8 резисторов.

У меня под рукой оказался семисегментник с маркировкой 5161AS (общий катод). Распиновка контактов:

Принципиальная схема

Как говорил ранее, для того, чтобы включить сегмент «А» подключим к любому общему контакту (3 или 8) «землю», а на вывод 7 подадим 5В питания. Если индикатор с общим анодом, то на анод подаём 5В, а на вывод сегмента «землю»!

Соберём тестовый стенд. Соединяем провода по порядку, начиная с первой ножки, которая идёт на 2-й вывод платы Ардуино. Землю подключим к 8 выводу индикатора.

После того, как стенд собран можно приступать к написанию прошивки.

Для проверки индикатора запустим написанную программу. Выберем элемент «А» и помигаем им.


Теперь помигаем цифрой 2. Для этого включим еще несколько элементов.

Чтобы вывести одну цифру, нужно написать n-число строчек кода. Затруднительно, не находите.

Есть другой путь. Для того, чтобы вывести любую цифру на индикаторе, сначала её нужно представить в виде определенной последовательности бит.

Таблица соответствия.

 

Если у дисплея общий анод, то 1 нужно заменить на 0, а 0 – на 1!

Столбец hex – представление цифры в байтовом виде (более детально поговорим об этом во второй части).

Число в двоичной системе счисления записывается следующим образом: 0b00000000. 0b – двоичная система. Нули означают, что все светодиоды выключены.

При подключении мы задействовали выводы с 2 по 9. Чтобы включить 2 вывод записываем в него единицу =

0b00000001. За точку отвечает четвёртый бит справа. За чёрточку посередине индикатора отвечает самый последний бит.

Давайте напишем пример вывода цифры 0.

Для уменьшения количества набранных строк воспользуемся циклом, который позволяет «перебрать» все 8 бит. Переменной Enable_segment присваивается значение считываемого бита. После этого текущий вывод устанавливается в соответствующий режим (наличия или отсутствия сигнала).

Примечание: функция bitRead() считывает состояние указанного бита и возвращает значение состояния (0 или 1). bitRead(x, n) где, x — число, бит которого необходимо считать; n — номер бита, состояние которого необходимо считать. Нумерация начинается с младшего значащего бита (крайнего правого) с номером 0.

И в завершении первой части напишем небольшой счетчик.

lesson_14_0

На этом всё! Продолжении следует!


ПОДЕЛИТЕСЬ С ДРУЗЬЯМИ!

About alexlevchenko
Ценю в людях честность и открытость. Люблю мастерить разные самоделки. Нравится переводить статьи, ведь кроме того, что узнаешь что-то новое — ещё и даришь другим возможность окунуться в мир самоделок.

7-сегментный индикатор + драйвер MAX7219 = минимальный дисплей для Arduino

Что-то давно не было обзоров про Arduino-мелочевку.
Сегодня дошли руки до этих деталек и решил их «обозреть»

Тех, кого пугают страшные слова из радиотехники — под кат прошу не заглядывать. дабы не терять свое драгоценное время зря.

Для небольших поделок с Ардуино-образными и другими контроллерами есть множество решений по отображению информации.

Ставить можно от простейших светодиодов, до сложных табло и сенсорных панелей.
В простейших устройствах лично мне понравились светодиодные семисегментные индикаторы требуемой разрядности.
Они достаточно яркие, их видно хорошо на большом расстоянии и они достаточно просты в работе.

Если подключать такой индикатор напрямую к микроконтроллеру — тратится очень много дискретных выходов. Для подключения семисегментных и матричных индикаторов по 3-м проводам компания MAXIM разработала контроллеры MAX7219/MAX7221. Вот об этой связке будет мой обзор.

Сразу скажу, что для тех кто не любит паять, продаются готовые индикаторы за смешные деньги


Я такой тоже использовал в одном из своих проектов, но мне не понравились большие габариты дисплея (особенно по высоте).

Для создания универсального контроллера для своего «Умного дома» приобрел индикаторы и микросхемы россыпью.

Итак были приобретены
7-сегментный четырех-разрядные LED индикаторы с общим катодом и высотой цифр 0.4″

Контроллер 8-сегментного индикатора MAX7219 в корпусе DIP24

Индикаторы приехали в Пермь за 33 дня. Были упакованы в простой мягкий пакет. Ножки воткнуты в кусок пенопласта. Почта России их пощадила:

Размеры 40×16. Размер цифры около 10мм


Количество ножек — 12: 7 сегментов/анодов + точка-анод + 4 общих катода по числу разрядов
Шаг между ножками 2.54мм

Даташит нашел только на аналогичный индикатор

Распиновка ножек индикатора

Драйвера MAX7219 приехали за 35 дней тоже в мелком пакете, наколотые на паролонину.

Даташит на MAX7219/7221
Данные микросхемы работают с индикаторами, имеющими общий катод. К одной микросхеме можно подцепить 8 разрядов. Сами микросхемы 7219 можно цеплять друг к другу каскадом. Еще драйвера MAX7219 можно использовать для работы с матричными светодиодными индикаторами 8×8 С микроконтроллером соединяются по 3-х проводному SPI интерфейсу.

Пора теперь собрать вместе индикатор и его драйвер

Так как я делал только прототип микроконтроллера — то собрал все навесным монтажом на макетной плате.


На той же макетке установлен микроконтроллер ATMEGA 328P-PU из этого обзора и NRF24L01 mini из другого моего обзора.

Миниатюрный блок питания и корпус тоже были приобретены ранее на ТАОБАО

Для монтажа мне очень понравился китайский тефлоновый провод сечением 0.1мм. Разделывается он лучше, чем советский МГТФ и изоляция практически не плавится от паяльника.

Монтаж, конечно, не очень аккуратный, но для отладки прототипа сойдет

Плату подключил через переходник USB/RS232, который ранее использовал при программировании Arduino Pro Mini

Готовый прототип контроллера

Следующий шаг — изготовление контроллера на печатной плате.

Выводы:
Связка индикаторы + драйверы вполне рабочая.

Паять или покупать готовое — выбор за вами.
Кот вот тоже сильно удивлен, как можно было потрать столько времени не на сон

Прочитать про мой «Умный дом» можно в моем блоге

Семисегментный индикатор — это… Что такое Семисегментный индикатор?

Семисегме́нтный индика́тор — устройство отображения цифровой информации. Это — наиболее простая реализация индикатора, который может отображать арабские цифры. Для отображения букв используются более сложные многосегментные и матричные индикаторы.

Концепция и внешний вид

Таблица, отображающая все 128 вариантов состояния сегментов Обозначение сегментов индикатора

Семисегментный индикатор, как говорит его название, состоит из семи элементов индикации (сегментов), включающихся и выключающихся по отдельности. Включая их в разных комбинациях, из них можно составить упрощённые изображения арабских цифр. Часто семисегментные индикаторы делают в курсивном начертании.

Цифры, 6, 7 и 9 имеют по два разных представления на семисегментном индикаторе. В ранних калькуляторах Casio и Электроника цифра 0 отображалась в нижней половине индикатора.

Сегменты обозначаются буквами от A до G; восьмой сегмент — десятичная точка (decimal point, DP), предназначенная для отображения дробных чисел.

Изредка на семисегментном индикаторе отображают буквы.

В современных индикаторах светодиоды изготавливают в форме сегментов, поэтому светодиодные индикаторы имеют предельно простую, унифицированную форму: чем меньше разных светодиодов, тем дешевле устройство. В жидкокристаллических, газорязрядных, вакуумно-люминесцентных (катодно-люминесцентных) и других индикаторах дизайнеры находят место для вариации формы сегментов.

История

Чертёж из патента Вуда

Сегментный индикатор был запатентован в 1910 году (U.S. Patent 974 943) Фрэнком Вудом. Эта реализация была восьмисегментной — был дополнительный косой сегмент для отображения четвёрки. Патент был практически забыт — вплоть до 1960-х годов радиолюбителям приходилось применять для отображения цифр знаковые индикаторы тлеющего разряда или просто десять лампочек.

В 1970 году американская компания RCA выпустила семисегментную лампу накаливания «Нумитрон»[1].

Для отображения букв появились четырнадцатисегментные индикаторы и шестнадцатисегментные индикаторы, но сейчас их почти повсеместно заменили матричные (точечные) индикаторы. И лишь там, где нужно отображать только цифровую информацию, семисегментные индикаторы остались незаменимыми — из-за простоты, контраста и узнаваемости.

Реализации

Большинство одноразрядных семисегментных индикаторов устроены на светодиодах, хотя существуют и альтернативы — лампы тлеющего разряда, электровакуумные индикаторы (катодолюминесцентные, накаливаемые), лампы накаливания, жидкие кристаллы и т. д. На больших табло наподобие цен на бензин всё ещё применяются механические индикаторы, или блинкерные индикаторы, переключающиеся с помощью электромагнитов.

В обычном светодиодном индикаторе девять выводов: один идёт к катодам всех сегментов, и остальные восемь — к аноду каждого из сегментов. Эта схема называется «схема с общим катодом», существуют также схемы с общим анодом. Часто делают не один, а два общих вывода на разных концах цоколя — это упрощает разводку, не увеличивая габаритов.

Многоразрядные индикаторы часто работают по динамическому принципу: выводы одноимённых сегментов всех разрядов соединены вместе. Чтобы выводить информацию на такой индикатор, управляющая микросхема должна циклически подавать ток на общие выводы всех разрядов, в то время как на выводы сегментов ток подаётся в зависимости от того, зажжён ли данный сегмент в данном разряде. Таким образом, чтобы получить десятиразрядный экран микрокалькулятора, нужны всего восемнадцать выводов (8 анодов и 10 катодов) — а не 81. Сходным образом сканируется клавиатура калькулятора.

Существуют специальные микросхемы семисегментных дешифраторов, переводящие четырёхбитный код в его семисегментное представление. К примеру, отечественные (КР)514ид1 для индикаторов с общим катодом или (КР)514ид2 с общим анодом. Иногда дешифраторы встраивают прямо в индикатор. В настоящее время, в связи с широким распространением однокристальных микроконтроллеров с GPIO, семисегментные светодиодные индикаторы подключаются напрямую к выводам микроконтроллера.

Часто на ценниках применяются закрашиваемые фломастером сегменты. Также встречаются трафареты в виде семисегментных индикаторов для изображения цен или телефонных номеров.

Отображение букв

Кроме десяти цифр, семисегментные индикаторы способны отображать буквы. Но лишь немногие из букв имеют интуитивно понятное семисегментное представление.

  • В латинице: заглавные A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, строчные a, b, c, d, e, g, h, i, n, ñ, o, q, r, t, u.
  • В кириллице: А, Б, В, Г, г, Е, и, Н, О, о, П, п, Р, С, с, У, Ч, Ы(два разряда), Ь, Э/З.

Поэтому семисегментные индикаторы используют только для отображения простейших сообщений. Например, плеер может выводить:

и т. д.

На перевёрнутом микрокалькуляторе можно получить некоторый диапазон букв, на этом основаны игры с калькулятором.

В массовой культуре

  • Инопланетянин из фильма «Хищник» носил устройство с индикаторами, похожими на семисегментные, но предназначенными для отображения инопланетных цифр, естественно имеющими другое расположение сегментов.
  • Машина времени в фильме «Назад в будущее» имела табло из четырех семисегментных индикаторов с цветами, соответствующими цветам ламп из фильма «Машина времени».

См. также

Примечания

Литература

  • Батушев В. А. Электронные приборы: Учебник для вузов. — 2-е, перераб. и доп. — М.: Высшая школа, 1980. — С. 302-303. — 383 с.

Семисегментный индикатор — это… Что такое Семисегментный индикатор?

Семисегме́нтный индика́тор — устройство отображения цифровой информации. Это — наиболее простая реализация индикатора, который может отображать арабские цифры. Для отображения букв используются более сложные многосегментные и матричные индикаторы.

Концепция и внешний вид

Таблица, отображающая все 128 вариантов состояния сегментов Обозначение сегментов индикатора

Семисегментный индикатор, как говорит его название, состоит из семи элементов индикации (сегментов), включающихся и выключающихся по отдельности. Включая их в разных комбинациях, из них можно составить упрощённые изображения арабских цифр. Часто семисегментные индикаторы делают в курсивном начертании.

Цифры, 6, 7 и 9 имеют по два разных представления на семисегментном индикаторе. В ранних калькуляторах Casio и Электроника цифра 0 отображалась в нижней половине индикатора.

Сегменты обозначаются буквами от A до G; восьмой сегмент — десятичная точка (decimal point, DP), предназначенная для отображения дробных чисел.

Изредка на семисегментном индикаторе отображают буквы.

В современных индикаторах светодиоды изготавливают в форме сегментов, поэтому светодиодные индикаторы имеют предельно простую, унифицированную форму: чем меньше разных светодиодов, тем дешевле устройство. В жидкокристаллических, газорязрядных, вакуумно-люминесцентных (катодно-люминесцентных) и других индикаторах дизайнеры находят место для вариации формы сегментов.

История

Чертёж из патента Вуда

Сегментный индикатор был запатентован в 1910 году (U.S. Patent 974 943) Фрэнком Вудом. Эта реализация была восьмисегментной — был дополнительный косой сегмент для отображения четвёрки. Патент был практически забыт — вплоть до 1960-х годов радиолюбителям приходилось применять для отображения цифр знаковые индикаторы тлеющего разряда или просто десять лампочек.

В 1970 году американская компания RCA выпустила семисегментную лампу накаливания «Нумитрон»[1].

Для отображения букв появились четырнадцатисегментные индикаторы и шестнадцатисегментные индикаторы, но сейчас их почти повсеместно заменили матричные (точечные) индикаторы. И лишь там, где нужно отображать только цифровую информацию, семисегментные индикаторы остались незаменимыми — из-за простоты, контраста и узнаваемости.

Реализации

Большинство одноразрядных семисегментных индикаторов устроены на светодиодах, хотя существуют и альтернативы — лампы тлеющего разряда, электровакуумные индикаторы (катодолюминесцентные, накаливаемые), лампы накаливания, жидкие кристаллы и т. д. На больших табло наподобие цен на бензин всё ещё применяются механические индикаторы, или блинкерные индикаторы, переключающиеся с помощью электромагнитов.

В обычном светодиодном индикаторе девять выводов: один идёт к катодам всех сегментов, и остальные восемь — к аноду каждого из сегментов. Эта схема называется «схема с общим катодом», существуют также схемы с общим анодом. Часто делают не один, а два общих вывода на разных концах цоколя — это упрощает разводку, не увеличивая габаритов.

Многоразрядные индикаторы часто работают по динамическому принципу: выводы одноимённых сегментов всех разрядов соединены вместе. Чтобы выводить информацию на такой индикатор, управляющая микросхема должна циклически подавать ток на общие выводы всех разрядов, в то время как на выводы сегментов ток подаётся в зависимости от того, зажжён ли данный сегмент в данном разряде. Таким образом, чтобы получить десятиразрядный экран микрокалькулятора, нужны всего восемнадцать выводов (8 анодов и 10 катодов) — а не 81. Сходным образом сканируется клавиатура калькулятора.

Существуют специальные микросхемы семисегментных дешифраторов, переводящие четырёхбитный код в его семисегментное представление. К примеру, отечественные (КР)514ид1 для индикаторов с общим катодом или (КР)514ид2 с общим анодом. Иногда дешифраторы встраивают прямо в индикатор. В настоящее время, в связи с широким распространением однокристальных микроконтроллеров с GPIO, семисегментные светодиодные индикаторы подключаются напрямую к выводам микроконтроллера.

Часто на ценниках применяются закрашиваемые фломастером сегменты. Также встречаются трафареты в виде семисегментных индикаторов для изображения цен или телефонных номеров.

Отображение букв

Кроме десяти цифр, семисегментные индикаторы способны отображать буквы. Но лишь немногие из букв имеют интуитивно понятное семисегментное представление.

  • В латинице: заглавные A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, строчные a, b, c, d, e, g, h, i, n, ñ, o, q, r, t, u.
  • В кириллице: А, Б, В, Г, г, Е, и, Н, О, о, П, п, Р, С, с, У, Ч, Ы(два разряда), Ь, Э/З.

Поэтому семисегментные индикаторы используют только для отображения простейших сообщений. Например, плеер может выводить:

и т. д.

На перевёрнутом микрокалькуляторе можно получить некоторый диапазон букв, на этом основаны игры с калькулятором.

В массовой культуре

  • Инопланетянин из фильма «Хищник» носил устройство с индикаторами, похожими на семисегментные, но предназначенными для отображения инопланетных цифр, естественно имеющими другое расположение сегментов.
  • Машина времени в фильме «Назад в будущее» имела табло из четырех семисегментных индикаторов с цветами, соответствующими цветам ламп из фильма «Машина времени».

См. также

Примечания

Литература

  • Батушев В. А. Электронные приборы: Учебник для вузов. — 2-е, перераб. и доп. — М.: Высшая школа, 1980. — С. 302-303. — 383 с.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *