Arduino 数码管 硬件 4位数码管 TM1637驱动芯片 库文件 示例
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驱动芯片 库文件 示例相关推荐
- Arduino 数码管 硬件 4位数码管 TM1637驱动芯片 库文件 示例
4位数码管:这里用的是TM1637驱动的数码管 备注:此章节会用到库的概念和内容. 该模块有四个引脚,意义如下: GND:电源负极 VCC:电源正极,+5V DIO:数据IO模块,可以接任意的数字引脚 ...
- arduino学习笔记十三--3位数码管测试
测试数码管1-8数字,自动翻页显示. 实验用到的元件 实验用到的元件 , 1个数码管, 8根杜邦线, 1块实验板. 原理图 连接图 烧写程序后, 数码管自动 1-8滚动显示效果 代码: //设置控制各 ...
- c语言 数码管程序,两位数码管动态显示C语言程序+电路图
用c语言编写的 51单片机数码管驱动程序 下面是电路图: #include #define uint unsigned int void delay7ms(void) //误差 -0.217013 ...
- c语言两位共阴数码管00,两位数码管动态显示C语言程序
#include #define uint unsigned int void delay7ms(void) //误差 -0.217013888891us { unsigned char a,b; f ...
- Arduino驱动I2C接口12864LCD大屏液晶模块方法及库文件
关键词:Arduino显示,12864液晶模块,中文显示,IIC接口,I2C接口,12864驱动程序 液晶显示模块目前在中国发展已经有30多个年头了,市场上应用最广泛的要属于128*64点阵的显示屏, ...
- 基于arduino的一位数码管控制
基于Mixly的一位数码管控制 硬件: arduino编程板.一位数码管.220Ω电阻.杜邦线若干. 软件: Mixly图形化编程软件. 目标: 通过mixly软件对arduino编程, 实现一位数码 ...
- proteus仿真arduino控制两位数码管
前面我们用arduino控制一位数码管,知道了控制数码管的原理.这里我们增加了一位,其显示的原理基本一样.只不过本质上不是两位同时点亮,而是轮换点亮.下面是原理图: 我们来看看代码的实现: int P ...
- arduino二位数码管_Arduino 四位数码管实验
手上有一只四位数码管,型号是F5461BH 首先直接测试发现,他是共阳极的. 管脚分布如下[参考1],注意这是正面视图(不知道为什么,大多数文章中给出来的都是背面旋转后的视图): (一般来说判断管脚的 ...
- 物联网开发笔记(23)- 使用Micropython开发ESP32开发板之控制4位数码管
上一节我们讲解了如何控制单个数码管,这一节我们来一起学一下如何控制4位数码管. 一.目的 使用MicroPython开发ESP32控制4位数码管 二.环境 ESP32+数码管+Thonny IDE+电 ...
最新文章
- 零基础学python这本书怎么样-看了这本基础教程的书籍你还担心你的python学不好吗?...
- Leetcode 283. 移动零 解题思路及C++实现
- 动态毛玻璃特效html,js和CSS3炫酷毛玻璃面板特效
- Android App 瘦身总结 第二章 jni动态库及cpu兼容
- C打印函数printf的一种实现原理简要分析
- 浅谈自执行函数-立即调用的函数表达式
- 数据结构与算法学习网
- 贝索斯:为什么我们要选择更难的事情去做? |【经纬低调分享】
- JavaScript文档,JQuery文档,CSS中文文档下载
- 南京邮电大学高级语言程序设计实验二(选择与循环结构编程)
- [UPF]低功耗(Low Power Design)and UPF介紹
- 西门子 PLC S7单边通信
- python标准库:fractions有理数
- JSP页面禁用EL表达式的原因和实现方法
- user-select的详细用法
- PostgreSQL 不在使用tigger或rule来模拟 SSQLSERVER timestamp 行变化版本管理
- 跨考计算机复试自我介绍,复试之自我介绍_跨考网
- MySQL用户创建及赋权
- tomcat中catalina是什么
- D-LINK DI-504路由器TELNET方法及命令运行查看方式
热门文章
- java高校学生综合素质测评系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
- angular路由详解
- 安卓浏览器中video组件会显示播放按钮
- 微信流量主开通后怎么插入广告
- mysql 关键字错误_误用MySQL关键字导致的错误
- 886n虚拟服务器,TP-Link TL-WR886N V4-V5无线路由器虚拟服务器设置方法
- lazada发货_LAZADA开店——发货——收款流程,看这篇就够了
- 多商户商城系统功能拆解42讲-平台端应用-客服列表
- MySQL查询本天、本周、本月数据
- Oracle 11g启动不了:Out Of Memory