“第十四课--Microduino 数码管实验一-数码管骰子/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
程序
 
(未显示2个用户的11个中间版本)
第8行: 第8行:
  
 
==设备==
 
==设备==
*'''[[Microduino-Core]]'''
+
*'''[[Microduino-Core/zh]]'''
*'''[[Microduino-FT232R]]'''
+
*'''[[Microduino-USBTTL/zh]]'''
 
*其他硬件设备
 
*其他硬件设备
 
**面包板跳线  一盒   
 
**面包板跳线  一盒   
 
**面包板  一块   
 
**面包板  一块   
 
**数码管
 
**数码管
**10k欧电阻一个,220欧电阻一个
+
**10k欧电阻      一个
 +
**220欧电阻      一个
 
**USB数据连接线  一根
 
**USB数据连接线  一根
 +
 +
[[File:intermediateLesson14All1.jpg|600px|center|thumb]]
 +
[[File:intermediateLesson14All2.jpg|600px|center|thumb]]
  
 
'''数码管'''
 
'''数码管'''
 
[[File:第十四课-数码管.jpg|600px|center|thumb]]
 
[[File:第十四课-数码管.jpg|600px|center|thumb]]
 +
[[File:segment.jpg|600px|center|thumb]]
  
 
'''简介:'''
 
'''简介:'''
第42行: 第47行:
  
 
==原理图==
 
==原理图==
 +
'''共阳:'''
 
[[File:第十四课-Microduino控制数码管原理图.jpg|600px|center|thumb]]
 
[[File:第十四课-Microduino控制数码管原理图.jpg|600px|center|thumb]]
注意:
 
  
1. 将数码管的a~g段,分别接到Arduino的D0~D6上面。如果你手上的数码管未知的话,可以通过通电测量它哪个引脚对应哪个字段,然后找出a~g即可。
+
引脚表
 
+
{| class="wikitable"
2. 分清共阴还是共阳。共阴的话,接220Ω电阻到电源负极;共阳的话,接220Ω电阻到电源+5v。3. 220Ω电阻视数码管实际工作亮度与手头现有原件而定,不一定需要准确。
+
|-
 +
! Microduino引脚 !! 数码管引脚序号 !! 数码管引脚字符
 +
|-
 +
| D4 || 1 || e
 +
|-
 +
| D5 || 2 || d
 +
|-
 +
| 5V || 3 || GND
 +
|-
 +
| D2 || 4 || c
 +
|-
 +
| D7 || 5 || dp
 +
|-
 +
| D1 || 6 || b
 +
|-
 +
| D0 || 7 || a
 +
|-
 +
| 不接 || 8 || GND
 +
|-
 +
| D5 || 9 || f
 +
|-
 +
| D6 || 10 || g
 +
|}
  
 +
'''共阴:'''
 +
[[File:lesson14Microduino7Segment.jpg|600px|center|thumb]]
  
 
引脚表
 
引脚表
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Microduino引脚 !! 数码管引脚
+
! Microduino引脚 !! 数码管引脚序号 !! 数码管引脚字符
 
|-
 
|-
| D4 || 1
+
| D11 || 1 || e
 
|-
 
|-
| D5 || 2
+
| D2 || 2 || d
 
|-
 
|-
| 5V || 3
+
| 不接数码管用来接开关 || 3 || GND
 
|-
 
|-
| D2 || 4
+
| D4 || 4 || c
 
|-
 
|-
| D7 || 5
+
| D5 || 5 || dp
 
|-
 
|-
| D1 || 6
+
| D6 || 6 || b
 
|-
 
|-
| D0 || 7
+
| D7 || 7 || a
 
|-
 
|-
| 不接 || 8
+
| GUN || 8 || GND
 
|-
 
|-
| D5 || 9
+
| D9 || 9 || f
 
|-
 
|-
| D6 || 10
+
| D10 || 10 || g
 
|}
 
|}
  
==程序==
 
