你可以想到多少种方式去驱动一颗 LED灯珠?
扫描二维码
随时随地手机看文章
我在看我已经使用了几年的 Brother 喷墨打印机时,注意到它的软开/关开关正上方有一个不起眼的绿色 LED。这个 LED 有一个有趣的占空比:它关闭大约三秒钟,然后在大约一秒钟内逐渐增加到最大强度,同样在大约一秒钟内衰减回完全关闭,然后随着循环再次开始而变暗). 只要打印机名义上打开并准备就绪,它就会重复此循环,无论它是在打印还是处于静止模式。
这台 Brother 打印机上几乎看不见的绿色 LED(在箭头处)会缓慢地亮起和熄灭,以指示设备即使在待机状态下也已准备就绪。绿色 LED 的上升/下降时序周期平滑而缓慢,总周期为 5 秒。
据我所知,这个 LED 的作用是指示“我正在等待打印”。我怀疑使用向上/向下发光的慢速斜坡而不是硬开/关闪烁,所以它不会尖叫来吸引你的注意力;这只是一种“保证”类型的信号。
这个指示灯 LED 动作的缓慢上升/下降斜坡动作让我想知道一个基本的模拟电路问题:打印机如何控制 LED?由于我无法访问原理图或代码,因此我只能推测可能的实现方式。请记住,这是一种非关键性能情况,因为 LED 的强度及其时间可能会发生 10% 甚至 20% 的变化,但这仍然没问题。
几分钟之内,我想到了几种可能性:
1. 驱动 LED 的最简单方法是通过限流电阻从电压源获取。它不优雅,不省电,但便宜且有效。软件控制的电压输出数模转换器 (DAC) 可以提供所需的电压,一小段代码可以调整 DAC 输出以实现斜坡周期和定时。考虑到电阻器和 LED 的小尺寸以及这是一个线路供电单元,适度的低效率在这里不会成为问题。通过限流电阻器从受控电压源驱动 LED 不优雅但有效。
1. 技术上更“合适”的方法是使用 DAC 控制的电流源来驱动 LED,同样使用一些代码来管理 DAC。
1. 另一种方法可能是使用系统处理器的数字输出 (GPIO) 位通过二极管将一些电荷脉冲输入小电容器以斜升 LED,然后让电容器放电以通过电阻器为 LED 提供电流。图 5是一个过于简化的电路,如果 GPIO 位控制一个晶体管来打开和关闭来自系统轨的电流,它可能会工作得更好。通过为所需的斜升/下降速率调整电阻器和电容器的时间常数以及 GPIO 脉冲持续时间和重复率的适当时序,可以实现所需的 LED 动作。
1. 最后,实现处理器控制的脉宽调制 (PWM) 的 GPIO 端口可以通过限流电阻驱动 LED。通过控制脉冲宽度和间隔,用户眼睛的视觉整合将产生所需的感知强度。
打印机是否使用这些方案之一?再一次,我不知道也不能知道。但在进一步思考这个问题之后,我意识到提出这个“你会怎么做?”的问题。要求潜在的入门级新员工担任类似设计的角色是合理的。这实际上是一个“思想”问题,而不是一个确定的问题。
更好的是,后续问题可能是“每种方法的优缺点是什么?” 通过这种方式,即使是只有一点电路经验的潜在客户也至少可以清晰地掌握基本的设计问题和相关的权衡;毕竟,这就是现实世界中许多工程设计的真正意义所在。
您认为慢速 LED 电路有哪些选择?在面试与基本电路相关的初级设计职位的人时,您是否使用过类似的问题?