标签:函数 引脚 ...... arduino Display 数码管 代码
目录
1.材料清单
2.实验原理
3.代码分析
4.总结
材料清单 | 型号&数量 |
---|---|
arduino开发板 | UNO*1 |
数码管 | 5161BS(共阳极)*1 |
电阻 | 330Ω*1 |
导线 | 若干 |
引脚分布图:
有了上面两张图,就可以动手连线了,A-G分别接在了板子上2-8引脚,搭建完成的板子是这样的:
废话不说,直接写代码。
(完整代码)
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循环来判断是否显示这个数所对应的引脚已全部被拉低,如果未完全,则继续,完全则退出。
没想到arduino的数码管这么繁琐,本来是想Display()函数中用switch来判断传进来的参数并产生对应动作,但是每个数字对应的段选引脚确实太多,会导致代码很多,啰嗦,因此决定用二维数组+while判断来实现。目前数组里只加了数字0-9的段选数据,有兴趣的读者可以自行丰富。
期待更多精彩…
标签:函数,引脚,......,arduino,Display,数码管,代码 来源: https://blog.csdn.net/weixin_43894786/article/details/105252960
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。