<source lang="cpp">
 
  
/*
+
注意:
Arduino单数码管骰子
+
 
Ansifa 2011-12-28
+
1. 将数码管的a~g段,分别接到Arduino的D0~D6上面。如果你手上的数码管未知的话,可以通过通电测量它哪个引脚对应哪个字段,然后找出a~g即可。
*/
+
 
 +
2. 分清共阴还是共阳。共阴的话,接220Ω电阻到电源负极;共阳的话,接220Ω电阻到电源+5v。3. 220Ω电阻视数码管实际工作亮度与手头现有原件而定,不一定需要准确。
  
//定义段码表,表中十个元素由LED段码生成器生成,选择了共阳极。
+
==程序==
int a[10] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
+
共阳:
void setup()
+
[https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced/MicroduinoDigitalTubeExperiments1 MicroduinoDigitalTubeExperiments1]
{
 
    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跑动
 
    }
 
}
 
  
</source>
+
共阴:
 +
[https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced/Microduino7Segment1 Microduino7Segment1]
  
 
==调试==
 
==调试==
第116行: 第131行:
  
 
步骤二:连接电路图,下图为连接完后的照片
 
步骤二:连接电路图,下图为连接完后的照片
 +
 +
'''共阳:'''
 
[[File:第十四课-Microduino控制数码管连接图.jpg|600px|center|thumb]]
 
[[File:第十四课-Microduino控制数码管连接图.jpg|600px|center|thumb]]
 +
 +
 +
 +
 +
 +
'''共阴:'''
 +
 +
[[File:intermediateLesson14Connect1.jpg|600px|center|thumb]]
 +
[[File:intermediateLesson14Connect2.jpg|600px|center|thumb]]
 +
[[File:intermediateLesson14Connect3.jpg|600px|center|thumb]]
 +
 +
[[File:lesson14-Microduino7SegmentShow.jpg|600px|center|thumb]]
 
步骤三:运行代码
 
步骤三:运行代码
  

2014年10月29日 (三) 04:33的最新版本

Language English

目的

本教程将教大家如何在Microduino上使用数码管,用来显示数字

设备

数码管

第十四课-数码管.jpg

简介:

  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个),那它就是共阳的了。

原理图

共阳:

第十四课-Microduino控制数码管原理图.jpg

引脚表

Microduino引脚 数码管引脚序号 数码管引脚字符
D4 1 e
D5 2 d
5V 3 GND
D2 4 c
D7 5 dp
D1 6 b
D0 7 a
不接 8 GND
D5 9 f
D6 10 g

共阴:

引脚表

Microduino引脚 数码管引脚序号 数码管引脚字符
D11 1 e
D2 2 d
不接数码管用来接开关 3 GND
D4 4 c
D5 5 dp
D6 6 b
D7 7 a
GUN 8 GND
D9 9 f
D10 10 g


注意:

1. 将数码管的a~g段,分别接到Arduino的D0~D6上面。如果你手上的数码管未知的话,可以通过通电测量它哪个引脚对应哪个字段,然后找出a~g即可。

2. 分清共阴还是共阳。共阴的话,接220Ω电阻到电源负极;共阳的话,接220Ω电阻到电源+5v。3. 220Ω电阻视数码管实际工作亮度与手头现有原件而定,不一定需要准确。

程序

共阳: MicroduinoDigitalTubeExperiments1

共阴: Microduino7Segment1

调试

步骤一:复制代码到IDE中编译

在源代码中,由于偷懒不用写循环,使用了部分AVR语句。

PORTD这个是AVR的端口输出控制语句,8位对应D7~D0,PORTD=00001001就是D3和D0是高电平。

PORTD = a;就是找出相应的段码输出到D7~D0。

DDRD这个是AVR语句中控制引脚作为输出/输入的语句。DDRD = 0xFF;就是D0~D7全部作为输出脚了。

步骤二:连接电路图,下图为连接完后的照片

共阳:

第十四课-Microduino控制数码管连接图.jpg



共阴:

步骤三:运行代码

结果

数码管会一直非常快的从0到9显示,直到用手按下开关停止到一个数字上,可以当骰子用。

视频

http://v.youku.com/v_show/id_XNjc2NjcxOTYw.html