7-сегментный индикатор к Ардуино

13-12-2020, 16:27 2 комментариев
Сегодня поговорим о том, как подключить 7 сегментный индикатор к Ардуино и в целом об особенностях этого механизма. Речь идет об устройстве отображения цифровой информации, а конкретнее - о наборе обычных светодиодов, которые собраны в одном корпусе, выложены в форме «8» (семь индикаторов-полосок и один круг) в особом порядке, что дает возможность выводить на экран арабские цифры от 0 до 9.

Как это проделать практически? Если говорить простыми словами, тут важна комбинация включения ∕ выключения определенных сегментов. Для цифры «1», например, включаем B и C (так отображаются для наглядности компоненты), а для остальных значений смотрим комбинации в таблице:
Для справки! Отличительными характеристиками 7-сегментных цифровых индикаторов можно назвать: количество разрядов в одном корпусе (одноразрядные, 2-разрядные, 3-разрядные, 4-разрядные), цвет отображаемых данных (красный, зелёный), высота  знаков (7,62 - 45 мм). Кроме сегментов с цифрами, некоторые устройства могут иметь одну или две точки - разделители дробных чисел.

Принципиальная схема подключения будет выглядеть следующим образом:

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

Распиновка 4-разрядного индикатора выглядит так:

Важно! Тут все двенадцать выводов индикатора следует соединить с выводами на плате.

С железом разобрались, теперь приступим к программированию. Для тестирования и простой проверки можно использовать стандартный вариант – готовый скетч Blink (Файл/Примеры/Basics/Blink). Главное - устанавливаем в качестве проверочного светодиода любой из используемых портов, например, четвертый:
int led4 = 4;

Для вывода сложных цифр можно прописать уже иной код. Разберем на примере скетча для «0»:
#define FIRST_SEGMENT_PIN   2
#define SEGMENT_COUNT       8

byte number0 = 0b01110111;

void setup() {
  for (int i = 0; i < SEGMENT_COUNT; ++i)
    pinMode(i + FIRST_SEGMENT_PIN, OUTPUT);
}

void loop() {
  int mask = number0;
  // для каждого из 7 сегментов индикатора определяем:
  // должен ли он быть включён. 
  // Для этого считываем бит, соответствующий текущему
  // сегменту «i». Истина — он установлен (1), ложь — нет (0)
  for (int i = 0; i < SEGMENT_COUNT; ++i) {
    boolean enableSegment = bitRead(mask, i);
    // включаем/выключаем сегмент на основе полученного значения
    digitalWrite(i + FIRST_SEGMENT_PIN, enableSegment);
  }
}

Как всегда, при проектировании и работе с подобными программными кодами, облегчить этапы программирования (особенно для начинающих юзеров) поможет специализированная библиотека. В этом конкретном случае – fDigitsSegtPin. Софт можно инсталлировать при помощи менеджера библиотек. Подключите его (как мы ранее описывали в наших статьях), укажите все выводы по порядку (!!) и затем залейте скетч:
#include <fDigitsSegtPin.h>

fDigitsSegtPin Display(10, 9, 13, 8, 12, 3, 7, 4, 5, 11, 6, 2);

void setup() {
    Display.begin();
    Display.doPrint_lastDot = 1;
    Display.doPrint_firstZero = 1;
    Display.doReport_overRange = 0;
}

void loop() {
    Display.print(1234);
}
Подключение семисегментного индикатора к Arduino не является особо сложным процессом, но требует определенных навыков и терпения. Схем в сети очень много, библиотеки также имеются, потому «одолеть» азы под силу каждому! Удачи вам в этом!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

Тема нашей сегодняшней статьи – подключение датчика сердечного ритма AD8232 к Ардуино. Про целесообразность и практичность подобного устройства много говорить...

Модуль энкодер KY-040 является электромеханическим устройством, а точнее - датчиком угла поворота и вращения оси различных девайсов. Непосредственно сам прибор...

Сегодня рассматриваем подключение VL53L0X к Ардуино, а также основные особенности этого устройства. Датчик выбран нами для обзора не случайно – он вполне...

В этой статье мы рассмотрим подключение ADS1115 к Ардуино. Речь идет о 16-битном аналого-цифровом преобразователе, оснащенном 4 входами непосредственно для...

2 комментария
  1. ymmm
    5 октября 2022 16:26 ymmm

    jmmmmmmmmmmmmmmmmmmmmmmmmm

    replyОтветить
  2. g
    24 ноября 2022 17:34 g

    Спс за сайт!

    replyОтветить
Оставить комментарий