TM1637 4-Разрядный 7-Сегментный Индикатор: Полное Руководство по Подключению к Arduino
Нужно вывести цифры на Arduino без монстра из 12 проводов? TM1637 — драйвер 4-разрядного 7-сегментного индикатора с 2-проводным интерфейсом (CLK + DIO). Дешево, компактно, библиотеки есть. Разберем пины, работу, библиотеку, проект часов с DS3231 (RTC).
Что такое TM1637?
Микросхема-драйвер (Titan Micro / клоны) для управления общим анодом 4-разрядного 7-сегментного индикатора (0.36″ / 0.56″). Внутри: сдвиговый регистр, PWM для яркости (8 уровней), сканирование разрядов, встроенный генератор. Интерфейс: 2-проводной синхронный (CLK, DIO) — похож на I2C, но проще, без адресации. Питание 3.3–5.5 В. Ток ~80 мА (макс. яркость, все сегменты). Температура -10…+80 °C.
Распиновка модуля TM1637 (4 пина)
| Пин модуля | Функция | Arduino (пример) |
|---|---|---|
| VCC | Питание +3.3…5.5 В | 5V (или 3.3V) |
| GND | Земля | GND |
| DIO | Данные (вход/выход) | D3 (любой GPIO) |
| CLK | Тактирование (вход) | D2 (любой GPIO) |
Никаких жестких привязок к пинам Arduino — любой цифровой. Меняйте в коде.
Как работает TM1637
Протокол: старт (DIO↓ при CLK↑) → байт команды → данные → стоп (DIO↑ при CLK↑). Команды: запись данных в дисплей (адрес + байты сегментов), управление яркостью, вкл/выкл, тест. Библиотека скрывает протокол. Вы передаете число → библиотека кодирует в сегменты (0-9, A-F, минус, точки) → шлет в TM1637 → он сканирует разряды с PWM-яркостью.
Подключение к Arduino UNO
- VCC → 5V
- GND → GND
- DIO → D3
- CLK → D2
Никаких резисторов, конденсаторов не нужно (на модуле есть).
Библиотека и установка
Лучшая: TM1637Display by Avishay Orpaz (в Менеджере библиотек Arduino IDE: Sketch → Include Library → Manage Libraries → «TM1637» → Install «TM1637Display by Avishay Orpaz»). Альтернатива: «TM1637» by Seeed Studio (старее).
Основные функции библиотеки
TM1637Display display(CLK, DIO);
display.setBrightness(0x0f); // 0x00-0x0f (8 уровней)
display.showNumberDec(1234, false, 4, 0); // число, leading zeros, длина, позиция
display.showNumberDecEx(1234, 0b01000000, false, 4, 0); // с точкой (битовая маска точек)
display.setSegments(segments_array, length, pos); // сырые сегменты (для A-F, спецсимволов)
display.clear(); // очистить
Тестовый скетч (демо функций)
#include
#define CLK 2
#define DIO 3
TM1637Display display(CLK, DIO);
void setup() {
display.setBrightness(7); // средняя яркость
}
void loop() {
// Счетчик 0-9999
for (int i = 0; i < 10000; i++) {
display.showNumberDec(i, true, 4, 0);
delay(10);
}
// Свои символы: tEst
uint8_t seg[] = {0x78, 0x6D, 0x6D, 0x70}; // t, E, s, t (коды сегментов)
display.setSegments(seg);
delay(2000);
// Яркость
for (uint8_t b = 0; b < 16; b++) {
display.setBrightness(b);
display.showNumberDec(b, false, 2, 2);
delay(200);
}
}
Проект: Часы реального времени (RTC) на TM1637 + DS3231
Компоненты
- Arduino Uno/Nano.
- TM1637 модуль.
- DS3231 RTC модуль (I2C, бат. CR2032, точность ±2 ppm/год).
- Провода, макетка.
Подключение DS3231
- VCC → 5V (или 3.3V)
- GND → GND
- SDA → A4 (Uno) / D20 (Mega)
- SCL → A5 (Uno) / D21 (Mega)
Код часов (библиотека RTClib by Adafruit)
#include
#include
#include
#define CLK 2
#define DIO 3
TM1637Display display(CLK, DIO);
RTC_DS3231 rtc;
void setup() {
display.setBrightness(5);
Wire.begin();
if (!rtc.begin()) { while(1); } // ошибка RTC
if (rtc.lostPower()) {
rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // установка по времени компиляции
}
}
void loop() {
DateTime now = rtc.now();
int timeVal = now.hour() * 100 + now.minute(); // HHMM
// Мигающая точка посередине (1Hz)
static bool dot = false;
dot = !dot;
display.showNumberDecEx(timeVal, dot ? 0b01000000 : 0, true, 4, 0);
delay(500);
}
Установите библиотеки: TM1637Display (Avishay Orpaz) + RTClib (Adafruit).
Заключение
TM1637 — лучший способ вывода цифр на Arduino: 2 пина, 8 уровней яркости, встроенное сканирование, дешево ($0.5–1). Идеален для часов, таймеров, счетчиков, измерительных приборов. Библиотека Avishay Orpaz делает работу тривиальной. Парьте с DS3231 — точные часы на батарее годами. Вопросы по кастомизации символов, мультиплексированию нескольких модулей, SPI-версиям — обращайтесь.
Промышленные технологии
- Использование декодера 4511 для 7-сегментного индикатора: практическое руководство по BCD-дисплею
- Индикаторные лампы: от КИП к «Кошачьему глазу»
- Научная нотация на карманном калькуляторе: практическое руководство
- Продвинутый спектральный анализ: интерпретация форм волн и гармоник
- Освоение программирования на C: подробное руководство для начинающих
- Мастерство проектирования цифровых схем: полное руководство
- Основное руководство по выбору держателя 9V батареи
- Счетчик десятичный IC4017: Полное руководство для начинающих
- Керамические субстраты PCB: экспертные знания и лучшие практики проектирования
- Быстрое освоение проектирования PCB в Ultiboard: Полное руководство