LED数码管在很多地方都有应用,可以简单方便的显示一些数字,比如温度、电压、电流、时间等。
我手头有一些LED数码管,型号是5161AS(共阴)和5161BS(共阳),经过我的测试,亮度很高,工作稳定。
我整理了一份上述两种数码管的原理图,供大家参考:
如果使用单片机直接驱动数码管显示数字,则至少需要7个IO端口,而且还需要自己整理每个数字对应的数码管管脚,我曾经尝试了一遍,相当麻烦。
后来我找到了74LS47这个专用的数码管驱动器,它驱动一位数码管,只需要4个IO引脚,在连接好电路后,只需要按位往IO引脚写8421BCD码即可,74LS47已经把剩下的工作都做完了。
我画了一个简单的电路图,大家参考:
单片机的BCD输出接74LS47的IA IB IC ID即可。
Arduino的测试例程如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
void setup() { pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); } void loop() { for(int i=0;i<10;i++){ digitalWrite(1, i & 1); digitalWrite(2, i & 2); digitalWrite(3, i & 4); digitalWrite(4, i & 8); delay(500); } } |
看看我在Arduino面包板上的连接效果:
最后,推荐大家去下载74LS47的Datasheet并认真阅读。