Код для поиска

Использование 4-разрядного 7-сегментного дисплея TM1637 с Arduino

Использование 4-разрядного 7-сегментного дисплея TM1637 с Arduino

В данном руководстве мы научимся использовать 4-разрядный 7-сегментный дисплей TM1637 с Arduino. Этот дисплей можно использовать для отображения чисел, счетчиков или любых других числовых данных. К концу проекта у вас будет работающий дисплей, который сможет считать от 0 до 500 и демонстрировать различные функции, такие как регулировка яркости.

TM1637 4 digit display module

Для этого проекта мы подключим дисплей TM1637 к Arduino, используя всего несколько проводов. Дисплей имеет четыре вывода: VCC, GND, DIO и CLK. VCC подключается к источнику питания 5В, а GND подключается к земле. Вывод DIO будет подключен к цифровому выводу 3 на Arduino, а вывод CLK будет подключен к цифровому выводу 2. Эта настройка позволяет Arduino легко взаимодействовать с дисплеем.

Чтобы увидеть практическую реализацию, обязательно следуйте за видео (в видео на 00:00) для визуального руководства.

Объяснение аппаратного обеспечения

TM1637 — универсальный драйвер 7-сегментных дисплеев, который позволяет легко управлять 4-значными дисплеями. Он контролируется с помощью интерфейса с двумя проводами, который состоит из пина данных (DIO) и пина тактирования (CLK). Это упрощает подключение к микроконтроллерам, таким как Arduino, без необходимости в дополнительных компонентах.

Дисплей может отображать десятичные числа и поддерживает управление яркостью, что делает его подходящим для различных приложений, таких как счетчики, часы и таймеры. Его компактный дизайн и простота в использовании делают его популярным выбором как среди любителей, так и среди профессионалов.

Характеристики продукта

ПроизводительТитан Майкро Электроникс
Номер деталиTM1637
Логическое/входное напряжение5 В
Напряжение питания3.3 В - 5.5 В
Текущий выход (на сегмент)20 мА
Руководство по частоте ШИМN/A
Входные логические пороги0.3 VCC (низкий), 0.7 VCC (высокий)
Падение напряжения / RДС(вн)/ насыщение2.5 В (тип.)
Термические ограничения125 °C
Упаковка16-контактный DIP

  • Убедитесь, что VCC подключен к стабильному источнику 5V, чтобы избежать неисправности дисплея.
  • Используйте ограничивающие резисторы при необходимости, чтобы предотвратить повреждение сегментов.
  • Держите провода короткими, чтобы минимизировать шум и помехи.
  • Всегда дважды проверяйте подключения контактов, чтобы предотвратить обратную полярность.
  • Отрегулируйте уровни яркости с помощьюsetBrightnessфункция для оптимальной видимости.

Инструкции по проводке

Arduino wiring for TM1637 4 digit display
TArduino wiring for TM1637 4 digit display — Arduino wiring for TM1637 4 digit display
Arduino wiring for TM1637 4 digit display - large module
Arduino wiring for TM1637 4 digit display - large module

Чтобы подключить дисплей TM1637, сначала подключите вывод VCC к выходу 5В на Arduino. Затем подключите вывод GND к одному из выводов заземления на Arduino. Для передачи данных подключите вывод DIO дисплея к цифровому выводу 3 на Arduino, а CLK — к цифровому выводу 2. Эта простая схема позволяет Arduino эффективно взаимодействовать с дисплеем.

Убедитесь, что у вас есть надежные соединения, чтобы избежать проблем с ненадежной проводкой. В видео показаны альтернативные схемы подключения, но предоставленные соединения являются самыми простыми для базовой работы (в видео на 01:30).

Примеры кода и пошаговая инструкция

Предоставленный код инициализирует дисплей и настраивает необходимые конфигурации. Основные идентификаторы в коде включаютCLKиDIO, которые определены как цифровые выводы 2 и 3 соответственно. Яркость дисплея устанавливается с помощьюsetBrightnessфункция.

#define CLK 2
#define DIO 3

TM1637Display display(CLK, DIO);

void setup() {
    display.setBrightness(0x0f);  // Set maximum brightness
}

Эта часть кода показывает инициализацию дисплея и установку максимальной яркости. Далее, loopфункция демонстрирует, как отображать различные числа.

TM1637 4 digit display module - Back
void loop() {
    uint8_t data[] = { 0x0, 0x0, 0x0, 0x0 };
    display.setSegments(data);  // Clear the display
    display.showNumberDec(23, false, 2, 1);  // Show number 23
    delay(TEST_DELAY);
}

Здесь экран очищается, и отображается число 23. ФункцияshowNumberDecпринимает параметры для управления отображаемым числом и его форматированием. Цикл продолжает отображать числа до 500.

for(int i=0; i<=500; i++) {
    display.showNumberDec(i);  // Show numbers from 0 to 500
}

Этот фрагмент кода иллюстрирует простой счетчик, который отображает числа от 0 до 500 на дисплее TM1637. Дисплей будет обновляться непрерывно, пока не достигнет 500, затем он вернется к 0. Полный код доступен ниже статьи для вашего ознакомления.

Демонстрация / Что ожидать

Как только все провода будут подключены, а код загружен, дисплей должен последовательно показывать числа от 0 до 500. Он также продемонстрирует различные настройки яркости и очистит экран между обновлениями. Будьте осторожны с обратной полярностью, так как это может повредить дисплей. Вы можете подтвердить функциональность, наблюдая за дисплеем во время видео (в видео на 04:00).

Временные метки видео

  • 00:00- Введение в дисплей TM1637
  • 01:30- Инструкции по подключению
  • 02:45- Обзор кода
  • 04:00- Демонстрация дисплея

Изображения

TM1637 4 digit display module size
TM1637 4 digit display module size
TM1637 4 digit display module
TM1637 4 digit display module
Arduino wiring for TM1637 4 digit display
TArduino wiring for TM1637 4 digit display
Arduino wiring for TM1637 4 digit display - large module
Arduino wiring for TM1637 4 digit display - large module
TM1637 4 digit display module
TM1637 4 digit display module
TM1637 4 digit display module - Back
TM1637 4 digit display module - Back
23-Arduino code for TM1637 4-digit display.
Язык: C++
/*
 * This is the Arduino code for TM1637 4-digit display.
 * 
 * Written by Ahmad S. for Robojax Video
 *visit www.Robojax.com to get wiring diagram and other resources for this project
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
 * 
 */

/*
 * Original code from https://github.com/avishorp/TM1637
 * Modified for Robojax video on December 6, 2017

 */
#include <Arduino.h>
#include <TM1637Display.h>

// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3

// The amount of time (in milliseconds) between tests
#define TEST_DELAY   2000


TM1637Display display(CLK, DIO);

void setup()
{
}

void loop()
{


  display.setBrightness(0x0f);

  uint8_t data[] = { 0x0, 0x0, 0x0, 0x0 };
  display.setSegments(data);
  display.showNumberDec(23, false, 2,1);
  delay(TEST_DELAY);
  
  display.setSegments(data);
  display.showNumberDec(153, false, 3, 1);
  delay(TEST_DELAY);

  display.setSegments(data);
  for(int i=0; i<=500; i++)
  {
    display.showNumberDec(i);
  }

}

Ресурсы и ссылки

Ресурсов пока нет.

Файлы📁

Библиотеки Arduino (zip)

Технический паспорт (pdf)

Руководство пользователя