Arduino

технологии

7-секционные 4х символьные дисплеи

Такие дисплеи бывают двух видов: с контроллером на базе драйвера ТМ1637 и без него.

Так выглядит 7-секционный дисплей без контроллера:

7-секционный дисплей без контроллера

А вот дисплей с контроллером:

7-секционный дисплей с контроллером

Мы рассмотрим работу с дисплеями с контроллером, так как использовать их удобнее и проще.

Схема подключения: GND - земля, VCC - 5 или 3.3 вольта, CLK и DIO - свободные цифровые пины:

Схема подключения 7-сегментного дисплея с контроллером

Для работы с дисплеем есть готовая библиотека: TM1637.

Подключаем библиотеку, прописываем номера пинов и создаем объект для работы с дисплеем:

#include <TM1637Display.h>

#define CLK 2
#define DIO 3

TM1637Display display(CLK, DIO);

Начнем с простого примера - выведем на дисплей последовательность цифр "1234":

#include <TM1637Display.h>

#define CLK 2
#define DIO 3

TM1637Display display(CLK, DIO);

void setup() 
{
  display.setBrightness(0x0f);
  display.clear();
  display.showNumberDec(1234);
}

void loop() 
{
}

Для этого необходимо сначала задать яркость и очистить дисплей (строки 11 и 12), после чего просто вызвать функцию showNumberDec().

Теперь попробуем вывести время: 23 часа 45 минут. Для этого будем использовать функцию showNumberDecEx(), которая кроме вывода десятичного числа также позволяет вывести двоеточие/точку:

#include <TM1637Display.h>

#define CLK 2
#define DIO 3

TM1637Display display(CLK, DIO);

void setup() 
{
  display.setBrightness(0x0f);
  display.clear();
  display.showNumberDecEx(2345, 0b01000000);
}

void loop() 
{
}

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

23:45

Ну и напоследок выведем слово "done", используя сегменты и функцию setSegments():

#include <TM1637Display.h>

#define CLK 2
#define DIO 3

TM1637Display display(CLK, DIO);

const uint8_t SEG_DONE[] = {
	SEG_B | SEG_C | SEG_D | SEG_E | SEG_G,           // d
	SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,   // O
	SEG_C | SEG_E | SEG_G,                           // n
	SEG_A | SEG_D | SEG_E | SEG_F | SEG_G            // E
	};

void setup() 
{
  display.setBrightness(0x0f);
  display.clear();
  display.setSegments(SEG_DONE);
}

void loop() 
{
}

done

В справочнике на сайте есть подробное описание всех функций библиотеки: TM1637.

Купить дисплеи с контроллером можно здесь, здесь или здесь.

Если вам все-таки понадобился дисплей без контроллера, то посмотрите здесь или здесь.

Еще варианты дисплеев есть в каталоге оборудования: 7-ми секционные дисплеи.