在这个项目中,它使用了“Piranha Super-flux RGB”共阳极LED和PIC18F25K20,以产生颜色组合。它有两种功能模式,自动生成存储在 μC 存储器中的颜色序列,以及手动模式,您可以在七种可能的颜色中选择一种。
示意图
固件
RGB LED 的控制是通过 PWM(脉冲调制)进行的,因为 PIC18F25K20 只有 2 个 PWM 输出(硬件),所以我通过软件进行 PWM,以获得 3 个 PWM 输出,因为我使用 TIMER0,对于我使用的手动模式IOC(变化中断)。
去抖
在这个项目中,我使用按钮来切换模式并更改颜色。但如果我们像电路 (1) 中那样使用按钮,就会遇到问题。这种配置的问题是,由于任何可能包含某种弹簧复位动作的开关的机械性质,不会有从一个状态到另一个状态的干净转换,而是会出现一系列高和低状态尖峰。为了解决这个问题,我们必须实现一个去抖动系统,它可以通过硬件或软件来完成。我们可以使用RC延迟电路,也可以使用施密特触发器来完成,但这两种方式都会增加价格。所以我通过软件来完成去抖。
进行去抖动的代码示例:
代码
可以用不同的方式完成,但这种方式对我有用。
电源供应器
我使用 7812 稳压器来保持 RGB LED 的电压稳定,对于 μC,我使用 LM317 稳压器。为了计算 LM317 的输出,我使用以下公式:
方程1
LED RGB
我在 RGB Led 上??使用不同的电阻值,因为每种颜色具有不同的 VF(正向电压),以便每种颜色具有相同的 LUX。为了计算电阻,我使用以下方程:
方程2