在树莓派Pico上使用TM1637 4位数码管模块的方法

2023-11-30

本教程重点介绍在树莓派 Pico 上使用 TM1637 4 位数码管模块的方法。
所需组件,– 树莓派 Pico 或 Pico W
– TM1637 4 位数码管模块
– 面包板和跳线
– microUSB 数据线,TM1637 是一种带键盘扫描接口的 LED(发光二极管显示器)驱动控制专用电路,内部集成有 MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。TM1637 驱动的数码管模块因其控制引脚数量少而广受欢迎。在这 4 个引脚中,其中两个是电源引脚,其余两个引脚控制模块上的显示值。
引脚名称功能,在树莓派Pico上使用TM1637 4位数码管模块的方法 (https://ic.work/) AI 人工智能 第1张
CLK 时钟引脚有助于保持时钟脉冲与模块和微控制器的同步。
DIO 数据引脚有助于从微控制器发送和接收数据。
GND 接地 (GND) 用于与外部设备建立公共接地。
VCC 电源 (VCC) 输入引脚,用于为模块供电。接受 3.3-5V VCC。
树莓派 Pico I2C 引脚,RP2040 芯片有两个 I2C 控制器。两个 I2C 控制器都可以通过树莓派 Pico 的 GPIO 引脚访问。下表显示了 GPIO 引脚与两个 I2C 控制器的连接。控制器的每个连接都可以通过多个GPIO引脚进行配置,如图所示。但在使用 I2C 控制器之前,你应该在软件中配置要与特定 I2C 控制器一起使用的 GPIO 引脚。
I2C 控制器 GPIO 引脚,I2C0 – SDA GP0/GP4/GP8/GP12/GP16/GP20
I2C0 – SCL GP1/GP5/GP9/GP13/GP17/GP21
I2C1 – SDA GP2/GP6/GP10/GP14/GP18/GP26
I2C1 – SCL GP3/GP7/GP11/GP15/GP19/GP27,两个设备之间的连接相当简单。我们用 GP26 连接 CLK,用 GP27 连接 DIO。你也可以使用其他 SDA/SCL 引脚组合,如上表所示。
请遵循下图:
在树莓派Pico上使用TM1637 4位数码管模块的方法 (https://ic.work/) AI 人工智能 第2张
安装 TMP1637 库,要使用 TM1637 数码管模块对树莓派 Pico 进行编程,我们需要来自 GitHub 的 TM1637 库。
复制此库并将其保存在名为 tm1637.py 的树莓派 Pico 中。在 Thonny 中打开一个新文件。复制下面给出的库或从此链接获取。将其保存到树莓派 Pico,名称 tm1637.py,放在根目录或 lib 文件夹下。
树莓派 Pico MicroPython:TM1637 代码,树莓派 Pico W 需要预加载 MicroPython UF2 文件才能在 MicroPython 中对其进行编程。你可以阅读我们的树莓派 Pico 入门指南,其中我们展示了在 MicroPython 中开始编程 RP2040 所需的所有步骤。

在树莓派Pico上使用TM1637 4位数码管模块的方法 (https://ic.work/) AI 人工智能 第3张
如上图所示完成所有连接后,使用 USB 数据线将 Pico 连接到你的计算机。打开 IDE,将以下代码粘贴到新项目中。
通过单击“运行”图标或按 F5 键来运行代码。将脚本保存到你的树莓派 Pico中,作为 main.py 或任何其他文件扩展名为 “.py” 的名称。
成功上传代码后,你必须看到 TM1637 数码管模块显示更改的字符,每次更新之间有 2 秒的延迟。

在树莓派Pico上使用TM1637 4位数码管模块的方法 (https://ic.work/) AI 人工智能 第4张
TM1637 MicroPython 代码说明,首先,我们导入必要的模块。TM1637 模块用于与 7 段显示器通信,Pin 模块用于将 Pico W 引脚设置为输出引脚,Time 模块用于设置代码执行之间的延迟。
然后,我们定义一个名为 tm 的实例,并启动 Raspberry Pi Pico 的引脚 0 和 1,分别与引脚 CLK 和 DIO 连接。
tm.brightness 可以设置为介于 1 到 7 之间的值。将其设置为“1”会将 TM1637 亮度设置为最低,“7”会亮起所有 LED。
接下来的行在冒号的两侧显示 2 个独立的数字,前导为零。如果不希望冒号显示在数字之间,则可以将参数冒号设置为 False。
写入函数可用于点亮 LED 的每个部分。它的参数是 8 位二进制数,其中每个位对应于 7 段显示器的一个段。
为了更好地理解上面的代码,让我们看到一个 7 段显示,其中标记了段。
在函数 tm.write 中,第一个参数是 0b00111001,它将在 TM1637 模块上显示单词“cool”的第一个字母(即字母 c)。参数中最低有效位表示段“a”,最高有效位表示段“DP”。因此,0b00111001 将点亮 7 段显示中的段 a、d、e 和 f。同样,参数 0b00111111、0b001111111 和 0b00111000 将分别显示字母“o”、“o”和“l”。
接下来,我们使用 tm.show 函数显示字符串 ‘heya’,使用 tm.hex 显示十六进制值,使用 tm.number 显示负数。函数 tm.number 可以显示数字 -999 到 9999,并且数字将右对齐。
如果要显示的内容不适合 TM1637 的 4 位段,则可以使用 scroll() 函数滚动内容。delay 参数以毫秒为单位取值,它是字符在向左滚动之前在片段中停留的时间。
最后,将代码上传到电路板后,TM1637 4 位数码管模块将显示所有不同的数字和文本。

文章推荐

相关推荐