论文部分内容阅读
摘要:Arduino是一种用来感应和控制现实物理世界的一套工具,可以用来开发交互产品。通过对数码管的分析,编写相关程序代码完成了数码管循环显示相关数字的功能,为提升学生的学习兴趣打下基础。
关键词:Arduino;数码管;程序
一、Arduino介紹
Arduino是一块基于开放原始代码的Simple i/o平台,并且具有开发语言和开发环境都很简单、易理解的特点。可以让你快速使用Arduino做出有趣的东西。Arduino可以配合一些电子元件使用,例如LED灯、蜂鸣器、按键、光敏电阻等等,可以开发出令人惊奇的互动作品。
二、数码管介绍
数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数数码管和八段数数码管,八段数数码管比七段数数码管多一个发光二极管单元(多一个小数点显示)。
发光二极管单元连接方式分为共阳数码管和共阴数码管。共阳数码管是指将所有发光二极管的阳极连接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极PWR接到电源输入PWR上,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管则更好相反,阴极连接到一起形成了公共阴极,阳极是独立分开的。
三、元件和原理图
(一)实验用元器件
1.共阳极八段数码管*1;
2.220Ω直插电阻*8
3.面包板*1 面包板跳线*1 扎
(二)线路连接图分别如图所示
四、程序简码
数码管共有七段显示数字的段,还有一个显示小数点的段。当让数码管显示数字时,只要将相应的段点亮即可。例如:让数码管显示数字1,则将b、c 段点亮即可。将每个数字写成一个子程序。在主程序中每隔2s 显示一个数字,让数码管循环显示1~8 数字。每一个数字显示的时间由延时时间来决定,时间设置的大些,显示的时间就长些,时间设置的小些,显示的时间就短。
//设置控制各段的数字IO脚
举例:int a=7;//定义接口7 连接a 段数码管
//显示数字1
void digital_1(void)
{
unsigned char j;
digitalWrite(c,LOW);//给5引脚低电平,点亮c段
digitalWrite(b,LOW);//点亮b段
for(j=7;j<=11;j++)//熄灭其余段
digitalWrite(j,HIGH);
digitalWrite(dp,HIGH);//熄灭小数点DP段
}
//显示数字2-8,可以参照完成即可。
//主程序部分就可以通过调用digital_1()显示数字1,delay(2000)来进行延时达到效果。
五、程序优化
上面的代码使用的是传统的方法来显示1,2,3,4。如果遇到工程量比较大的时候,这种方法就不合适了。这时我们需要使用数组的方法来进行控制。
//设置每个数字所对应的开关数组
byte seven_seg_digits[10][8] = {{ 1,0,0,0,0,1,0,0 },{ 1,0,0,1,1,1,1,1 },{ 1,1,0,0,1,0,0,0 },{ 1,0,0,0,1,0,1,0 },{ 1,0,0,1,0,0,1,1 },{ 1,0,1,0,0,0,1,0 },{ 1,0,1,0,0,0,0,0 },{ 1,0,0,0,1,1,1,1 },{ 1,0,0,0,0,0,0,0 },{ 1,0,0,0,0,0,1,0 }};
//4-11号端口设定为输出模式
//设置通过数组控制引脚开关,顺序为4-11号端口
void sevenSegWrite(byte digit){
byte pin = 4;
for(byte segCount = 0;segCount < 8;++segCount){
digitalWrite(pin,seven_seg_digits[digit][segCount]);
++pin;
}
}
//设置显示效果为从9开始倒数
void loop(){
for(byte count = 10;count > 0;--count){
delay(1000);
sevenSegWrite(count - 1);
}delay(2000);}
六、结束语
将程序下载到实验板后就可以看到,数码管循环显示数字1~8,每隔数字显示两秒钟。
掌握本程序后,大家可以収挥自己癿想象,做出各种数码管实验。
参考文献:
[1]于欣龙.爱上Arduino[M].北京:人民邮电出版,2011:36.
[2]杨继志.Arduino从基础到实践[M].北京:电子工业出版社,2013:85.
[3]刘椮楠.Arduino编程从零开始[M].科学出版社,2013:100.
关键词:Arduino;数码管;程序
一、Arduino介紹
Arduino是一块基于开放原始代码的Simple i/o平台,并且具有开发语言和开发环境都很简单、易理解的特点。可以让你快速使用Arduino做出有趣的东西。Arduino可以配合一些电子元件使用,例如LED灯、蜂鸣器、按键、光敏电阻等等,可以开发出令人惊奇的互动作品。
二、数码管介绍
数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数数码管和八段数数码管,八段数数码管比七段数数码管多一个发光二极管单元(多一个小数点显示)。
发光二极管单元连接方式分为共阳数码管和共阴数码管。共阳数码管是指将所有发光二极管的阳极连接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极PWR接到电源输入PWR上,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管则更好相反,阴极连接到一起形成了公共阴极,阳极是独立分开的。
三、元件和原理图
(一)实验用元器件
1.共阳极八段数码管*1;
2.220Ω直插电阻*8
3.面包板*1 面包板跳线*1 扎
(二)线路连接图分别如图所示
四、程序简码
数码管共有七段显示数字的段,还有一个显示小数点的段。当让数码管显示数字时,只要将相应的段点亮即可。例如:让数码管显示数字1,则将b、c 段点亮即可。将每个数字写成一个子程序。在主程序中每隔2s 显示一个数字,让数码管循环显示1~8 数字。每一个数字显示的时间由延时时间来决定,时间设置的大些,显示的时间就长些,时间设置的小些,显示的时间就短。
//设置控制各段的数字IO脚
举例:int a=7;//定义接口7 连接a 段数码管
//显示数字1
void digital_1(void)
{
unsigned char j;
digitalWrite(c,LOW);//给5引脚低电平,点亮c段
digitalWrite(b,LOW);//点亮b段
for(j=7;j<=11;j++)//熄灭其余段
digitalWrite(j,HIGH);
digitalWrite(dp,HIGH);//熄灭小数点DP段
}
//显示数字2-8,可以参照完成即可。
//主程序部分就可以通过调用digital_1()显示数字1,delay(2000)来进行延时达到效果。
五、程序优化
上面的代码使用的是传统的方法来显示1,2,3,4。如果遇到工程量比较大的时候,这种方法就不合适了。这时我们需要使用数组的方法来进行控制。
//设置每个数字所对应的开关数组
byte seven_seg_digits[10][8] = {{ 1,0,0,0,0,1,0,0 },{ 1,0,0,1,1,1,1,1 },{ 1,1,0,0,1,0,0,0 },{ 1,0,0,0,1,0,1,0 },{ 1,0,0,1,0,0,1,1 },{ 1,0,1,0,0,0,1,0 },{ 1,0,1,0,0,0,0,0 },{ 1,0,0,0,1,1,1,1 },{ 1,0,0,0,0,0,0,0 },{ 1,0,0,0,0,0,1,0 }};
//4-11号端口设定为输出模式
//设置通过数组控制引脚开关,顺序为4-11号端口
void sevenSegWrite(byte digit){
byte pin = 4;
for(byte segCount = 0;segCount < 8;++segCount){
digitalWrite(pin,seven_seg_digits[digit][segCount]);
++pin;
}
}
//设置显示效果为从9开始倒数
void loop(){
for(byte count = 10;count > 0;--count){
delay(1000);
sevenSegWrite(count - 1);
}delay(2000);}
六、结束语
将程序下载到实验板后就可以看到,数码管循环显示数字1~8,每隔数字显示两秒钟。
掌握本程序后,大家可以収挥自己癿想象,做出各种数码管实验。
参考文献:
[1]于欣龙.爱上Arduino[M].北京:人民邮电出版,2011:36.
[2]杨继志.Arduino从基础到实践[M].北京:电子工业出版社,2013:85.
[3]刘椮楠.Arduino编程从零开始[M].科学出版社,2013:100.