首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Arduino:复用7段显示问题

Arduino:复用7段显示问题
EN

Stack Overflow用户
提问于 2014-06-09 18:56:14
回答 1查看 3.7K关注 0票数 0

我有一个3.5位数的7段LED显示器,我正试图用Arduino驱动。Arduino使用锁存器(M74HC595)运行移位寄存器。移位寄存器的8输出通过2000欧姆电阻并进入显示器的8段引脚。显示器的三位数控制引脚转到Arduino上的三个引脚。显示器有一个共同的阴极,所以当控制引脚低时,数字就开着,当数字高时,数字就关了。

只要我只点亮一个数字,或者用相同的段点亮多个数字,就可以很好地工作,但是一旦我试图在两位或三位之间切换,一切都会变得一团糟。那些不应该有光的部分,反而有一个微弱的光,这困扰着阅读实际的数字。

如果我在每一位数字之间加上延迟,多余的灯就会变暗一些,但很快整个东西就会因为高延迟而闪烁,而且是不可用的。

我做错了什么吗?

为了启用特定的数字,我在Arduino上设置了控制引脚,例如,我是这样启用第一个数字的:

代码语言:javascript
运行
复制
digitalWrite(digit1, LOW);
digitalWrite(digit2, HIGH);
digitalWrite(digit3, HIGH);

然后将一个数字推入移位寄存器,并将其移动到锁存器(从而移至显示器):

代码语言:javascript
运行
复制
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, number);
digitalWrite(latchPin, HIGH);

这是我的计划:

EN

回答 1

Stack Overflow用户

发布于 2014-06-09 19:12:49

首先,只有在输出就绪之后,才能通过公共引脚启用数字。第二,看起来你正在用引脚切换数字,并且在数字变得可见后你正在改变它们,因此当你使用不同的数字时,你会得到暗光。

你应该遵循这样的循环。

  1. 推送您想要的值并启用闩锁。
  2. 用普通引脚点亮数字。
  3. 睡眠x秒。
  4. 用普通引脚关闭数字。
  5. 返回到1,并对其他数字重复。

我们的想法是,这3位数字实际上会闪烁得很快,但对于人类的眼睛来说,它们似乎一直在闪烁。如果首先启用它们,则74595输出上的最后一个数字将有一个值,并且在一小部分时间内可以看到。当您切换到实际值时,它看起来会变暗,因为它可以在较短的时间内看到。当数字相同时,似乎没有什么问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24127003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档