Библиотека TM1637Display
- В менеджере библиотек
- TM1637 by Avishay Orpaz
- Версия
- 1.2.0 · всего 1 версия, первая — 1.2.0
- Платы
- любые — автор не ограничивал
Архивы — копии из официального индекса Arduino, контрольная сумма совпадает. Сверено 19.10.2026.
Четырёхразрядный семисегментный индикатор с двоеточием на TM1637: числа, яркость, свои символы. Два провода.
Модуль с четырьмя цифрами и микросхемой TM1637 подключается двумя сигнальными проводами, CLK и DIO, на любые выводы. Библиотека умеет показывать целые числа с ведущими нулями и без, включать двоеточие для часов и выводить произвольные сегменты — так рисуют буквы и прочерки.
Одноимённых библиотек в менеджере несколько; здесь описана Avishay Orpaz с классом TM1637Display — самая распространённая.
Как скачать и установить
- Через менеджер — самый простой путь. В Arduino IDE: Инструменты → Управлять библиотеками (Ctrl+Shift+I). Введите
TM1637и найдите в списке строку «TM1637 by Avishay Orpaz» — одноимённых библиотек бывает несколько, отличаются они автором. Нажмите «Установить». - Конкретная версия — если в чужом проекте указана не последняя. В той же карточке менеджера рядом с кнопкой есть выпадающий список версий: выберите нужную и нажмите «Установить».
- Из архива — если нет интернета на рабочем компьютере или менеджер не открывается. Скачайте ZIP выше, затем Скетч → Подключить библиотеку → Добавить .ZIP библиотеку и укажите файл. Распаковывать не нужно.
Файл TM1637Display.h отдельно не скачивают: он внутри библиотеки и появляется после установки. Если среда пишет TM1637Display.h: No such file or directory — библиотека не установлена или установлена не та. Как устроен менеджер и куда складываются файлы — в общей статье про библиотеки.
Строка подключения:
#include <TM1637Display.h>Создание объекта — обычно до setup():
TM1637Display display(2, 3); // CLK, DIO
display.setBrightness(5); // в setup(): 0–7Методы
Только то, что нужно в обычном скетче. Сигнатуры сверены с версией 1.2.0.
setBrightness(uint8_t level, bool on = true)- Яркость 0–7; on = false гасит индикатор, не теряя данных.
showNumberDec(int num, bool leadingZeros, uint8_t length, uint8_t pos)- Показать число −999…9999. leadingZeros — нули впереди; length и pos — сколько разрядов и с какого.
showNumberDecEx(int num, uint8_t dots, bool leadingZeros, ...)- То же с точками/двоеточием: dots = 0b01000000 включает двоеточие между второй и третьей цифрой.
showNumberHexEx(uint16_t num, uint8_t dots, ...)- Число в шестнадцатеричном виде.
setSegments(const uint8_t segs[], uint8_t length, uint8_t pos)- Зажечь сегменты напрямую: по байту на разряд, биты A–G. Так выводят буквы и прочерки.
encodeDigit(uint8_t digit)- Байт сегментов для цифры 0–15 — для сборки своих массивов.
clear()- Погасить все разряды.
Пример
#include <TM1637Display.h>
TM1637Display display(2, 3); // CLK, DIO
void setup() {
display.setBrightness(4);
}
void loop() {
// часы из millis(): минуты и секунды, двоеточие мигает раз в секунду
unsigned long s = millis() / 1000;
int mm = (s / 60) % 100;
int ss = s % 60;
uint8_t colon = (millis() % 1000 < 500) ? 0b01000000 : 0;
display.showNumberDecEx(mm * 100 + ss, colon, true);
delay(50);
}Двоеточие — это бит в параметре dots второго разряда, поэтому число собирают как ММСС и включают 0b01000000.
На чём попадаются
Не компилируется: нет TM1637Display
Установлена другая библиотека TM1637 (например, Grove). Ищите в менеджере автора Avishay Orpaz.
Показывает не те цифры или мигает
Слишком длинные провода или плохой контакт на CLK/DIO. Модуль питается от 5 В; на 3,3 В работает, но тусклее.
Отрицательные числа не помещаются
Минус занимает разряд: диапазон −999…9999.