“4位数码管模块”的版本间的差异
来自YFRobotwiki
(→应用示例) |
|||
(未显示1个用户的13个中间版本) | |||
第6行: | 第6行: | ||
=== 产品简介 === | === 产品简介 === | ||
<br> | <br> | ||
− | 4位数码管模块是采 | + | 4位数码管模块是采 用TM1650专用数码管驱动芯片驱动4位0.56英 寸 数码管 。模块提供 小数点、时钟两种模式可选择,采用PH2.0-4P接口/XH2.54-4P排针接口,配合专用传感器线使用方便接线;且有M3安装柱可选配,方便固定 。 |
+ | |||
+ | TM1650 是专用的数码管驱动芯片,多可以驱动4个8段数码管,2线控制接口,节省单片机端口资源。通过芯片内部的寄存器可以设置显示的位数和显示的亮度,8级亮度可调 。 | ||
将4位数码管模块加入项目中,可用来显示数值、时钟等信息。 | 将4位数码管模块加入项目中,可用来显示数值、时钟等信息。 | ||
第35行: | 第37行: | ||
=== 应用示例 === | === 应用示例 === | ||
+ | <br> | ||
+ | |||
+ | '''电路连接''' | ||
+ | |||
+ | <br> | ||
+ | {|border="1" cellspacing="0" align="center" cellpadding="5" width="600px" | ||
+ | |- | ||
+ | |align="center"|4位数码管显示模块 | ||
+ | |align="center"|Arduino UNO | ||
+ | |- | ||
+ | |align="center"|VCC | ||
+ | |align="center"|+5V | ||
+ | |- | ||
+ | |align="center"|GND | ||
+ | |align="center"|GND | ||
+ | |- | ||
+ | |align="center"|CLK | ||
+ | |align="center"|D10 | ||
+ | |- | ||
+ | |align="center"|DIO | ||
+ | |align="center"|D11 | ||
+ | |} | ||
+ | |||
<br> | <br> | ||
'''电路连接示意图''' | '''电路连接示意图''' | ||
+ | |||
<br> | <br> | ||
− | + | <img src="http://yfrobot.gitee.io/wiki/img/4位数码管显示.png" alt="4位数码管显示" /> | |
− | <img src="http://yfrobot.gitee.io | + | |
− | 提示:以下程序需使用到 | + | <font color="darkorenge">''' 提示'''</font> :以下程序需使用到 [http://yfrobot.gitee.io/wiki/lib/YFTM1650.rar TM1650 库文件] 。下载后将其解压至arduinoIDE安装目录/libraries文件夹中,例如: "D:\Program Files\Arduino\arduino-1.6.4-windows\arduino-1.6.4\libraries"。 |
'''示例代码''' | '''示例代码''' | ||
第49行: | 第74行: | ||
<br> | <br> | ||
− | |||
− | |||
− | |||
− | + | <source lang="c"> | |
+ | /* | ||
+ | 8-segment display driver of YFRobot 4-bit digital tube module based on TM1650 chip | ||
+ | Created by yfrobot,Released into the public domain. | ||
+ | */ | ||
− | + | #include <YFTM1650.h> | |
− | + | YFTM1650 YF_4BitDis(10, 11); | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
void setup() | void setup() | ||
{ | { | ||
− | + | Serial.begin(38400); //Start serial communication at 9600 for debug statements | |
+ | Serial.println("YFRobot TM1650 Example Code"); | ||
+ | YF_4BitDis.init(); | ||
} | } | ||
void loop() | void loop() | ||
{ | { | ||
+ | YF_4BitDis.setBrightness(1); | ||
+ | YF_4BitDis.displayString(String("____")); | ||
+ | delay(1000); | ||
+ | char line[] = "1234"; | ||
− | + | YF_4BitDis.displayString(line); | |
− | + | YF_4BitDis.setBrightness(7); | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | for (int i = 1; i <= 8; i++) { | |
− | + | YF_4BitDis.setBrightness(i); | |
− | + | delay(200); | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | delay( | + | |
} | } | ||
− | + | for (int i = 1; i <= 8; i++) { | |
− | + | YF_4BitDis.setBrightness(8 - i); | |
− | for ( | + | delay(200); |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | delay( | + | |
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | YF_4BitDis.displayString(-1.235); | |
− | + | ||
delay(1000); | delay(1000); | ||
− | + | YF_4BitDis.displayString(12.10); | |
− | + | ||
delay(1000); | delay(1000); | ||
− | |||
− | |||
− | |||
− | + | YF_4BitDis.displayString(String("abcd")); | |
+ | delay(2000); | ||
+ | YF_4BitDis.displayString(2020); | ||
+ | delay(2000); | ||
− | + | if (YF_4BitDis.displayRunning(String("1234567890abcdefghijklmnop"))) { | |
− | + | delay(500); | |
− | + | while (YF_4BitDis.displayRunningShift()) { | |
− | + | delay(500); | |
+ | } | ||
+ | } | ||
+ | delay(2000); | ||
− | + | for (int i = 0; i < 20; i++) { | |
− | + | YF_4BitDis.displayOff(); | |
+ | delay(200); | ||
+ | YF_4BitDis.displayOn(); | ||
+ | delay(200); | ||
+ | } | ||
− | + | for (int i = 0; i < 20; i++) { | |
− | + | YF_4BitDis.setBrightness(1); | |
− | + | delay(200); | |
− | + | YF_4BitDis.setBrightness(8); | |
− | + | delay(200); | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | int | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
} | } | ||
− | |||
− | |||
− | + | for (int i = 0; i < 20; i++) { | |
− | + | for (int j = 0; j < 4; j++) { | |
− | for (int i = 0; i < | + | YF_4BitDis.setDot(j, true); |
− | + | delay(200); | |
− | + | } | |
− | + | for (int j = 0; j < 4; j++) { | |
+ | YF_4BitDis.setDot(j, false); | ||
+ | delay(200); | ||
+ | } | ||
} | } | ||
} | } | ||
+ | </source> | ||
+ | 程序下载地址:[http://yfrobot.gitee.io/wiki/ino/TM1650.ino TM1650] | ||
− | + | 程序运行结果:根据显示效果看程序,更方便理解 | |
− | |||
− | |||
− | |||
− | |||
− | |||
===参考资料=== | ===参考资料=== | ||
<br> | <br> | ||
− | [http://yfrobot.gitee.io/lib/ | + | [http://yfrobot.gitee.io/wiki/lib/YFTM1650_V1.2.rar TM1650库文件] |
− | + | ||
2022年9月3日 (六) 08:51的最后版本
生成缩略图出错:文件可能丢失:
产品简介
4位数码管模块是采用TM1650专用数码管驱动芯片驱动4位0.56英寸数码管。模块提供小数点、时钟两种模式可选择,采用PH2.0-4P接口/XH2.54-4P排针接口,配合专用传感器线使用方便接线;且有M3安装柱可选配,方便固定。
TM1650 是专用的数码管驱动芯片,多可以驱动4个8段数码管,2线控制接口,节省单片机端口资源。通过芯片内部的寄存器可以设置显示的位数和显示的亮度,8级亮度可调。
将4位数码管模块加入项目中,可用来显示数值、时钟等信息。
规格参数
- 数码管:0.56 英寸,4 位
- 驱动IC:TM1650
- 工作电压 3V~5V
- 工作温度:-40℃~80℃
- 亮度等级:8 级亮度可设置
- 模块尺寸:50.5mm * 19.5mm
- 安装孔:3mm
- 安装孔中心距:42mm * 12mm
- 模块重量:3.8g
引脚说明
- 1. GND 黑线 -- Gnd(地)
- 2. VCC 红线 -- Vcc(电源+5V)
- 3. CLK 蓝线 -- 信号
- 3. DIO 白线 -- 信号
应用示例
电路连接
4位数码管显示模块 | Arduino UNO |
VCC | +5V |
GND | GND |
CLK | D10 |
DIO | D11 |
电路连接示意图
提示:以下程序需使用到 TM1650库文件。下载后将其解压至arduinoIDE安装目录/libraries文件夹中,例如: "D:\Program Files\Arduino\arduino-1.6.4-windows\arduino-1.6.4\libraries"。
示例代码
示例一:4位数码管显示测试
/* 8-segment display driver of YFRobot 4-bit digital tube module based on TM1650 chip Created by yfrobot,Released into the public domain. */ #include <YFTM1650.h> YFTM1650 YF_4BitDis(10, 11); void setup() { Serial.begin(38400); //Start serial communication at 9600 for debug statements Serial.println("YFRobot TM1650 Example Code"); YF_4BitDis.init(); } void loop() { YF_4BitDis.setBrightness(1); YF_4BitDis.displayString(String("____")); delay(1000); char line[] = "1234"; YF_4BitDis.displayString(line); YF_4BitDis.setBrightness(7); for (int i = 1; i <= 8; i++) { YF_4BitDis.setBrightness(i); delay(200); } for (int i = 1; i <= 8; i++) { YF_4BitDis.setBrightness(8 - i); delay(200); } YF_4BitDis.displayString(-1.235); delay(1000); YF_4BitDis.displayString(12.10); delay(1000); YF_4BitDis.displayString(String("abcd")); delay(2000); YF_4BitDis.displayString(2020); delay(2000); if (YF_4BitDis.displayRunning(String("1234567890abcdefghijklmnop"))) { delay(500); while (YF_4BitDis.displayRunningShift()) { delay(500); } } delay(2000); for (int i = 0; i < 20; i++) { YF_4BitDis.displayOff(); delay(200); YF_4BitDis.displayOn(); delay(200); } for (int i = 0; i < 20; i++) { YF_4BitDis.setBrightness(1); delay(200); YF_4BitDis.setBrightness(8); delay(200); } for (int i = 0; i < 20; i++) { for (int j = 0; j < 4; j++) { YF_4BitDis.setDot(j, true); delay(200); } for (int j = 0; j < 4; j++) { YF_4BitDis.setDot(j, false); delay(200); } } }
程序下载地址:TM1650
程序运行结果:根据显示效果看程序,更方便理解
参考资料
更多建议和问题欢迎反馈至 YFRobot论坛
购买方式:YFRobot 电子工作室