• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

由LED渐亮发光所想到:打印机如何控制LED?

观察用了几年的Brother喷墨打印机,注意到它的软开关上方有一个不显眼的绿色LED(图1)。该LED的占空比很有趣:熄灭大约三秒钟,然后再在大约一秒钟内上升到较高亮度,随后又在大约一秒内衰减回完全熄灭,最后又进入熄灭状态,循环再次开始(图2)。只要打印机正常打开和待机,无论是处于打印还是静止模式,都会重复该循环。

图1:Brother打印机上几乎看不见的绿色LED(在箭头处)缓慢地亮起和熄灭,以表明设备已就绪,即使处于待机状态。资料来源:Brother International Corp

图2:绿色LED的上升/下降计时周期平稳且缓慢,总周期为5秒。资料来源:Bill Schweber

据我所知,这个LED的作用是指示“本机已做好打印准备”。我怀疑,光强度增/减的慢速渐变是用硬开关闪烁来代替的,它不会以尖叫方式来吸引你的注意力,因为这只是一种“确定”类信号。

该指示灯LED动作的缓慢升/降斜坡动作,让我对一个基本的模拟电路问题产生了疑问:打印机如何控制LED?由于我无法看到原理图或代码,我只能推测可能的方法。请记住,这是一种非关键性能,即便是LED的强度及其计时可能会变化10%甚至20%,设备仍归属正常。

几分钟内,我想到了如下几种可能性:

驱动LED的最简单方法是从电压源通过限流电阻器(图3)。该方法不太精美,也不节能,但价格便宜,而且很实用。一个软件控制的电压输出数模转换器(DAC)可以提供所需的电压,并且一小段代码即可将DAC输出转换成斜坡周期和定时。只要电阻器和LED的尺寸比较小,且是单线供电,而效率偏低在这里不会成为什么问题。

图3:通过限流电阻器从受控电压源驱动LED是不必要的,但可以工作。资料来源:Bill Schweber

技术上更“合适”的方法是使用DAC控制的电流源来驱动LED,同样要使用一些代码来管理DAC(图4)。

图4:纯电流源是驱动LED的更好方法。资料来源:Bill Schweber

另一种方法可能是使用来自系统处理器的数字输出(GPIO)位,通过二极管将一些电荷泵入到小电容器中,然后电容器放电并通过电阻器向LED提供电流。图5是一个非常简化的电路,如果GPIO位能够通过控制一个晶体管来打开和关闭来自系统轨的电流的话,其工作性能会更好。通过调整电阻器和电容器构成的时间常数以适应所需的升/降速率,以及GPIO脉冲持续时间和重复频率的适当定时,即可实现所需的LED动作。

图5:该简化示意图显示,也可以使用电容器的充电和放电来使LED驱动器渐亮和渐灭。资料来源:Bill Schweber

最后,实现处理器控制脉宽调制(PWM)的GPIO端口,亦可以通过限流电阻器驱动LED(图6)。通过对脉冲宽度和间隔的控制,再加上用户眼睛的视觉融合,将会产生所期望的感知光强度。

图6:提供PWM的GPIO端口可控制脉冲宽度和间隔,同时用户的眼睛视觉融合脉冲序列,将会导致连续的光强变化。资料来源:Bill Schweber

打印机是否使用了上述这些方案之一?实际上我并不知道。但在进一步思考这个问题后,我意识到,提出“你会怎么做”这个问题是一件自然而然的事情,要求潜在的入门级新员工担任类似的设计角色。这确实是一个值得“思考”的问题,而不是一个确定性问题。

更好的是,后续问题可以是“每种方法的优点和缺点是什么?”这样,即使是一个只有一点电路经验的工程师,也至少可以清楚地掌握基本设计问题和相关权衡;毕竟,这才是现实世界工程设计的真正意义所在。

(参考原文:How many ways can you ramp an LED?

本文为《电子工程专辑》2023年3月刊杂志文章,版权所有,禁止转载。点击申请免费杂志订阅

文章来自:https://www.eet-china.com/

相关文章