搜索代码

使用 TM1637 四位数 7 段显示器与 Arduino 结合

使用 TM1637 四位数 7 段显示器与 Arduino 结合

在本教程中,我们将学习如何使用TM1637四位七段显示器与Arduino。该显示器可以用于显示数字、计数器或其他任何数值数据。在项目结束时,您将拥有一个从0计数到500的功能正常的显示器,并演示各种功能,例如亮度调节。

TM1637 4 digit display module

对于这个项目,我们将仅用几根导线将TM1637显示屏连接到Arduino。显示屏有四个引脚:VCC,GND,DIO和CLK。VCC连接到5V电源,GND连接到地。DIO引脚将连接到Arduino的数字引脚3,CLK引脚将连接到数字引脚2。这种设置使Arduino能够轻松与显示屏进行通信。

要查看实际实施,请确保跟随视频(视频在:00)以获得视觉指导。

硬件解析

TM1637 是一款多功能的 7 段显示驱动器,允许轻松控制 4 位显示器。它通过一个两线接口进行控制,该接口由一个数据引脚 (DIO) 和一个时钟引脚 (CLK) 组成。这样可以方便地连接到如 Arduino 等微控制器,而无需额外的组件。

显示屏可以显示小数,并支持亮度控制,使其适用于计数器、时钟和计时器等多种应用。它的紧凑设计和易用性使其成为业余爱好者和专业人士的热门选择。

数据表详细信息

制造商泰坦微电子
零件编号TM1637
逻辑/IO 电压5 V
供电电压3.3 V - 5.5 V
每段的输出电流20 毫安
PWM频率指导N/A
输入逻辑阈值0.3 VCC(低),0.7 VCC(高)
电压降 / RDS(通电状态)/ 饱和度2.5 伏(典型)
热极限125 °C
包裹16针双列直插封装

  • 确保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引脚连接到Arduino的5V输出。接下来,将GND引脚连接到Arduino的一个地引脚。对于数据通信,将显示屏的DIO引脚连接到Arduino的数字引脚3,将CLK引脚连接到数字引脚2。这种简单的设置使Arduino能够有效地与显示屏通信。

确保您有安全的连接,以避免任何松动的接线问题。在视频中,展示了替代的接线配置,但提供的连接是最简单的基本操作(视频时间:01:30)。

代码示例与教程

提供的代码初始化显示并设置必要的配置。代码中的关键标识符包括CLKDIO,分别定义为数字引脚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
}

该代码片段演示了一个简单的计数器,在TM1637显示屏上显示从0到500的数字。该显示屏将持续更新,直到达到500,然后循环回0。完整代码可以在文章下方找到以供参考。

演示 / 期待什么

一旦所有线路连接完毕并且代码上传成功,显示屏应该会顺序显示从 0 到 500 的数字。它还会演示各种亮度设置,并在更新之间适当地清空屏幕。请注意极性反转,因为这可能会损坏显示屏。您可以通过观察视频中的显示屏(在视频的 04:00)来确认功能是否正常。

视频时间戳

  • 00:00TM1637 显示器介绍
  • 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)

用户手册