龙空技术网

Arduino 实例(三)数码管

Snail先生 268

前言:

今天小伙伴们对“数码管显示数字c语言程序”大概比较关切,我们都想要分析一些“数码管显示数字c语言程序”的相关知识。那么小编也在网上收集了一些关于“数码管显示数字c语言程序””的相关内容,希望咱们能喜欢,朋友们一起来了解一下吧!

1 数码管, 又称LED数码管, 是由八段发光二极管(LED)封装在一起组成“8”字型的器件,外加一个小数点。

2 上方中间的脚是公共极,如图分别是a,b,c,d,e,f,g,h脚。

对于共阴极数码管,公共极是阴极。对于共阳极数码管,公共极是阳极。

3 实物电路连接

byte DIGITAL_DISPLAY[10][8] = { //设置0-9数字所对应数组{ 0,0,0,0,0,0,1,1 }, // = 0{ 1,0,0,1,1,1,1,1 }, // = 1{ 0,0,1,0,0,1,0,1 }, // = 2{ 0,0,0,0,1,1,0,0 }, // = 3{ 1,0,0,1,1,0,0,1 }, // = 4{ 0,1,0,0,0,0,1,0 }, // = 5{ 1,0,1,0,0,0,0,0 }, // = 6{ 1,0,0,0,1,1,1,1 }, // = 7{ 1,0,0,0,0,0,0,0 }, // = 8{ 1,0,0,0,0,0,1,0 } // = 9};void setup() { //设定2-9号数字端口为输出for(int i=2;i<=9;i++){pinMode(i, OUTPUT); }}void loop() { //0-9数字显示for (int k = 0; k < 10; k++) {int pin = 2;for (int s = 0; s < 8; s++) {digitalWrite(pin, DIGITAL_DISPLAY[k][s]);pin++;}delay(1000); }

5 四位数码管

根据四位数码管的引脚图,a,b,c,d,e,f,g,dp(下面没有标记引脚的pin)引脚分别连接开发板的数字引脚7,6,5,10,11,8,9,4。数码管的1,2,3,4引脚分别串联220Ω限流电阻,电阻另一端分别连接开发板的数字引脚2,3,12,13。

6 实物电路连接和调试

7 程序

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

备注,若SevSeg库文件没有,可以用软件自动下载安装库文件

下载安装后,编译程序就不会报错了。

标签: #数码管显示数字c语言程序