Компактный и простой модуль 4-разрядного цифрового LED индикатора позволит вам отображать необходимую информацию. Благодаря использованию схемы TM1637 для управления LED индикатором понадобится лишь четыре провода, в то время как для вывода данных на аналогичный индикатор без TM1637 придется использовать одиннадцать выводов.
Пример

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#include "TM1637.h" // Скачайте библиотеку ниже и подключите ее int8_t DispMSG[] = {1, 2, 3, 4}; // Настройка символов для последующего вывода на дисплей //Определяем пины для подключения к плате Arduino #define CLK 3 #define DIO 2 //Создаём объект класса TM1637, в качестве параметров //передаём номера пинов подключения TM1637 tm1637(CLK, DIO); void setup() { //Инициализация модуля tm1637.init(); //Установка яркости горения сегментов /* BRIGHT_TYPICAL = 2 Средний BRIGHT_DARKEST = 0 Тёмный BRIGHTEST = 7 Яркий */ tm1637.set(BRIGHT_TYPICAL); } void loop() { //Задание на включение разделителя tm1637.point(true); //Выводим массив на дисплей tm1637.display(DispMSG); //Задержка delay(1000); //Задание на выключение разделителя tm1637.point(false); //Выводим массив на дисплей tm1637.display(DispMSG); //Задержка delay(1000); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
/* ПРИМЕР. ТАЙМЕР */ #include "TM1637.h" // ===== НАСТРОЙКИ ТАЙМЕРА ===== // const uint8_t START_MINUTES = 1; // Начальное значение минут (0-99) const uint8_t START_SECONDS = 0; // Начальное значение секунд (0-59) // ============================ // int8_t DispMSG[] = {0, 0, 0, 0}; // Сообщение после таймера #define CLK 3 #define DIO 2 TM1637 tm1637(CLK, DIO); unsigned long startTime; bool timerActive = true; uint16_t totalSeconds; // Общее время в секундах void setup() { tm1637.init(); tm1637.set(BRIGHT_TYPICAL); // Вычисляем общее время в секундах totalSeconds = START_MINUTES * 60 + START_SECONDS; startTime = millis(); } void loop() { if (timerActive) { unsigned long elapsedSeconds = (millis() - startTime) / 1000; if (elapsedSeconds < totalSeconds) { uint16_t remainingTime = totalSeconds - elapsedSeconds; uint8_t minutes = remainingTime / 60; uint8_t seconds = remainingTime % 60; int8_t timeDigits[] = { minutes / 10, // Десятки минут minutes % 10, // Единицы минут seconds / 10, // Десятки секунд seconds % 10 // Единицы секунд }; // Вывод с разделительной точкой (формат MM:SS) tm1637.point(true); tm1637.display(timeDigits); delay(500); // Вывод без точки tm1637.point(false); tm1637.display(timeDigits); delay(500); } else { timerActive = false; } } else { // Режим отображения после таймера tm1637.point(true); tm1637.display(DispMSG); delay(1000); tm1637.point(false); tm1637.display(DispMSG); delay(1000); } } |