我有一个像这样的人9路开关:
我试图弄清楚如何打开位置1、2和位置2的一个LED,一直到位置9的所有9个。
显然,我可以在每个位置重复LED的所有布线,但这似乎很愚蠢。
我的想法是,使用如下所示的布局,开关将代表带圆圈的红线(在位置3中显示),该红线将在每个连续的位置向右延伸,直到连接所有灯为止。我怎样才能做到这一点?
我有一个像这样的人9路开关:
我试图弄清楚如何打开位置1、2和位置2的一个LED,一直到位置9的所有9个。
显然,我可以在每个位置重复LED的所有布线,但这似乎很愚蠢。
我的想法是,使用如下所示的布局,开关将代表带圆圈的红线(在位置3中显示),该红线将在每个连续的位置向右延伸,直到连接所有灯为止。我怎样才能做到这一点?
Answers:
使用稳定的电流源点亮它们,串联连接LED并短路想要变暗的部分。
模拟此电路 –使用CircuitLab创建的原理图
如果您没有合适的电压,则可以使用降压-升压转换器来产生30V电压。
这是使用LM2596S模块构建一个简单的方法:
以此方式修改后,如果在+ in和+ out之间加电,它将在-out端子上产生一个负电压,并在中央电位计端子(电源在+ out处)充当12.5mA电流吸收器。
或可以修改XL6009升降压模块。这次只需要移去电位计并添加一个100欧姆电阻,将3-30V连接至正常输入端子,并将LED灯串连接至输出和电阻。
转动旋转开关时,实现渐进式LED点亮的一种方法是在开关的公共端上使用电流吸收器,然后将LED接线到选择器开关端子上,如下所示。所示的恒定电流吸收器是一种为LED提供20mA吸收器的低成本方法,因此随着点亮的LED数量的变化,亮度不会发生变化。该方案确实需要足够高的电源电压,以克服多达9个LED的串联串的正向压降。
Oldfart和Mattman944对于复杂的二极管网络给出了非常相似的答案。如果可以接受亮度变化,则简单的二极管阶梯就足够了。红色LED通常具有2V的电压降,而二极管通常具有0.6V的电压降,因此二极管电压降在梯形图中的综合影响会非常明显。
在电池为9V且开关位于位置9的情况下,LED 9的限流电阻将看到9-2 = 7V,LED 1的限流电阻将看到9-2-(0.6 * 8)= 2.2V,这将如果限流电阻的阻值相同,则导致流经LED的电流的差异会超过三倍。
如果您坚持要求亮度相等,则必须包括Oldfart和Mattman944推荐的所有二极管,但是仅需几个额外的二极管,您就可以将亮度变化降低到希望的水平。通过如上图在左侧增加三个二极管,我们确保将开关置于位置9时,LED 5看到的电压与LED 8相同。限流电阻两端的实际电压如下。请注意,LED 5和2之间的另一个二极管(下表中未考虑)将进一步改善电路。
LED Voltage across current limiting resistor
9 7
8 7-0.6 =6.4
7 7-0.6*2 =5.8
6 7-0.6*3 =5.2
5 7-0.6 =6.4
4 7-0.6*2 =5.8
3 7-0.6*3 =5.2
2 7-0.6*4 =4.6
1 7-0.6*5 =4
平衡亮度的另一种方法是在某些LED的线路中安装二极管,以故意增加电压降。在上图中,从开关触点1到LED 1的线路中插入了一个附加二极管,因此LED 1看到的电压相同,而与开关处于位置1还是2无关。然后可以将LED 1的限流电阻设为为了使该LED的亮度与其他LED保持平衡,该LED的亮度应小于其他LED的亮度。
这些只是想法-对于此类项目,最好通过实验找到均匀的亮度与复杂性之间的最佳平衡。
如果您可以承受另一个0.5V的压降,则可以使用大量的二极管。这是具有三个LED的示例,该LED需要6个二极管。
(很抱歉,SW,SW2 ..电路实验室没有旋转开关符号)
模拟此电路 –使用CircuitLab创建的原理图
看起来有些过分了,但是与使用微控制器的其他解决方案相比,它的零件更少,成本也可能更低。许多Ardunio板都有9个以上的数字输出引脚-您可以用9个引脚中的每个引脚驱动一个LED。通过让开关选择分压器的不同点并将其馈送到一个模拟引脚,您可以确定开关的位置并点亮您决定点亮的任何东西。
除非您渴望攀登FPGA的学习曲线(包括购买编程盒和使用大量引脚的SMT零件),否则我不建议这样做,但是您可以使用带有内部闪存和振荡器的Lattice LCMXO2系列。电路如下所示(加上一些电源连接,编程连接器和旁路盖):
模拟此电路 –使用CircuitLab创建的原理图
编程软件(Lattice Diamond)支持VHDL和Verilog。
如果您感到幸运,可以将输出设置为最小电流驱动,并省略电阻。
与微控制器方法类似,另一种方法是使用运算放大器IC。正输入都连接在一起,它们连接到产生变化电压的电位计而不是开关。负极连接到一系列电阻,以为每个电阻提供不同的电压。旋转旋钮时,指示灯会一一点亮。
这种类型的电路用于具有十段LED灯条的功率逆变器,以告诉您逆变器输出多少安培。我相信他们所有的运算放大器都集成在一个IC中。
我知道这不是问题的确切答案,因为它不使用开关,但是可以完成您想要的操作。
编辑2:仍然可以使用一次仅连接一个触点的普通开关。将所有负运算放大器输入连接至1V等低电压。然后将每个开关输出连接到每个运算放大器的正输入。在开关输入上放置一个大电阻,如100k,并将其连接至正电源。它必须是一个大电阻,以不允许足够的电流通过,以使上述LED明显打开,因为正输入将从另一个运算放大器连接到LED阳极。现在,当您转动开关时,一次将点亮一个LED。为了使旁边的所有LED都点亮,只需将每个运算放大器的输出连接到其下方的正输入。与1V参考电压相比,LED的正向压降将过高,以至于无法从其下方的OP放大器的正输入端获取足够的电压,因此LED不会阻止OP放大器开启,但其他情况下, LED负载可能会。这假设运算放大器是仅电流源类型。不能使用电流源和宿运算放大器,因为这会阻止另一个运算放大器的正输入变高。许多运算放大器仅是电流吸收器,因此在这种情况下,必须将LED的阴极连接到运算放大器的输入端,其余电路切换。不要忘记为连接到开关的运算放大器输入使用上拉或下拉电阻。用于将开关连接到正电源的电阻值应该很好。
编辑3:似乎其他人发布了使用缓冲IC代替运算放大器的类似但更简单的解决方案。