接口七个段显示到ArduinogydF4y2Ba
2015年6月02日gydF4y2Ba通过gydF4y2Ba蒂姆血性小子gydF4y2Ba对于许多应用,无需使用更昂贵的液晶显示器来显示数据。简单的七段显示器就足够了。gydF4y2Ba
对于许多应用,无需使用更昂贵的液晶显示器来显示数据。简单的七段显示器就足够了。gydF4y2Ba
如果您的Arduino应用程序只需要显示数字,请考虑使用sgydF4y2Ba均匀gydF4y2Baegment显示。分段显示器有七个gydF4y2Ba排列成8号形状的led灯。它们使用方便,成本效益高。下图显示了一个典型的七段显示。gydF4y2Ba
七段显示器有两种类型:普通阳极和普通阴极。两种类型的内部结构几乎相同。不同之处在于led和普通端子的极性。在一个普通的阴极七段显示器(我们在实验中使用的),所有七个LED加上一个点状LED的阴极连接到引脚3和8。要使用这个显示器,我们需要连接接地引脚3和8和,并连接+5V到其他引脚,以使单独的段点亮。下图为共阴极七段显示器的内部结构:gydF4y2Ba
普通阳极显示正好相反。在共阳极显示器中,所有8个led的正极连接在一起,然后连接到引脚3和8。要打开一个单独的部分,你接地的一个插脚。下图为共阳极七段显示器的内部结构。gydF4y2Ba七个段标记为a-g,点为“DP”,如下图所示:gydF4y2Ba
要显示特定数字,可以打开单个段,如下表所示:gydF4y2Ba
数字gfedcba.gydF4y2Ba |
英语字母gydF4y2Ba |
一个gydF4y2Ba |
bgydF4y2Ba |
cgydF4y2Ba |
dgydF4y2Ba |
egydF4y2Ba |
fgydF4y2Ba |
ggydF4y2Ba |
|
0 0×3 fgydF4y2Ba |
0×7e.gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
|
1 0×06gydF4y2Ba |
0×30.gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
|
2 0×5bgydF4y2Ba |
0×6d.gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
|
3 0×4fgydF4y2Ba |
0×79.gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
|
4 0×66gydF4y2Ba |
0×33.gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
|
5 0×6 dgydF4y2Ba |
0×5B.gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
|
6 0×7dgydF4y2Ba |
0×5f.gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
|
7 0×07gydF4y2Ba |
0×70.gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
|
8 0×7fgydF4y2Ba |
0×7f.gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
|
9 0×6 fgydF4y2Ba |
0×7B.gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
|
0×77gydF4y2Ba |
0×77gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
|
B 0×7 cgydF4y2Ba |
0×1f.gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
|
C 0×39gydF4y2Ba |
0×4egydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
|
D 0×5 egydF4y2Ba |
0×3dgydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
|
e 0×79gydF4y2Ba |
0×4f.gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
|
F 0×71gydF4y2Ba |
0×47gydF4y2Ba |
上gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
离开gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
上gydF4y2Ba |
实验1gydF4y2Ba
在这个实验中,我们将简单地打开和关闭led来熟悉七段显示器的工作原理。gydF4y2Ba
需要硬件gydF4y2Ba
- 1 x七段显示器(常见阴极)gydF4y2Ba
- 1 x Arduino Mega 2560gydF4y2Ba
- 1 x电路试验板gydF4y2Ba
- 7 x 220欧姆电阻(1/4 w)gydF4y2Ba
- 跳线gydF4y2Ba
接线图gydF4y2Ba
在该电路中,七段显示器的引脚连接到Arduino引脚2-9,如下表所示。公共引脚(引脚3和销8)连接到GND,DP保持未连接,因为它在该实验中不使用gydF4y2Ba
七段针gydF4y2Ba | Arduino Pins.gydF4y2Ba | 线的颜色gydF4y2Ba |
---|---|---|
1 (e)gydF4y2Ba | 6gydF4y2Ba | 橙子gydF4y2Ba |
2(d)gydF4y2Ba | 5gydF4y2Ba | 白色gydF4y2Ba |
3、8 (COM)gydF4y2Ba | 接地gydF4y2Ba | N / A.gydF4y2Ba |
cgydF4y2Ba | 4gydF4y2Ba | 黄色的gydF4y2Ba |
5(DP)gydF4y2Ba | -gydF4y2Ba | |
6 (b)gydF4y2Ba | 3.gydF4y2Ba | 红色的gydF4y2Ba |
7(一)gydF4y2Ba | 2gydF4y2Ba | 蓝色的gydF4y2Ba |
9(f)gydF4y2Ba | 7gydF4y2Ba | 青色gydF4y2Ba |
10 (g)gydF4y2Ba | 8gydF4y2Ba | 绿色gydF4y2Ba |
代码gydF4y2Ba
void setup(){//定义引脚模式pinMode(输出);pinMode(4、输出);pinMode(5、输出);pinMode(6、输出);pinMode(7、输出);pinMode(8、输出);} void loop() {// loop to turn leds od seven seg ON for(int i=2;i<9;i++) {digitalWrite(i,HIGH);延迟(600);} // loop to turn leds od seven seg OFF for(int i=2;i<9;i++) {digitalWrite(i,LOW); delay(600); } delay(1000); }
Interface_Seven_Segment.zipgydF4y2Ba
实验2gydF4y2Ba
描述gydF4y2Ba
在本教程中,我们将与Arduino Mega进行七个段显示,并学会在七个段显示器上显示从九个延迟的九个延迟的计数。gydF4y2Ba
需要硬件gydF4y2Ba
本实验所需的硬件与实验1相同。gydF4y2Ba接线图gydF4y2Ba
该实验的布线图与实验1的电路相同。gydF4y2Ba
代码gydF4y2Ba
/ /做一个数组来保存赛格签订销配置数字int num_array [10] [7] = {{1, 1, 1, 1, 1, 1, 0}, / / 0 {0, 1, 1, 0, 0, 0, 0}, / / 1 {1 1 0, 1, 1, 0, 1}, / / 2 {1, 1, 1, 1, 0, 0, 1}, / / 3 {0, 1, 1, 0, 0, 1, 1}, / / 4 {1, 0, 1, 1, 0, 1, 1}, / / 5 {1, 0, 1, 1, 1, 1, 1}, / / 6 {1 1 1 0 0, 0, 0}, / / 7 {1, 1, 1, 1, 1, 1, 1}, / / 8 {1 1 1 0 0, 1, 1}};// 9 //函数头void Num_Write(int);void setup(){//设置引脚模式pinMode(输出);pinMode(4、输出);pinMode(5、输出);pinMode(6、输出);pinMode(7、输出);pinMode(8、输出);} void loop(){//计数器循环for (int counter = 10; counter > 0; --counter) { delay(1000); Num_Write(counter-1); } delay(3000); } // this functions writes values to the sev seg pins void Num_Write(int number) { int pin= 2; for (int j=0; j < 7; j++) { digitalWrite(pin, num_array[number][j]); pin++; } }
aac_interface_a_seven_segment.zip.gydF4y2Ba
视频gydF4y2Ba
为自己提供这个项目!gydF4y2BaBOM。gydF4y2Ba
I’ve just started with Arduino so I’m sticking to yet simple projects ..similarly, I’ll try it with 2x 7-seg display from old PC casing so I wanted to try it in similar way (+ A..F) for hexadecimal digits.
从原理图中可以清楚地看出,你的e使用了7-seg LED带共同的阳极,由于Arduino的7个引脚被用作' GND ', digitalWrite()函数不应该设置为低电平来打开LED电源/高电平来关闭LED电源(因为它的电流通过数字引脚下沉)?gydF4y2Ba
这里绘制的电路用于常见阳极。我是这个stuf的新手,所以我花了我一整天搞定。此外,NUM_ARRAY中的最后两位数字被交换。除了3,2,1之外,您将无法了解这一点。代码看起来很好,但我想数据表有一些东西。当我交换两者时,我对我没关系。但只有一个提示,以防有人像我一样困住。gydF4y2Ba