跳至主要內容

数码管 TM1637

大约 2 分钟

简介

本文将介绍使用 Air001 开发板驱动TM1637四位数码管模块。

提示

TM1637LED数码管驱动芯片,是一种带键盘扫描接口的LED数码管驱动控制专用电路。

硬件准备

☁️ Air001开发板入门,将Air001DAPLink调试器使用排针排母连接。

TM1637LED数码管驱动模块Air001开发板,按如下表格进行相连:

TM1637Air001
CLKPA14
DIOPA13
VCCVBUS(5V)
GNDGND

软件部分

我们需要使用Grove_4Digital_Displayopen in new window库来驱动数码管模块,导入这个包到Arduino IDE中。

将库添加到Arduino IDE中

首先下载Grove_4Digital_Display的ZIP包open in new window到本地目录。

点击Arduino IDE上方菜单的项目选项。

点击菜单中的导入库>

点击添加.ZIP库…

选择之前下载的zip压缩文件,即可完成添加库。

开头添加如下代码。

#include "TM1637.h"
#define CLK PA_14
#define DIO PA_13
int i;
TM1637 tm1637(CLK, DIO);
  1. 首先通过#include调用下载的TM1637.h软件包。
  2. 定义CLKDIO的值,按照之前的接线方法,为Air001开发板上的对应pin脚PA_14PA_13
  3. 初始化对象tm1637,传入刚刚定义的CLKDIO,后续仅需调用tm1637对象即可操作数码管。

setup()函数中添加如下代码进行初始化操作。

void setup()
{
    tm1637.init();
    tm1637.point(1);
    tm1637.set(2);
}
  1. 我们用init方法初始化tm1637
  2. point方法控制四位数码管中间的冒号显示,并设置为1为打开(若设置为0则关闭)。
  3. set方法来调节数码管亮度,有0~7七个亮度等级,数字越大越亮。

最后在loop()函数中添加代码。

void loop() 
{
    tm1637.display(0, 1);
    tm1637.display(1, 2);
    tm1637.display(2, 3);
    tm1637.display(3, 4);
}

display方法,来更改某一位显示的值。

注意

位数从0开始,即第一位为0,第二位为1,依此类推。

输出结果

可观察到四位数码管显示12:34