天天看点

Arduino使用TM1637四位数码管显示模块

之前买的四位数码管要10个引脚,我用了之后就无法再介入更多的模块了。前几天在淘宝上看到这款TM1637四位数码管显示模块,只需要四个引脚,其中2个还是电源引脚,大大节省了引脚数量。 TM1637四位数码管显示模块正面如下图所示:

Arduino使用TM1637四位数码管显示模块

TM1637四位数码管显示模块背面如下图所示:

Arduino使用TM1637四位数码管显示模块

  该模块有四个引脚,意义如下: GND:电源负极 VCC:电源正极,+5V         DIO:数据IO模块,可以接任意的数字引脚 CLK:时钟引脚,可以接任意的数字引脚。 接下来就是在网上找对应的库进行测试,开始找的是参考文献1中给的库文件,但是根据该库给出的示例进行测试时,模块一点反应都没有。怀疑线路有问题,于是用万用电表检测VCC和GND之间的电脑,发现电压正常。接下来又找了另外一个库进行测试(参考文献2中的库文件),用参考文献3中的示例代码进行测试,发现模块使用正常,于是随后测试时都是采用的参考文件2中提供的库文件。 该库提供了一个名为TM1637的类, 类中包含一个构造函数,形式为 TM1637(uint8_t Clk, uint8_t Data), 第一个参数指定时钟引脚,第二个参数指定数据引脚,这两个引脚都是数字引脚。 类中比较实用的函数有: init函数:用于数码管初始化,就是清除数码管中的显示内容 point函数:指定数码管中间的冒号是否显示,输入参数为布尔值,为0时不显示,不为0时显示 display(uint8_t BitAddr,int8_t DispData)函数:指定数码管中某一位的显示内容,第一个参数指定数码管的某一位,四位数码管从左到右顺序为0,1,2,3,第二个参数是显示的内容,其实是个序号,库中自带有一个长度为16的数组,默认显示0-9,A-F,第二个参数指定的是这个数组的序号。 display(int8_t DispData[])函数:输入参数为一个序号数组,指定四位数码管中每一位要显示的内容。 库中提供了三个示例,分别为:ClockDisplay、NumberFlow、Stopwatch,其中: ClockDisplay:时钟显示示例,显示小时和分钟。 NumberFlow:循环显示数组内容示例 Stopwatch:这个是个秒表的示例 测试时的实物接线图如下:  

Arduino使用TM1637四位数码管显示模块

演示视频如下:

   参考文献 [1]https://github.com/avishorp/TM1637/blob/master [2]https://github.com/reeedstudio/libraries/tree/master/DigitalTube [3]https://brainy-bits.com/blogs/tutorials/4-bits-7-segment-led-display-with-arduino [4]https://thecustomizewindows.com/2017/02/arduino-7-segment-led-display-tutorial-tm1637-4-digit/

继续阅读