相关资料链接

链接:https://pan.baidu.com/s/1eE0rkaSJsKJMU_RUorS5OA

提取码:3ujh

1.1 介绍:

这个模块主要由一个0.36英寸 红色共阳 4位数码管组成,它的驱动芯片是TM1650。使用时,我们只需要2根信号线即可使单片机控制4位8数码管,大大节约了控制板IO口资源。

模块兼容各种单片机控制板,如arduino系列单片机。使用时,我们可以在单片机上堆叠一个传感器扩展板。模块和自带导线连接,然后连接在传感器扩展板上,简单方便。同时,模块自带2个直径为4.8mm的定位孔,方便你将模块固定在其他设备。

GND:电源负极

VCC:电源正极,+5V

DIO:数据IO模块,可以接任意的数字引脚

CLK:时钟引脚,可以接任意的数字引脚

1.2 模块相关资料:

工作电压:

5V(DC)

工作电流:

100mA

最大功率:

0.5W

数码管显示颜色:

红色

尺寸:

47.6MM *23.8MM

原理:TM1650 是一种带键盘扫描接口的 LED(发光二极管显示器)驱动控制专用电路。内部集成有 MCU输入输出控制数字接口、数据锁存器、LED 驱动、键盘扫描、辉度调节等电路。TM1650 性能稳定、质量可靠、抗干扰能力强,可适用于 24 小时长期连续工作的应用场合。TM1650 采用 2 线串行传输协议通讯(注意该数据传输协议不是标准的I2C协议)。该芯片只需要通过二个引脚与MCU通讯就可以完成数码管的驱动,可以节省MCU引脚资源。

TM1650采用的是IIC协议。使用SDA、SCL两条总线。

数据命令设置:0x48,这个是告诉TM1650,我们要用点亮数码管的功能,而不是按键扫描的功能

显示命令设置:

这里实际是一个字节数据,只是不同位部分代表不同功能。

bit[6:4]:设置数码管亮度,注意,000是最亮哦。

bit[3]:设置要不要显示小数点

bit[0]:是不是要开启数码管的显示

数码管显示

比如说,8级亮度,不显示小数点,那就是0x05

起始信号— 发送数据0x48 — 判断丛机应答 — 发送 数据0x05 — 判断丛机应答 — 终止信号

这样,数码管就打开显示了。

打开之后,在后面显示数字的时候,就不用重复发送数据0x48了,因为我们已经选好了数码管功能。

亮度和显示方式可以做成枚举,清晰,而且多个数据占一个地方,很节省空间

数码管关闭

起始信号— 发送数据0x48 — 判断丛机应答 — 发送 数据0x00 — 判断丛机应答 — 终止信号

这样,数码管就关闭显示了。

数码管显示数字

我们要显示数字,首先得告诉TM1650,显示的是哪个数码管的数字,下面的数据就对应好了哪个数码管:

然后我们就可以显示数字了,一个数据8个位,刚好对应8个段,1就是亮,0就是灭。

我的话,因为分不清哪个位对那个段,哈哈哈,所以我是循环按位点亮来理清哪个位对哪个段的。

比如点亮数码1显示8,那就是0x68,假设0x7f是8,哈哈哈,因为还有个位是小数点。

那就是:

起始信号— 发送数据0x68 — 判断丛机应答 — 发送 数据0x7f — 判断丛机应答 — 终止信号

然后,顺利的话,就会在数码管1亮起一个8。

将0~9对应的值,做成一个数组,通过数组下标确定就比较方便了。之后就可以将其完善成一个个小功能,用来显示数字、调节亮度、切换小数点、数码管切换了。

1.3实验器材:

控制板* 1

USB线*1

TM1650四位数码管*1

4P 转杜邦线母*1

1.4模块接线图:

1.5 实验代码:

/*

TM1650四位数码管模块

https://sourl.cn/NbKeBf

*/

#include "KETM1650.h" //导入TM1650的库文件

int item = 0; //要显示的值

KETM1650 tm_4display(6,5); //两线接口为A1, A0

void setup(){

tm_4display.init(); //初始化

tm_4display.setBrightness(3); //设置 亮度为3,范围(1~8)

}

void loop(){

tm_4display.displayString(item);//四位数码管显示item值

item = item + 1; //自加一

if (item > 9999) { //加到超过9999时,清零

item = 0;

}

delay(100); //延时100毫秒

}

程序编译前需要导入库文件,否则编译不通过,具体操作参考

资料的第四小节:库文件的添加(若前面已添加,无需重复)

1.6代码说明

下面介绍一些常用的函数接口:

.init();初始化TM1650

.clear();清除数码管显示

.displayString(char *aString);显示字符串,*aString指向aString的字符串内容

.displayString(String sString);显示字符串,sString为字符串

.displayString(float value);显示小数,内容为float型

.displayString(double value);显示小数,内容为double型

.displayString(int value);显示整数,内容为int型

.displayOn();打开数码管显示

.displayOff();关闭数码管显示,与.clear方法不同的是,一旦关闭必须调用.displayOn();才能重新显示。

.setDot(unsigned int aPos, bool aState);显示小数点,aPos为小数点的位置(0~3)对应(1~4),aState为显示状态:1(true)点亮,2(false)熄灭。

