Четырёхразрядный LED-дисплей на драйвере TM1637

Четырёхразрядный LED-дисплей на драйвере TM1637

Семисегментный индикатор на TM1637 занимает всего два цифровых вывода Arduino. Характеристики, подключение и пример часов с DS3231.

Зачем нужен драйвер TM1637

Семисегментные светодиодные индикаторы в сборках по 4 или 8 разрядов остаются популярным способом показать время, показания датчика и другие числа. Раньше такая сборка занимала у Arduino очень много выводов. Модули на микросхеме TM1637 решают эту проблему: кроме питания и земли нужны только два цифровых контакта, а динамическую индикацию драйвер полностью берёт на себя.

Четырёхразрядный индикатор на драйвере TM1637

На плате установлены четыре семисегментных индикатора с общим анодом и разделительные точки для отображения времени. Логические входы совместимы с уровнями 5 и 3.3 В, яркость свечения настраивается программно.

Основные характеристики

Напряжение питания3.3–5.5 В
Ток потребления0.2–80 мА
Число разрядов4, с десятичной точкой в каждом
Размер индикаторов0.36 или 0.56 дюйма
Разделительные точкиесть
Интерфейсдвухпроводной последовательный
Цвет свечениякрасный, синий, жёлтый, белый, зелёный
Яркость7 уровней

Подключение и библиотеки

Для обмена данными служат два вывода модуля: DIO передаёт данные, CLK задаёт синхронизацию. Их можно соединить с любыми двумя цифровыми контактами Arduino.

Схема подключения TM1637 к Arduino

Для дисплея написано несколько библиотек, среди них TM1637, DigitalTube и GyverTM1637. Последняя умеет выводить цифры, буквы, время и бегущую строку, а также содержит визуальные эффекты. Познакомиться с её возможностями удобно на встроенном примере GyverTm1637_Demo, который открывается из меню примеров Arduino IDE.

Пример GyverTm1637_Demo в Arduino IDE

Пример: часы с календарём

Для проекта, показывающего время и дату, понадобятся Arduino Nano, макетная плата, дисплей TM1637, модуль часов реального времени DS3231 и провода.

Схема соединений часов на TM1637 и DS3231

В скетче подключаются GyverTM1637.h, Wire.h, DS1307RTC.h и TimeLib.h, дисплей описан выводами CLK на пине 4 и DIO на пине 5, яркость установлена командой disp.brightness(7). Каждые полсекунды программа считывает время вызовом RTC.read(tm) и переключает состояние двоеточия. Информация сменяется по кругу:

  • секунды в двух правых разрядах, двоеточие мигает;
  • часы и минуты с мигающим двоеточием;
  • день и месяц;
  • год.

Полный цикл занимает около 15 секунд, после чего показ начинается заново. Отдельные цифры выводятся функцией disp.display(разряд, значение).

Если дисплей ничего не показывает

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

← Все статьи