我有一个 3.5 位 7 段 LED 显示屏,我正在尝试用 Arduino 驱动它。Arduino 运行带锁存器的移位寄存器 (M74HC595)。移位寄存器的 8 个输出通过 2000 欧姆电阻进入显示器的 8 个段引脚。显示器的三位控制引脚连接到 Arduino 上的三个引脚。显示器有一个共阴极,所以当控制引脚为低电平时,数字打开,当它为高电平时,数字关闭。
只要我只点亮一个数字,或者用相同的段点亮多个数字,这就可以正常工作,但是一旦我尝试在两位或三位数字之间切换段,一切都会变得一团糟。不应该有光的部分,而是有一个微弱的光,这会影响读取实际数字。
如果我在写入每个数字之间添加延迟,不需要的灯会变暗一些,但很快整个事情就会因为高延迟而闪烁并且无法使用。
难道我做错了什么?
为了启用特定数字,我在 Arduino 上设置了控制引脚,例如,这是我启用第一个数字的方式:
digitalWrite(digit1, LOW);
digitalWrite(digit2, HIGH);
digitalWrite(digit3, HIGH);
然后将一个数字推入移位寄存器并将其移至锁存器(因此移至显示器):
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, number);
digitalWrite(latchPin, HIGH);
这是我的方案: