Arduino 数码管 硬件 4位数码管 TM1637驱动芯片 库文件 示例

4位数码管:这里用的是TM1637驱动的数码管

备注:此章节会用到库的概念和内容。

该模块有四个引脚,意义如下:

GND:电源负极

VCC:电源正极,+5V

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

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

该库提供了一个名为TM1637的类,

类中包含一个构造函数,形式为

TM1637(uint8_t Clk, uint8_t Data),

第一个参数指定时钟引脚,第二个参数指定数据引脚,这两个引脚都是数字引脚。

TM1673库 代码示例:

 1 /*
 2   //!初始化一个TM1637对象,设置时钟和数据引脚。
 3   //!@参数 pinclk -数字引脚连接到模块的时钟引脚数
 4   //!@参数 pindio -数字引脚连接到模块的DIO引脚数
 5   --------------------------------------------------------------------------------------------------
 6    void BL(uint8_t brightness);
 7   // 设置显示的亮度。
 8   // @param brightness -从0-7级亮度,运行默认为3级亮度
 9 --------------------------------------------------------------------------------------------------
10    void setSegments(const uint8_t segments[], uint8_t length = 4, uint8_t pos = 0);
11   //!在模块上显示任意数据
12   //!此功能接收原始段值作为输入,并显示它们。数据段作为一个字节数组,每个字节对应一个数字。在每个字节0维是段A,1维是段B等。
13   //!@param segments 显示的4维数组
14   //! @param length 设置显示的数字的数量。用户必须确保显示的数字符合要求的数字(例如,如果两个数字被显示,数字必须在0到99之间,大于99则只显示个位与十位两位)
15   //! @param pos 第一个数字位置 0-3,0最左,3最右(例如,123这个数,Pos=0,1显示在最在边;POS=1,1显示在左边第二个;POS=3,1显示在第四位)//
16    --------------------------------------------------------------------------------------------------
17    void Num(int num, bool leading_zero = false, uint8_t length = 4, uint8_t pos = 0);
18   //! 显示十进制数字
19   //! @param leading_zero 为真是,前面的填充0
20   //! @param length 设置显示的数字的数量。用户必须确保显示的数字符合要求的数字(例如,如果两个数字被显示,数字必须在0到99之间,大于99则只显示个位与十位两位)
21   //! @param pos 第一个数字位置 0-3,0最左,3最右(例如,123这个数,Pos=0,1显示在最在边;POS=1,1显示在左边第二个;POS=3,1显示在第四位)
22    --------------------------------------------------------------------------------------------------
23   uint8_t encodeDigit(uint8_t digit);
24   //! 将一个数字转换成7段代码!
25   //! 该方法在0 - 15之间接受一个数字,并将其转换为显示在7段显示上的数字所需的代码。 数字之间10-15转换为十六进制数字(A-F)!
26   //! @param digit 数字0-15
27   //! @return 返回代码表示数字7段图像(LSB段;位6段G;7位总为零)
28 -------------------------------------------------------------------------------------------------
29   void DNum(uint8_t num1,uint8_t num2,bool piont =true);
30 //! 显示两组数字
31 //! @param num1 0-99,大于99点显示十位及个位,显示在左边两位
32 //! @param num2 0-99,大于99点显示十位及个位,显示在右边两位
33 //! @param piont 是否显示中间两点
34 --------------------------------------------------------------------------------------------------
35    void show(bool BS);
36   //!是否显示
37 //! @param BS 为真显示,否则不显示
38 --------------------------------------------------------------------------------------------------
39 void cls();
40 清除所有显示的数据
41 */
42
43 #include <TM1637.h>
44 // 配置引脚
45 #define CLK 2
46 #define DIO 3
47
48 //延时时间
49 #define TEST_DELAY   2000
50
51 TM1637 TM(CLK, DIO);
52
53 void setup()
54 {
55 }
56
57 void loop()
58 {
59  int k=123;
60   bool ZD;
61   TM.cls();//清除
62   //显示1位数,位置从第0位到每3位
63   for(int i=0; i<4;i++)
64 {
65   TM.Num(i,0,1,i);//显示i,不填充0,显示1位,显示在每i位
66   delay(TEST_DELAY);
67   }
68   for(int i=0; i<8;i++)
69 {
70   TM.Num(i,1);
71   TM.BL(i);//调节亮度
72   delay(TEST_DELAY);
73   }
74
75   TM.Num(k,0);//不填充
76   delay(TEST_DELAY);
77   TM.Num(k,1);//填充
78   delay(TEST_DELAY);
79
80 //显示与隐藏
81   for(int i=0; i<4;i++)
82 {
83    TM.show(false);
84    delay(TEST_DELAY/2);
85    TM.show(true);
86    delay(TEST_DELAY/2);
87 }
88
89 //显示双组数
90    for(int i=0; i<20;i++)
91 {
92   ZD=!ZD;
93 TM.DNum(i/2,i/2,ZD);
94 delay(500);
95 }
96
97 delay(5000);
98 }
99  

posted on 2019-05-16 17:29 Kivin_Teacher 阅读(...) 评论(...) 编辑 收藏

Arduino 数码管 硬件 4位数码管 TM1637驱动芯片 库文件 示例相关推荐

  1. Arduino 数码管 硬件 4位数码管 TM1637驱动芯片 库文件 示例

    4位数码管:这里用的是TM1637驱动的数码管 备注:此章节会用到库的概念和内容. 该模块有四个引脚,意义如下: GND:电源负极 VCC:电源正极,+5V DIO:数据IO模块,可以接任意的数字引脚 ...

  2. arduino学习笔记十三--3位数码管测试

    测试数码管1-8数字,自动翻页显示. 实验用到的元件 实验用到的元件 , 1个数码管, 8根杜邦线, 1块实验板. 原理图 连接图 烧写程序后, 数码管自动 1-8滚动显示效果 代码: //设置控制各 ...

  3. c语言 数码管程序,两位数码管动态显示C语言程序+电路图

    用c语言编写的 51单片机数码管驱动程序 下面是电路图: #include #define uint unsigned int void delay7ms(void)   //误差 -0.217013 ...

  4. c语言两位共阴数码管00,两位数码管动态显示C语言程序

    #include #define uint unsigned int void delay7ms(void) //误差 -0.217013888891us { unsigned char a,b; f ...

  5. Arduino驱动I2C接口12864LCD大屏液晶模块方法及库文件

    关键词:Arduino显示,12864液晶模块,中文显示,IIC接口,I2C接口,12864驱动程序 液晶显示模块目前在中国发展已经有30多个年头了,市场上应用最广泛的要属于128*64点阵的显示屏, ...

  6. 基于arduino的一位数码管控制

    基于Mixly的一位数码管控制 硬件: arduino编程板.一位数码管.220Ω电阻.杜邦线若干. 软件: Mixly图形化编程软件. 目标: 通过mixly软件对arduino编程, 实现一位数码 ...

  7. proteus仿真arduino控制两位数码管

    前面我们用arduino控制一位数码管,知道了控制数码管的原理.这里我们增加了一位,其显示的原理基本一样.只不过本质上不是两位同时点亮,而是轮换点亮.下面是原理图: 我们来看看代码的实现: int P ...

  8. arduino二位数码管_Arduino 四位数码管实验

    手上有一只四位数码管,型号是F5461BH 首先直接测试发现,他是共阳极的. 管脚分布如下[参考1],注意这是正面视图(不知道为什么,大多数文章中给出来的都是背面旋转后的视图): (一般来说判断管脚的 ...

  9. 物联网开发笔记(23)- 使用Micropython开发ESP32开发板之控制4位数码管

    上一节我们讲解了如何控制单个数码管,这一节我们来一起学一下如何控制4位数码管. 一.目的 使用MicroPython开发ESP32控制4位数码管 二.环境 ESP32+数码管+Thonny IDE+电 ...

最新文章

  1. 零基础学python这本书怎么样-看了这本基础教程的书籍你还担心你的python学不好吗?...
  2. Leetcode 283. 移动零 解题思路及C++实现
  3. 动态毛玻璃特效html,js和CSS3炫酷毛玻璃面板特效
  4. Android App 瘦身总结 第二章 jni动态库及cpu兼容
  5. C打印函数printf的一种实现原理简要分析
  6. 浅谈自执行函数-立即调用的函数表达式
  7. 数据结构与算法学习网
  8. 贝索斯:为什么我们要选择更难的事情去做? |【经纬低调分享】
  9. JavaScript文档,JQuery文档,CSS中文文档下载
  10. 南京邮电大学高级语言程序设计实验二(选择与循环结构编程)
  11. [UPF]低功耗(Low Power Design)and UPF介紹
  12. 西门子 PLC S7单边通信
  13. python标准库:fractions有理数
  14. JSP页面禁用EL表达式的原因和实现方法
  15. user-select的详细用法
  16. PostgreSQL 不在使用tigger或rule来模拟 SSQLSERVER timestamp 行变化版本管理
  17. 跨考计算机复试自我介绍,复试之自我介绍_跨考网
  18. MySQL用户创建及赋权
  19. tomcat中catalina是什么
  20. D-LINK DI-504路由器TELNET方法及命令运行查看方式

热门文章

  1. java高校学生综合素质测评系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  2. angular路由详解
  3. 安卓浏览器中video组件会显示播放按钮
  4. 微信流量主开通后怎么插入广告
  5. mysql 关键字错误_误用MySQL关键字导致的错误
  6. 886n虚拟服务器,TP-Link TL-WR886N V4-V5无线路由器虚拟服务器设置方法
  7. lazada发货_LAZADA开店——发货——收款流程,看这篇就够了
  8. 多商户商城系统功能拆解42讲-平台端应用-客服列表
  9. MySQL查询本天、本周、本月数据
  10. Oracle 11g启动不了:Out Of Memory