Модуль 4 - разрядного индикатора

Описание

Для упрощения работы с 4-разрядным 7-сегментным индикатором был создан данный модуль. На плате с одной стороны размещается дисплей, с другой стороны находится чип для работы с дисплеем - TM1637. Модуль имеет 4 вывода - что значительно упрощает работу с дисплеем, избавляя от большого количества проводов, дополнительных радиоэлектронных компонентов, делая легче подключение к контроллеру.

Технические характеристики

  • Напряжение питания: 5 В
  • Потребляемый ток: 60 мА
  • Рабочая температура: -40 °С - +85 °С

На практике, модуль также работает от напряжения в 3,3 В. Однако, данный режим работы не представлен в документации производителя чипа, поэтому подключение к 3,3 В электронике осуществляется Вами на свой страх и риск!

Физические размеры

  • Модуль (Д х Ш х В): 65 х 25 х 12 мм

Плюсы использования

  • Избавляет от проводов в проекте
  • Существенно упрощает подключение к контроллеру
  • Экономит пространство
  • Регулируемая яркость свечения дисплея (программно)
  • Нет необходимости подключать дополнительные компоненты (резисторы, регистры)

Минусы использования

  • Модуль дороже обычного индикатора

Библиотека для работы с дисплеем

Примеры подключения и использования

Пример 1. Вывод символов и цифр на дисплей

В примере демонстрируется подключение дисплея к контроллеру, вывод различных надписей, а также чисел от 0 до 1000. Примеры тестировались на контроллере Smart UNO.

Для этого нам понадобится:

Подключение:

Пример кода:

#include "SevenSegmentTM1637.h" //подключение библиотеки для работы с дисплеем
 
const byte PIN_CLK = 4;   // подключение контакта CLK
const byte PIN_DIO = 5;   // подключение контакта DIO
SevenSegmentTM1637    display(PIN_CLK, PIN_DIO); //создание объекта дисплея
 
void setup() {
  display.begin();            // инициализация дисплея
  display.setBacklight(100);  // установка яркости в 100%
  display.print("INIT");      // отображение надписи INIT (инициализация) на дисплее
  delay(1000);                // задержка в 1 секунду
};
 
void loop() {
  display.print("LOOP");                // отображение надписи LOOP (цикл)
  delay(1000);                          // задержка 1 секунда
  display.print("COUNTING SOME DIGITS");// написать "COUNTING SOME DIGITS" - подсчёт нескольких цифр
  display.clear();                      // очистка дисплея
 
  for (uint8_t i=0; i < 1000; i++) {     // цикл от 0 до 1000
    display.print(i);                   // вывод текущего числа на дисплей
    delay(100);                         // задержка в 100 мс
  };
 
  display.clear();                      // очистить дисплей
  display.print("SUCC");                // вывести надпись SUCC (успешно)
  display.blink();                      // помигать надписью SUCC
  delay(1000);                          // задержка в 1 секунду
 
  display.clear();                      // очистить дисплей
  display.print("SMARTELEMENTS.RU - OFFICIAL STORE");                // вывести надпись
  display.clear();                      // очистить дисплей
 
};

Пример 2. Вывод символов и цифр на дисплей

В примере демонстрируется подключение дисплея к контроллеру, вывод различных надписей, а также подключения режима игрового табло и часов. Примеры тестировались на контроллере Smart UNO.

Для этого нам понадобится:

Подключение:

Пример кода:

#include "SevenSegmentTM1637.h" //подключение библиотеки для работы с дисплеем
#include "SevenSegmentExtended.h" // библиотека для подключения доп функций (например отображение времени)
 
const byte PIN_CLK = 4;   // подключение контакта CLK
const byte PIN_DIO = 5;   // подключение контакта DIO
SevenSegmentExtended    display(PIN_CLK, PIN_DIO); //создание объекта дисплея
 
void setup() {
  display.begin();            // инициализация дисплея
  display.setBacklight(100);  // установка яркости в 100%
  display.print("INIT");      // отображение надписи INIT (инициализация) на дисплее
  delay(1000);                // задержка в 1 секунду
};
 
void loop() {
 
  display.clear(); //очистка дисплея
 
  //вывод очков игры "Семёрочка" из набора Смарт 30
  //предположим что у игрока 1 - 1 очко, у игррока 2 после очередной партии - 3 победных очка
  //и необходимо на дисплей вывести результат игры
  byte player1Score = 1; //количество очков игрока 1
  byte player2Score = 3; //количество очков игрока 3
 
  display.print("THE GAME IS OVER, SCORE IS"); //вывод надписи
  display.printDualCounter(player1Score, player2Score); // вывот счёта "1:3" на дисплей
  display.blink(); //помигать дисплеем
  delay(1500); //задержка в полторы секунды
 
  display.clear(); //очистка дисплея
  display.print("NOW IS CLOCK TIME"); //вывод надписи
  display.clear(); //очистка дисплея
 
  for (byte hours = 0 ; hours < 24; hours++) {                // подсчёт часов с 0 до 23
    for (byte minutes = 0 ; minutes < 60; minutes++) {          // минуты с 0 до 59
      display.printTime(hours, minutes, true);  // display time
      delay(10);                // задержка перед увеличением минуты (реально - 60 секунд, но для демонстрации - 10 мс)
    };
  };
}