
数码管,也称作辉光管,是一种可以显示数字和其他信息的电子设备。玻璃管中包括一个金属丝网制成的阳极和多个阴极大部分数码管阴极的形状为数字。为了简化数码管的驱动,模块使用专用的驱动芯74HC595A。74HC595A是一款8位串行输入并行输出的移位寄存器芯片。它可以将串行输入的数据转换为并行输出,方便直接驱动数码管的各个段。所以可以实现仅仅占用2个主控IO口来控制数码管的亮灭。

| 引脚名称 | 描述 |
|---|---|
| GND | GND(电源负极) |
| VCC | VCC (电源正级) |
| DS | 串行数据输出引脚 |
| SCK | 移位寄存器时钟引脚 |
| RCK | 存储寄存器时钟输入引脚 |

Arduino环境库文件安装步骤:参考链接
Arduino环境库文件:点击下载
米思齐UNO开发板库文件安装步骤(使用代码前先下载安装米思齐库文件):参考链接
米思齐ESP32开发板库文件下载安装步骤(使用代码前先下载安装米思齐库文件):参考链接
示例程序(UNO开发板):点击下载
#include "SCoop.h"
char mylist_1[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char mylist[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
defineTask(scoopTask1)
void scoopTask1::setup()
{
}
void scoopTask1::loop()
{
for (int i = 0; i <= 9; i = i + (1)) {
shiftOut(6, 5, MSBFIRST, mylist_1[i]);
sleep(1000);
}
}
defineTask(scoopTask2)
void scoopTask2::setup()
{
}
void scoopTask2::loop()
{
//
for (int i = 0; i <= 9; i = i + (1)) {
digitalWrite(2,LOW);
shiftOut(A1, A2, MSBFIRST, mylist[i]);
digitalWrite(2,HIGH);
sleep(1000);
}
}
void setup(){
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
mySCoop.start();
pinMode(2, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
}
void loop(){
yield();
// HS-F23-L采用共阴数码管
// HS-F24-L采用共阳数码管
}
示例程序(ESP32开发板—基于Python语言,不能用Arduino IDE上传代码):
import machine
import time
pin18 = machine.Pin(18, machine.Pin.OUT)
pin0 = machine.Pin(0, machine.Pin.OUT)
pin23 = machine.Pin(23, machine.Pin.OUT)
mylist = [0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f]
while True:
for i in range(0, 10, 1):
pin18.value(0)
data = mylist[i]
# 实现移位功能
for j in range(0, 8, 1):
pin23.value(((data>>(7 - j))&1))
pin0.value(1)
time.sleep_us(1)
pin0.value(0)
time.sleep_us(1)
pin18.value(1)
time.sleep(1)
示例程序(UNO开发板):点击下载

示例程序(ESP32开发板):点击下载

Arduino UNO 测试环境搭建
准备配件:
电路接线图:

ESP32 Python 测试环境搭建
视频教程:点击查看
器件连接好线之后,将上述程序烧录到UNO-R3 PRO开发板之后,接通电源。之后可以观察到数码管开始计数。
