“第十四课--Microduino 数码管实验一-数码管骰子/zh”的版本间的差异
(Created page with "{| style="width: 800px;" |- | ==目的== 本教程将教大家如何在Microduino上使用数码管,用来显示数字 ==设备== '''Microduino-Core''' '''Microduino...") |
(→设备) |
||
第7行: | 第7行: | ||
==设备== | ==设备== | ||
− | '''[[Microduino-Core]]''' | + | *'''[[Microduino-Core]]''' |
− | '''[[Microduino-FT232R]]''' | + | *'''[[Microduino-FT232R]]''' |
*其他硬件设备 | *其他硬件设备 | ||
**面包板跳线 一盒 | **面包板跳线 一盒 |
2014年2月21日 (五) 05:49的版本
目的本教程将教大家如何在Microduino上使用数码管,用来显示数字 设备
数码管 简介: led数码管(LED Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。 当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的2个8数码管字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 如何测量引脚: LED数码管是我们经常用到的元件,但型号众多却又没有统一的命名方法,这确实给一些初学者造成了不少困惑。 其实,LED数码就是把多个LED发光二极管装在一起,并没什么高科技的。 一个LED就叫一段。 共阴和共阳: LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别的接VCC和GND。 再把多个这样的8字装在一起就成了多位的数码管了。很简单吧。 找共阴共阳: 首先,我们找个电源(3到5伏)和1个1K(几百的也欧的也行)的电阻, VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的找到一个就够了,然后用GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。 相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳的了。 原理图注意: 1. 将数码管的a~g段,分别接到Arduino的D0~D6上面。如果你手上的数码管未知的话,可以通过通电测量它哪个引脚对应哪个字段,然后找出a~g即可。 2. 分清共阴还是共阳。共阴的话,接220Ω电阻到电源负极;共阳的话,接220Ω电阻到电源+5v。3. 220Ω电阻视数码管实际工作亮度与手头现有原件而定,不一定需要准确。 程序/*
Arduino单数码管骰子
Ansifa 2011-12-28
*/
//定义段码表,表中十个元素由LED段码生成器生成,选择了共阳极。
int a[10] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
void setup()
{
DDRD = 0xFF; //AVR定义PortD的低七位全部用作输出使用。即0xFF=B11111111对应D7~D0
pinMode(12, INPUT); //D12用来做骰子暂停的开关
}
void loop()
{
for(int i = 0; i < 10; i++)
{
//将段码输出PortD的低7位,即Arduino的引脚D0~D6,这样需要取出PORTD最高位,即D7的状态,与段码相加,之后再输出。
PORTD = a[i];
delay(50); //延时50ms
while(digitalRead(12)) {} //如果D12引脚高电平,则在此死循环,暂停LED跑动
}
}
调试步骤一:复制代码到IDE中编译 在源代码中,由于偷懒不用写循环,使用了部分AVR语句。 PORTD这个是AVR的端口输出控制语句,8位对应D7~D0,PORTD=00001001就是D3和D0是高电平。 PORTD = a;就是找出相应的段码输出到D7~D0。 DDRD这个是AVR语句中控制引脚作为输出/输入的语句。DDRD = 0xFF;就是D0~D7全部作为输出脚了。 步骤二:连接电路图,下图为连接完后的照片 步骤三:运行代码 结果数码管会一直非常快的从0到9显示,直到用手按下开关停止到一个数字上,可以当骰子用。 视频 |