Подключаем LED индикатор на базе драйвера TM1637 к плате Arduino Nano в среде программирования Arduino IDE.

В данном уроке мы с Вами подключим семисегментный индикатор на базе драйвера ТМ1637 к плате Arduino Nano. Сам индикатор выглядит следующим образом: Данный дисплей имеет следующие характеристики:
  • Напряжение питания – 3.3 – 5.5 В;
  • Ток потребления – 0.2 – 80 мА;
  • Количество сегментов – 4 с десятичной точкой в каждом разряде;
  • Наличие разделительных точек;
  • Интерфейс – двухпроводной последовательный;
  • Регулируемая яркость – 7 уровней;
Для подключения дисплея к микроконтроллеру используют два контакта :
  • DIO –отправка данных;
  • CLK – синхронизация.
Подключать дисплей к микроконтроллеру Arduino Nano будем следующим образом: DIO — 2 ножка CLK — 3 ножка Программный код:
#include <TM1637.h>
int8_t DispMSG[] = {0, 0, 0, 0}; // Настройка символов для последующего вывода на дисплей
//Определяем ножки для подключения к плате Arduino
#define CLK 3
#define DIO 2
//Создаём объект класса TM1637, в качестве параметров
//передаём номера ножек подключения
TM1637 tm1637(CLK, DIO);
int i=0;
int t[4]={0,0,0,0};

void num(unsigned int value){
t[3]=((value/1000)%10);
t[2]=((value/100)%10);
t[1]=((value/10)%10);
t[0]=(value%10);
}

void setup(){
//Инициализация модуля
tm1637.init();
//Установка яркости свечения сегментов
/*
0 Тёмный
-----------
7 Яркий
*/
tm1637.set(2);
//Задание на выключение разделителя
tm1637.point(false);
//Задание на включение разделителя
// tm1637.point(true);
tm1637.display(DispMSG);
//Задержка
delay(1000);
}


void loop(){
num(i);
//Выводим массив на дисплей
tm1637.display(0,t[3]);
tm1637.display(1,t[2]);
tm1637.display(2,t[1]);
tm1637.display(3,t[0]);
//Задержка
delay(500);
i++;
if (i>=9999){
i=0;
}

Кроме вывода числовых символов на экран, так же можно выводить и тестовые значения, для  этого внутри библиотеки уже есть готовая таблица:

10 — А
11-b
12-C
13-d
14-E
15-F

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

так, если мы захотим вывести символ b — нам нужно будем подать логический уровень на все входа кроме A и B, таким образом у нас выходит 0bx01111100, другими словами:

Теперь надо поместить код данного символа 0x7C в специальный массив:

static int8_t TubeTab[] ={ ……. };

который находиться в файле ТМ1637.срр в библиотеке ТМ637. Добавим в конец массива новый символ, Вы сможете  выводить его под номером 16.