亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Arduino基礎入門篇17—四位數碼管的驅動

標簽:
Java

1. 四位数码管介绍

根据实际需要,把多个一位数码管封装在一起就成了多位数码管。常见的有两位、三位、四位、五位、六位等。

webp

多位数码管

数码管根据位数不同,其封装的引脚也各不相同。但其内部都是将单个数码管的段选线a,b,c,d,e,f,g,dp对应连接在一起,公共极则相互独立。使用时分别通过控制不同的位选线(即单个数码管的公共极)来控制单个数码管的显示。以人眼难以分辨的速度进行刷新显示,即可达到多个数码管同时显示的效果。

webp

四位数码管

2. 实验材料

  • Uno R3开发板

  • 配套USB数据线

  • 面包板及配套连接线

  • 四位共阴极数码管

  • 4个220Ω限流电阻

四位数码管引脚分布如下图所示,其中1,2,3,4表示对应位数码管的公共极。

webp

四位数码管引脚图

3.实验步骤

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

本次实验连线非常多,要注意不要接错。根据四位数码管的引脚图,a,b,c,d,e,f,g,dp引脚分别连接开发板的数字引脚7,6,5,10,11,8,9,4。数码管的1,2,3,4引脚分别串联220Ω限流电阻,电阻另一端分别连接开发板的数字引脚2,3,12,13。

实验原理图如下图所示:

webp

实验原理图

实物连接图如下图所示:

webp

实物连接图

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

/*
 * SevSegFour
 * 驱动四位数码管显示0到9999
 */#include "SevSeg.h"SevSeg sevseg;

byte numDigits = 4; //数码管位数byte digitPins[] = {2, 3, 12, 13}; //数码管公共极连接Arduino的引脚byte segmentPins[] = {7, 6, 5, 10, 11, 8, 9, 4}; //数码管a,b,c,d,e,f,g,dp对应引脚byte hardwareConfig = COMMON_CATHODE ; // 共阴极数码管int numToShow = 0;int delaycount = 0;void setup() {
  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins); //初始化数码管}void loop() {

  delaycount++;  if (delaycount  == 1000) { //通过变量自加来达到延时效果,如果使用delay函数则会打断数码管显示
    delaycount = 0;
    numToShow++;
  }  if (numToShow > 9999)
  {
    numToShow = 0;
  }
  
  sevseg.setNumber(numToShow, -1); //设置要显示的数据,不显示小数点
  sevseg.refreshDisplay(); // 必须重复运行刷新数码管显示}

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

webp

程序下载

4. 实验现象

数码管从0开始累加显示数据。

webp

实验现象

5. 实验分析

程序中根据实验原理图,通过数码管库函数进行数码管初始化,不断对numToShow变量进行累加,然后对数码管进行设置数据、刷新显示的操作。在程序中我们没有使用delay()函数进行延时,而是通过不断累加delaycount变量,在其达到理想阈值时对numToShow变量进行累加。

因为数码管需要不断重复刷新数据才能保持显示,若使用delay()进行延时,则程序将停止进行等待,这段时间数码管得不到刷新,显示就会受到影响,数码管会变暗、闪烁甚至熄灭。更加理想的做法是通过定时器来对数码管进行刷新。



作者:TonyCode
链接:https://www.jianshu.com/p/98f6445d3351


點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消