.setBrightness(unsigned int iBrightness);设置数码管的亮度,iBrightness为亮度值(1~8),类型为unsigned int,当设置小于1时自动设置1,当设置大于8时自动设置为8。

细节请看代码注释。

1.7实验结果

烧录好测试代码,按照接线图连接好线,上电后,4位数码管从0开始显示的数字每10毫秒加1,直到大于9999又从0开始。

Arduino使用TM1650四位数码管模块相关推荐

  1. 四位数码管树莓派c语言,用树莓派和四位数码管模块做一个时钟

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 预备知识 如图,这是一个4位数码管模块,由两片 74HC595 级联控制,引脚如图,从上到下,分别为VCC(3.3V/5 ...

  2. Arduino Uno驱动四位数码管

    Arduino Uno驱动四位数码管 我用的是 四位共阳极数码管 型号是5461BS-1数码管 接线方法 UNO引脚 数据码 3 1 4 2 5 3 6 4 7 A 8 B 9 C 10 D 11 E ...

  3. Arduino使用TM1637四位数码管

    index 1. 简介 引脚 2. Grove - 4-Digit Display Library 2.1类中比较实用的函数有: 2.1.1 库中提供了三个示例 2.2 库文件及帮助 2.3 利用tm ...

  4. 服务器主板数码管显示ff,ESP8266之旋转编码器与四位数码管模块显示圈数

    模块:NodeMCU SDK版本:ESP8266_RTOS_SDK-3.0 开发环境:wsl+vscode 外设:增量式光电编码器,四位共阳数码管模块 很久没用8266了,最近做了个绕线计数器,手头只 ...

  5. 蓝桥杯单片机国赛客观题_【单片机自学入门必+收藏】蓝桥杯Arduino单片机 | 02 趣玩TM1637四位数码管模块...

    TM1637模块:四位红色LED数码管显示器,8级灰度可调,且带有时钟点":",电源接口可接:5v或3.3v,可以通过编写程序实现数字时钟显示.倒计时.按钮交互记分牌等功能. TM ...

  6. arduino实验-4位数码管交替显示温湿度

    初学arduino,用四位数码管和温湿度传感器实现温湿度监控,因为用的是数码管,所以只能交替显示,温度和湿度各显示2S. 使用到的材料 arduino UNO r3 面包板 SHTC3温湿度传感器 4 ...

  7. 物联网开发笔记(80)- 使用Micropython开发ESP32开发板之通过IIC接口控制TM1650四位共阴数码管模块

    一.目的 这一节我们学习如何使用我们的ESP32开发板来通过IIC接口控制TM1650四位共阴数码管模块.  二.环境 ESP32 + Thonny + TM1650四位共阴数码管模块 + 几根杜邦线 ...

  8. 四位共阳极数码管显示函数_数码管模块.doc

    数码管模块 数码管 1.概 述 数码管模块采用四位共阳极数码管,用于显示数字和少数特殊字符.可以在机器人项目中使用该模块,用于显示速度.时间.分数.温度.距离等传感器的值.同时,Makeblock提供 ...

  9. 用四位数码管和DS3231时钟模块做车载电子时钟

    用四位数码管和DS3231时钟模块做车载电子时钟 本来咱车上收音模块上是有一个时钟的,但换了导航以后,发现时钟不好用了:主界面上有时钟,但位置太靠左侧,俺的大手握方向盘刚好挡住视线,而且在播放音乐时, ...

最新文章

  1. PLM和PDM相互关系
  2. linux学习笔记十二:yum常用命令
  3. 分布式文件系统KFS源码阅读与分析(四):RPC实现机制(KfsClient端)
  4. tableau可视化数据分析60讲(十四)-tableau可视化视图(交叉表项目符号图)
  5. Postman:Postman(HTTP的测试工具)使用方法详细攻略
  6. 拖动滑块拼图背景图没显示_计划B? 那是计划N…没什么。 拼图于2015年问世
  7. 操作系统笔记(三)进程管理之管理
  8. QT--学习疑惑探索
  9. 【Windows取证篇】Windows镜像仿真绕过开机密码技巧
  10. 保证金监控中心查询期货开户密码
  11. 在el-form-item 重置label宽度
  12. iKuai软路由模拟环境搭建
  13. Android之TabActivity的使用
  14. php 学习阶段行 个人小结
  15. Flutter 适配安卓异形屏幕
  16. (数据科学学习手札32)Python中re模块的详细介绍
  17. python 小括号 运算_浅析python 中大括号中括号小括号的区分
  18. Redhat7使用centos7的YUM的方法
  19. vim全选,全部复制,全部删除快捷键
  20. 查看服务器php版本?

热门文章

  1. 使用SpringBoot实现责任链模式
  2. HTML+CSS期末大作业——中华传统文化题材学生网页设计成品(6页面) 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码...
  3. linux下创建二进制文件并修改
  4. The Sandbox 与 Design Egg 达成合作,将共同建立虚拟空间 Como 小小世界
  5. 最好的家庭教育就是父母以身作则
  6. 联想Y7000在配置ubuntu16.04过程中所遇到的一些问题.例如WIFI禁用,外接屏显示错误,NVIDIA驱动安装等
  7. Flash版(迷你音乐播放器mp3Player1.0 Beta1 )附源码
  8. 基于vue的图片裁剪插件vue-cropper
  9. QT软件开发中的图标设置与好用的图标网站
  10. Delphi编程语言初学总结