大部分手电筒是在尾部装有一个自锁按键,按下按键后电筒通电开始工作,如果快速轻按此开关,可以让电筒在强光、弱光、闪烁、熄灭这几种状态中进行切换。
一开始我接触到手电筒,也觉得此功能很神奇,明明就一个电源开关连接到电池上,在工作中居然能实现按键功能,有点不可思议。后来拆了一只电筒看了里面的电路,终于明白了中间的原理,相信设计者在里面应该费了一番心思才得以实现。
图中开关对电源通断进行控制,并且能同时通过快速轻按实现强光、弱光、闪烁功能切换。
前几天有个客人让我帮忙分析他们电筒工作不正常的原因,一看也是同一电路,这里贴给大家分享一下。
分析:
1、S1为自锁开关,当S1按下时,电池负极和单片机GND接通,单片机正常工作,控制LED灯输出。
2、快速轻按S1,电池负极和单片机GND断开,由电容C1给单片机继续供电,只要C1容量足够大,是可以让单片机工作一段时间段。
3、快速轻按下S1时,因为电池的负极和单片机GND已经断开,此时电池只有正极和整个电路相连,没有构成任何回路,实际上电池不起任何作用,这样可以把R10、电池都看成是悬浮在空中,单片机的A6脚通过R11接到单片机GND,读到的外部状态为0。
4、S1闭合时,电池负极和单片机GND连通,单片机的A6脚读到的是R10和R11分压后的状态,只要R11的阻值超过R10的3~4倍,读到的状态为1。
5、在3和4过程中单片机根据其A6脚的状态就可以知道S1没有没有快速轻按下,如果A6脚读到状态位0,就说明是快速轻按操作,手电筒需要进行功能切换。
二极管D1在快速轻按S1时防止电容C1上的电反向供给R10。
稳压管D3可以不要。
电阻R9可以对电容充电电流进行限制,可以不要。
网友1:非常好,分析的很到位!但个人觉得,D3还是需要的,就单片机的供电稳定性而言!
网友2:但是不是很明白这一设计的初衷是什么,不是把简单的问题复杂化了吗?都一个单片机了,还有一个按键了,想要什么样的功能不都可以吗,那那个硬件控制电路整来整去。(回复1:加硬件电路是为了省电,保证断开时电池0电流.回复2:呵呵,你看下外面卖的手电筒就明白为什么要这么设计了,电筒尾部的弹簧顶着电池负极,然后利用外壳当导线回到电筒头部,控制电路都在头部,开关装在尾部,由这一个开关进行控制。)
网友3:电池供电不存在不稳定情况,D3不需要。
网友4:确实很巧妙,很少硬件实现挺多功能,不过限流电阻个人感觉还是很有必要的,瞬态电流太大对电池、二极管、电容的损害都挺大的,在实际工程上还是很有必要的么^_^电路原理上确实一样。
网友5:S1自锁开关,快速轻按时不能自锁吗?那怎么按才能自锁?
网友6:一片4017就可以实现的功能,需要这么复杂吗?
网友7:说的不够清楚啊,不是可以实现强光,弱光,闪烁等状态吗?按双上面也只能分出两种功能,再多的呢?
网友8:限流电阻还是有必要加上的,这样可以减少瞬间大电流的涌入造成器件的损坏,有利于延长使用寿命。
网友9:并不是简单问题复杂化,而是原有可靠开关供电的基础增加亮度转换功能。 是一个很有创意的功能。你用4017或其它,只用一个开关是可以转换,但是这个开关只能转换,关闭后不能完全断电。 故:非常喜欢这个创意。(回复:你这个说法很不全面,你说的这种是4017的标准触发电路设计,其实是可以略微改变一下思路,设计成可以完全断电的。)
网友10:很不错,我刚看到这种手电时也在猜想是怎么实现的,设计这个电路的人很有创意,很佩服。D3用来使短按标志时间不因为电池电压而改变,用户体验更好。楼上有些人说是简单问题复杂化的人恰恰是没有理解这个电路所实现功能的精髓。
网友11:我曾经也设计过类似的单开关控制电路,用来看控制室内的多只灯泡的,我是用的CD4017来做的。
网友12:作者请注意,D3不可以不用。 因为电容C1在开关动作时会产生倍压,电压会高过MCU极限值,出现问题。
网友13:坦白说这电路还真不咋地.我有个更好的实现方法: 同样的用单片机,但不需要用一个IO来检测状态,只需要用内部上电复位标志就可以了 现在很多单片机(我用过的),只需要0.5V甚至几十毫V都能保存RAM值不变,利用这一点,再加上上电复位标志,即可实现每次断电上电(即短按开关)实现RAM值加1,然后根据RAM值执行不同的功能. 用这方法甚至都不用图中的二极管,充电电容也可以用很小的。