观察用了几年的 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 打印机是否使用了上述这些方案之一 ? 实际上我并不知道。但在进一步思考这个问题后,我意识到,提出“你会怎么做”这个问题是一件自然而然的事情,要求潜在的入门级新员工担任类似的设计角色。这确实是一个值得“思考”的问题,而不是一个确定性问题。 更好的是,后续问题可以是 “每种方法的优点和缺点是什么 ? ”这样,即使是一个只有一点电路经验的工程师,也至少可以清楚地掌握基本设计问题和相关权衡 ; 毕竟,这才是现实世界工程设计的真正意义所在。 关注公众号“优特美尔商城”,获取更多电子元器件知识、电路讲解、型号资料、电子资讯,欢迎留言讨论。