通过数字输出淡化 LED 开/关的硬件解决方案

电器工程 引领 输出
2022-01-21 22:23:18

我想找到一种基于硬件的解决方案,使 LED 从数字引脚上消失。即不是打开/关闭,而是慢慢淡入(500ms)进入/退出全亮度。我无法想象一个小电容器需要半秒钟才能放电……理想情况下,它会采用一个不错的 DIP16 封装,这样我就可以获得一系列褪色的 LED。我的梦想组件存在吗?

4个回答

通常的方法是使用PWM(脉冲宽度调制)

几乎任何现代微控制器都有一个可以为此目的设置的 PWM 外设。如果您不想使用微控制器,可以使用专用的 PWM IC 或定时器 IC,如无处不在的 555。

该过程很简单,脉冲频率设置得足够快,因此人眼无法检测到闪烁(通常高于 25Hz - 请参阅视觉持久性),开启时间与关闭时间从 100% 开启(全亮度)到 50% 开启50% 关闭(半亮度)到 0% 开启(关闭)
请注意,这可以很容易地用于阵列,您只需将 PWM 提供给所有 LED 驱动晶体管(确保基极电流足以用于双极,或使用 MOSFET . 设计选择取决于您驱动的 LED 类型、高/低电流)

检查“555 LED Fade”的网络,你应该得到很多结果。这是从这里随机挑选的一个(我没有检查过,所以我无法确认它是否正常工作):

LED淡入淡出

或者,如果时序的绝对精度不是那么重要,一个简单的选择是使用 RC 滤波器和晶体管开关。这样,电容就不必提供 LED 电流,只需提供基极电流。像这样的东西:

淡入淡出电路

模拟:

淡入淡出电路仿真

任何通用 NPN 都应该这样做,您可以调整 R 和 C 值以适应。

通过添加运算放大器,该选项可以轻松扩展到电流镜阵列。只要晶体管都是相同类型的(使用的电源为+5V),该电路就应该表现良好:

LED 渐变阵列

模拟:

LED 渐变阵列模拟

如果您有足够高的电源电压,LED 可以像这样串联(这里使用的电源是 +10V):

Opamp LED 渐变色系列

模拟:

运算放大器 LED 渐变系列仿真

或者,如果您的电源电压较低,但想要串联驱动 LED,则有很多便宜的升压 IC,例如CAT4238这部分可以使用 PWM 或变化的直流电压对 LED 进行调光(详细信息在数据表中)

LED升压IC

这个怎么样?

FAN5646 是一种灵活紧凑的 LED 闪烁/衰减解决方案。

典型应用电路

FAN5646 数据表

您可以使用小电容 + 大电阻来产生良好的长充电特性 (t=RC),然后将其馈入晶体管的基极并从那里驱动 LED。

这允许更大的电阻,因为通过 LED 的电流不受电阻大小的限制,然后您可以使用小电容。

有必要对晶体管进行偏置,以便将其用作放大器(如果它达到饱和,那么 LED 将保持亮起)。

如果您通过数字引脚使用某种处理器的输出,则可以更改固件中的亮度。当您更改引脚的占空比时,眼睛就像一个过滤器,将较短的导通时间感知为亮度变暗。

1 - 使用 PWM 引脚输出而不是数字 GPIO 引脚。通过更改一些寄存器,您可以更改 LED 的开启时间,从而更改亮度。

2 - 使用定时器(轮询或中断)来更改引脚的状态。

3 - 使用外部移位寄存器 IC 锁存 n 个 LED 的开/关时间。虽然这需要更多的编程工作,但它是可扩展的,并且使用的 GPIO 引脚比 (1) 和 (2) 少。