Подключение TM1637 к Arduino
Четырёхразрядный индикатор
TM1637 к Arduino — два сигнальных провода, CLK и DIO, на любые цифровые выводы и питание 5 В.
Схема подключения TM1637 к Arduino
| TM1637 | Arduino Uno |
|---|---|
| CLK | D4 |
| DIO | D5 |
| VCC | 5V |
| GND | GND |
Схема из примера «Arduino Uno: индикатор TM1637 на двух выводах».
Выводы TM1637
| Вывод | Назначение |
|---|---|
| CLK | тактовый сигнал |
| DIO | данные |
| VCC | питание |
| GND | общий провод |
Код для Arduino
#include <TM1637Display.h>
// Индикатор на выводах 4 и 5. Любых: протокол похож на I2C — те же
// старт, стоп и подтверждение, — но адреса в нём нет, и разряды идут
// младшим вперёд. Поэтому на аппаратный контроллер I2C микросхему
// повесить нельзя, и библиотека тактирует выводы вручную.
//
// Отсюда практическое следствие: A4 и A5 остаются свободными для
// настоящей шины, и часы с датчиком собираются без конфликтов.
TM1637Display display(4, 5); // такт, данные
void setup() {
// Яркость и включение — одна команда. Нулевая яркость индикатор не
// гасит, для этого есть отдельный довод.
display.setBrightness(4);
display.clear();
}
void loop() {
unsigned long s = millis() / 1000;
// Минуты и секунды в четырёх разрядах: часы так и делают.
int shown = (s / 60) % 100 * 100 + s % 60;
// Второй довод — ведущие нули. Для часов нужен именно он, иначе
// «09» показывается как « 9». Третий — двоеточие посередине.
display.showNumberDecEx(shown, 0b01000000, true);
delay(200);
}
Скетч можно править и запускать в симуляторе без платы и установки среды.
Что учесть на Arduino
- Библиотека
TM1637Displayне используетWireи аппаратные таймеры, поэтому не мешает ШИМ и другим библиотекам. - Двоеточие между цифрами включается параметром
dots:showNumberDecEx(число, 0b01000000, true).
В железе
Выводы CLK и DIO — любые цифровые. На модуле стоят подтягивающие резисторы, отдельные не нужны.
Частые ошибки при подключении к Arduino
- Перепутать CLK и DIO: дисплей остаётся тёмным.
- Вывести число больше 9999: помещается только четыре разряда, лишнее обрезается.
- Подключение к выводам I2C с библиотекой Wire — TM1637 не отвечает на адрес, это другой протокол.
- Нет вызова
setBrightness()— у части модулей по умолчанию индикатор погашен. - Двоеточие мигает вместе с цифрами, потому что всё перерисовывается каждый проход. Обновляйте экран только при смене значения.
- Длинные провода (больше 30 см) без экрана — сбои в протоколе, цифры «мусорят».
Ещё по теме
Другие детали для Arduino
HC-SR04DHT22 (AM2302)BME280DS3231SSD1306 OLED 0,96″LCD 1602 с I2CMAX7219Модуль релеKY-040Клавиатура 4×4HX711ФоторезисторМодуль microSDRGB-светодиодСервопривод SG9074HC595Шаговый двигательКнопкаПотенциометрПьезопищалкаСветодиодПолзунковый переключательHC-SR501TTP223Датчик влажности почвыMQ-2LM35Джойстик KY-023DHT11HTU21D