第十九课--Microduino 两位数码管静态显示/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年3月5日 (三) 06:17的版本
跳转至: 导航搜索
Language English

目的

本教程将教大家如何用Microduino测量两位数码管引脚,并用两位数码管显示一个两位数

设备



原理图

第十九课-Microduino 2位数码管原理图.jpg

引脚表

Microduino引脚 数码管引脚
D2 10(A)
D3 9(B)
D4 1(C)
D5 4(D)
D6 3(E)
D7 6(F)
D8 5(G)
9 2(DP)
D10 8(LED1)
D11 7(LED2)

程序

byte digit0 = 10;	//十位数Microduino pin
byte digit1 = 11;	//个位数Microduino pin
byte dotPin = 2;	//数码管小数点对应的pin

byte sevenSegmentPins[] = {2,3,4,5,6,7,8};	//A,B,C,D,E,F,G  对应的Microduino pin
byte sevenSegment[10][7] =
{
  //a b c d e f g
  { 0,0,0,0,0,0,1 },  // = 0
  { 1,0,0,1,1,1,1 },  // = 1
  { 0,0,1,0,0,1,0 },  // = 2
  { 0,0,0,0,1,1,0 },  // = 3
  { 1,0,0,1,1,0,0 },  // = 4
  { 0,1,0,0,1,0,0 },  // = 5
  { 0,1,0,0,0,0,0 },  // = 6
  { 0,0,0,1,1,1,1 },  // = 7
  { 0,0,0,0,0,0,0 },  // = 8
  { 0,0,0,1,1,0,0 }   // = 9
};

void setup()
{

	//初始化全部亮起
   pinMode(dotPin, OUTPUT); //pin 2
   pinMode(digit0, OUTPUT); //pin 10
   pinMode(digit1, OUTPUT); //pin 11

  for(int i=0; i<7; i++)
  {
    pinMode(sevenSegmentPins[i], OUTPUT);
  }
  digitalWrite(dotPin, HIGH);
  digitalWrite(digit0, HIGH);
  digitalWrite(digit1, HIGH);
}

//显示数字
void segmentWrite(byte digit)
{
  byte pin = 2;
  for (byte i=0; i<7; ++i)
  {
    digitalWrite(pin, sevenSegment[digit][i]);
      ++pin;
  }
}

void loop()
{
  //显示 68
  digitalWrite(digit0, LOW);   //熄灭十位数码管
  segmentWrite(8);             //显示个位8
  delay(10);                  //10ms 延迟
  digitalWrite(digit0, HIGH);  //点亮十位数码管
  digitalWrite(digit1, LOW);   //熄灭个位数码管
  segmentWrite(6);             //显示十位6
  delay(10);                  //10ms 延迟
  digitalWrite(digit1, HIGH);  //点亮个位数码管

}

调试

步骤一:首先我们要知道我们手头拿着的这个二位数码管的引脚是如何定义的,不同厂家的定义都有可能不同的,不要猜测。如何测量数码管引脚呢?

和一位数码管一样,所有数码管都分共阴(8个LED的阴极共用一个引脚),共阳(8个LED的阳极共用一个引脚),所以两位数码管就有两个共阴/共阳引脚。

多数二位数码管引脚如下图所示:

第十九课-Microduino 2位数码管常用引脚图.jpg

找共阴和共阳

首先,我们找个电源(3到5伏)和1个1K(几百的也欧的也行)的电阻, VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的找到一个就够了,然后用GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。

相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳的了。

可以利用万用表或者3v电池来进行观察检测,两位数码管分位选跟段选,应该有十个引脚,只要万用表或3V电池的一个脚放置于位选端,另一脚放置于段选端检测就可以了

第十九课-Microduino 2位数码管测量引脚图.jpg

由于我手头既没有3V/5V之类的电池,也没有万用表,所以就拍了一个用Microduino来测数码管引脚的视频,请看视频部分。

步骤二:把代码复制到IDE中,编译

步骤三:电路连接,我们用两位共阳数码管电路图照片如下:

第十九课-Microduino 2位数码管连接图.jpg

步骤四:运行代码

步骤五:看数码管显示

结果

数码管会显示数字68.

视频

二位数码管测量引脚: http://v.youku.com/v_show/id_XNjc4MjQyMDc2.html