ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【arduino数码管实验】疫情期间宅着没事做?这个东西可以了解一下......

2020-04-02 12:23:01  阅读:233  来源: 互联网

标签:函数 引脚 ...... arduino Display 数码管 代码


目录


1.材料清单

2.实验原理

3.代码分析

4.总结



1.实验材料   
材料清单 型号&数量
arduino开发板 UNO*1
数码管 5161BS(共阳极)*1
电阻 330Ω*1
导线 若干


2.实验原理   共阳极数码管原理图如下:  

引脚分布图:
在这里插入图片描述
在这里插入图片描述
  有了上面两张图,就可以动手连线了,A-G分别接在了板子上2-8引脚,搭建完成的板子是这样的:

在这里插入图片描述
废话不说,直接写代码。


3.代码分析

(完整代码)


unsigned char num[10][8]={{2,3,4,5,6,7},{3,4},{2,3,5,6,8},{2,3,4,5,8},{3,4,7,8},{2,4,5,7,8},{2,4,5,6,7,8},{2,3,4},{2,3,4,5,6,7,8},{2,3,4,7,8}};

void setup()
{
    for(int i=2;i<9;i++)
    {
      pinMode(i,OUTPUT);
      digitalWrite(i,HIGH);  
    }
}

void Display(char a)
{
    unsigned char index=0;
    while(num[a][index])
    {
        digitalWrite(num[a][index],LOW);
        index++;  
    }  
}

void loop() 
{
      Display(random(0,10));
      delay(1000); 
      setup();
}

  
分析:
  我的思路是这样的,了解数码管的都知道无非是让它对应的脚输出低电平即可(共阳极),那么我就把要变化的脚写入数组中。
  
  至此这个程序已经完成一半了,setup()函数定义数码管连接的几个引脚为OUTPUT(输出),并把电平拉高,然后进入到主函数(loop()函数)中,产生一个0-9的随机数作为实参传给Display()函数,在显示随机数之后,延时1s并重置各个引脚为高电平(调用setup()函数)。
  
下面分析Display()函数:
  通过while循环来判断是否显示这个数所对应的引脚已全部被拉低,如果未完全,则继续,完全则退出。

  
  

4.总结

  没想到arduino的数码管这么繁琐,本来是想Display()函数中用switch来判断传进来的参数并产生对应动作,但是每个数字对应的段选引脚确实太多,会导致代码很多,啰嗦,因此决定用二维数组+while判断来实现。目前数组里只加了数字0-9的段选数据,有兴趣的读者可以自行丰富。

期待更多精彩…

标签:函数,引脚,......,arduino,Display,数码管,代码
来源: https://blog.csdn.net/weixin_43894786/article/details/105252960

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有