|
本帖最后由 cady 于 2013-12-25 13:19 编辑
我想大家应该都很了解数码管是什么?数码管也称LED数码管,按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。 大家了解到数码管后,我们一起来做一个小实验,数码管在pcDuino上实现一直跳动1、2、3、4、5、6、7、8、9的数字的实验 一、首先准备材料 1.一个面包板; 2.220欧的电阻8个(因为是8位数码管); 3.杜邦线若干; 4.8位数码管一个; 二、连线 1.将数码管和电阻插入面包板:根据数码管的8个引脚,将电阻也插入到面包板,(可能由于面包板位置太小不好放,你可以用杜邦线引出,根据面包板的原理插到面板上;
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps_clip_image-5821.png 2.插到pcDuino上:根据数码管的原理图:
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps_clip_image-31312.png 找到每个引脚对应的对应的A、B、C、D、E、F、G、DP,再根据我们代码中对A、B、C、D、E、F、G、DP的定义数字,插入到在pcDuino上对应的脚(A、B、C、D、E、F、G、DP插入pcDuino左边的数字脚,继电器电源脚原理图中的COM那个脚插入pcDuino后边的3.3v的脚);
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps_clip_image-31218.png
三、下载程序: 打开Arduino IDE,将相关程序下载上去 /* 程序说明: 数码管连续显示1~9 */ //设置控制各段的数字IO脚 int a=9; int b=8; int c=6; int d=5; int e=4; int f=10; int g=11; int dp=7; //显示数字1 void digital_1() { digitalWrite(a,HIGH); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,HIGH); digitalWrite(g,HIGH); digitalWrite(dp,HIGH); } //显示数字2 void digital_2() { digitalWrite(a,LOW); digitalWrite(b,LOW); digitalWrite(c,HIGH); digitalWrite(d,LOW); digitalWrite(e,LOW); digitalWrite(f,HIGH); digitalWrite(g,LOW); digitalWrite(dp,HIGH); } //显示数字3 void digital_3() { digitalWrite(a,LOW); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,HIGH); digitalWrite(f,HIGH); digitalWrite(g,LOW); digitalWrite(dp,HIGH); } //显示数字4 void digital_4() { digitalWrite(a,HIGH); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,LOW); digitalWrite(g,LOW); digitalWrite(dp,HIGH); } //显示数字5 void digital_5() { digitalWrite(a,LOW); digitalWrite(b,HIGH); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,HIGH); digitalWrite(f,LOW); digitalWrite(g,LOW); digitalWrite(dp,HIGH);
} //显示数字6 void digital_6() { digitalWrite(a,LOW); digitalWrite(b,HIGH); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,LOW); digitalWrite(f,LOW); digitalWrite(g,LOW); digitalWrite(dp,HIGH); } //显示数字7 void digital_7() { digitalWrite(a,LOW); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,HIGH); digitalWrite(g,HIGH); digitalWrite(dp,HIGH); } //显示数字8 void digital_8() { digitalWrite(a,LOW); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,LOW); digitalWrite(f,LOW); digitalWrite(g,LOW); digitalWrite(dp,HIGH); } //显示数字9 void digital_9(void) { digitalWrite(a,LOW); digitalWrite(b,LOW); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,HIGH); digitalWrite(f,LOW); digitalWrite(g,LOW); digitalWrite(dp,HIGH); } void setup() { int i;//定义发量 for(i=4;i<=11;i++) { pinMode(i,OUTPUT);//设置4~11引脚为辒出模式 digitalWrite(i,HIGH); } //digitalWrite(dp,LOW);
} void loop() { /* while(1) { delay(2000); }*/ while(1) { digital_1();//数字1 delay(2000);//延时2s digital_2(); //数字2 delay(2000); //延时2s digital_3(); //数字3 delay(2000); //延时2s digital_4(); //数字4 delay(2000); //延时2s digital_5(); //数字5 delay(2000);//延时2s digital_6(); //数字6 delay(2000); //延时2s digital_7(); //数字7 delay(2000); //延时2s digital_8(); //数字8 delay(2000);//延时2s digital_9(); //数字9 delay(2000);//延时2s } } 四、完成:这时你就会看到继电器一直闪烁数字1、2、3、4、5、6、7、8、9,我们的小实验也完成了。
file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps_clip_image-4204.png |
|