为了账号安全,请及时绑定邮箱和手机立即绑定

Arduino基础入门篇16—数码管库的使用

2018.10.29 13:01 3336浏览

1.数码管库安装

1. 启动Arduino IDE,点击「项目」—「加载库」—「管理库」。

webp

管理库

2. 查找「SevSeg」,可以找到两个库,我们选择第一个,进行安装。

webp

安装库

2. 实验材料

  • Uno R3开发板

  • 配套USB数据线

  • 面包板及配套连接线

  • 共阴极数码管

  • 1个220Ω限流电阻

  • 电位器

3. 实验步骤

1. 根据原理图搭建电路。

数码管的A,B,C,D,E,F,G,DP引脚分别接入开发板的数字管脚7,6,5,10,11,8,9,4。数码管公共端接限流电阻,电阻另一端接数字管脚3。电位器中间管脚接A0,两端分别接5V和GND。

实验原理图如下图所示:

webp

实验原理图

实物连接图如下图所示:

webp

实物连接图

2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

/*
 * SevSeg
 * 使用数码管库驱动数码管,根据A0模拟输入显示对应数字
 */
 #include "SevSeg.h"SevSeg sevseg;

byte numDigits = 1; //数码管位数byte digitPins[] = {3, 2, 2, 2}; //数码管公共极连接Arduino的引脚byte segmentPins[] = {7, 6, 5, 10, 11, 8, 9, 4}; //数码管a,b,c,d,e,f,g,dp对应引脚byte hardwareConfig = COMMON_CATHODE ; // 共阴极数码管int readValue = 0; //保存读到的模拟值int showValue = 0; //需要显示的数据void setup() {
  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins); //初始化数码管}void loop() {
  readValue = analogRead(A0); //读取A0模拟口的数值(0-5V 对应0-1023取值)
  showValue = map(readValue, 0, 1023, 0, 9); //将0-1023之间的数据映射成0到9之间的数据
  sevseg.setNumber(showValue, 1); //数码管显示
  sevseg.refreshDisplay(); // 必须重复运行刷新数码管显示}

3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

webp

程序下载

4. 实验现象

随着电位器的转动,数码管显示0到9的数字。

实验现象

5. 库函数介绍

1. sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins)函数:

  • hardwareConfig:使用的是共阳极数码管还是共阴极数码管。

    • COMMON_CATHODE:共阴极。

    • COMMON_ANODE:共阳极。

  • numDigits:数码管位数,我们这里使用的是一位数码管,故其值设置为1。

  • digitPins:数组形式,用来存储数码管公共极连接的引脚号。此库多用来驱动四位数码管,本实验中只用一位,故数组第一个成员为3(对应实际电路连接),其他成员填入未使用的引脚即可。

  • segmentPins:数组形式,用来存储数码管从a到dp所对应连接的引脚号。

2. sevseg.setNumber(numToShow, decPlaces)函数:

  • numToShow:要显示的数据,可以为整数、浮点数。

  • decPlaces:小数点显示的位置,从最低有效位开始计算,若省略或者设置为-1则表示不显示小数点。

3. sevseg.refreshDisplay()函数:

此函数需要不断重复执行,反复刷新才能使数码管显示。若程序中有其他延时则会对显示产生影响。

6. 实验分析

程序中使用SevSeg驱动库,根据实际电路连接进行库的初始化。在loop()函数中,读取A0模拟输入引脚的数据,通过map()函数重新把数据映射成数字0到9,然后使用sevseg.setNumber()函数进行数据设置,然后通过显示刷新函数进行刷新显示。



作者:TonyCode
链接:https://www.jianshu.com/p/3dbb529bde27


点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消