找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

网上看到这种非常简洁的手电筒驱动电路,它是利用什么原理来检测开关SW1按下松开的?

查看数: 2051 | 评论数: 26 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2026-7-17 09:12

正文摘要:

回复

ID:1073939 发表于 2026-8-4 11:41
本帖最后由 ydatou 于 2026-8-4 12:00 编辑
coody_sz 发表于 2026-8-4 09:30
很多人没看明白是怎么检测开关断开的,其实很简单。
短时断开,单片机由电容CE1供电,IO输出高电平时ADC检 ...

你的观点是错误的。已经确定这是个电源开关,不是按钮。
用adc检测电流,电流低于某值mcu进入低功耗状态,确定开关处于断开状态。开关断开即断电,这方法不怎么靠谱。
较大的可能是掉电瞬间flash存储此次工作时长,以后开机根据之前工作时长来确定工作状态。

ID:1034262 发表于 2026-8-4 09:30
很多人没看明白是怎么检测开关断开的,其实很简单。
短时断开,单片机由电容CE1供电,IO输出高电平时ADC检测不到电流即为断开,检测到电流即为接通。
ID:60656 发表于 2026-8-3 21:54
确实20年前就有了很简单,模式rom不清0,关掉mcu的复位功能;32k低速时钟,lvd 功能 就能实现
ID:384109 发表于 2026-7-29 13:43
单击容易实现,直接上电就换挡就可以了,双击不好说,估计单片机自带电源电压检测吧
ID:96072 发表于 2026-7-29 13:28
zhuls 发表于 2026-7-27 17:34
SW合上时,单片机上电,标志++,比如只有4种状态,灭、25%亮、50%亮、100%亮、100%亮+爆闪,那么标志%5 ...

没有画错,原灯板哪下
ID:88256 发表于 2026-7-28 10:38
单击换挡的接法是这个样子的

1.jpg (14.06 KB, 下载次数: 0)

1.jpg
ID:88256 发表于 2026-7-28 10:24
HEIZI555 发表于 2026-7-28 09:20
没有画错,就是这样的

肯定画错了或者是你的说明有错,先不说你用4.2V代替BAT+,你那SW1是开关的画法而不是按钮,但按你的描述:“这个是短按3档调光0-3,双击时,哪个档位亮就闪烁”,能够短按1次后维持开关原机械位置的就只能是按钮而不是自锁开关,但要是按钮,灯只会在按钮按住的那一下亮,所以只能接到控制器那而不是串在电源主回路中。
ID:69038 发表于 2026-7-28 10:04
HEIZI555 发表于 2026-7-28 09:20
没有画错,就是这样的

此电路没能检测到按键接通或断开(实际是电源开关),只能检测到MCU上电,MCU工作了就是开关接通,可能与“双击按键”的事件会有矛盾。
ID:96072 发表于 2026-7-28 09:20
zhuls 发表于 2026-7-27 17:34
SW合上时,单片机上电,标志++,比如只有4种状态,灭、25%亮、50%亮、100%亮、100%亮+爆闪,那么标志%5 ...

没有画错,就是这样的
ID:69038 发表于 2026-7-27 17:34
HEIZI555 发表于 2026-7-17 09:29
记得好像是利用EEPROM原理来读取的,但双击又怎么实现的?


SW合上时,单片机上电,标志++,比如只有4种状态,灭、25%亮、50%亮、100%亮、100%亮+爆闪,那么标志%5就是当前状态了。标志存于片内EEPROM中,10万次寿命总有吧?一天写入100次,可以用3年左右。如果用上防磨损算法,就更久了。。

采样电阻0.082并0.082=0.041,按300ma电流,5脚测得电压0.3*0.041=0.0123V,
按ADC的VREF=3.6V计,
若是10bitADC,那么LSB=3.6/1024=0.0035V, 在300mA电流时,ADC的值约为0.0123/0.0035=3.5=>0x0004,
若是12bitADC,那么LSB=3.6/4096=0.000878V, 在300mA电流时,ADC的值约为0.0123/0.000878=14=>0x000E,
这个反馈值未免太小了吧?
若是不用ADC,而是电压比较,12.3mV的输入电压,用什么样的比较电路合适?
该不会是图画错了吧?

随便说说,也可能是我的想法错了。。
ID:1175240 发表于 2026-7-21 08:20
这个好,值得好好学习下。
ID:468878 发表于 2026-7-20 17:31
这类一般是芯片轮流输出吧。按一次输出1档,再按一次则输出2档……
你这电路不就是关断电池负极的开关,有什么特别的啊?你自己标注的BAT-和GND,意思不就是平时GND和电池BAT-是断开的。
ID:1073939 发表于 2026-7-20 17:28
coody_sz 发表于 2026-7-20 15:07
“开关的双击操作相当于短暂供电,没啥意义”?
你错了,估计你没用过这种手电筒,骑行的常用。
SW1是 ...

我感觉只有吊扇、吸顶灯这类产品才适合使用“通断总电源开关”调档,因为额外增加连接mcu的按钮,既增加了安装难度,也增加了产品损坏概率。
我感觉手电还是用按钮更合适,按钮离mcu距离近,电流小,操控手感好。
我上京东、某一个宝搜索骑行手电,没有找到你提到的用开关做调档、爆伤功能的。这也佐证了我的感觉。
另外你在多次提及的“检测电流”,我也感觉不对,应该是掉电时判断工作时长来决定调档。
短时断开再按下两次(双击),则爆闪
此时开关处于断开状态,如何爆闪?
ID:1133081 发表于 2026-7-20 16:04
HEIZI555 发表于 2026-7-18 15:26
这个是短按3档调光0-3,双击时,哪个档位亮就闪烁

楼主的描述与电路图完全不搭界,100%图画错。市售同类灯具多得很。
ID:1034262 发表于 2026-7-20 15:09
man1234567 发表于 2026-7-20 10:16
很科幻的一个电路图,一定是未来世界的

科幻?很简单常见的好吧,好多手电筒就用了这样的电路,甚至更简单。
ID:1034262 发表于 2026-7-20 15:07
ydatou 发表于 2026-7-18 09:14
sw1不是按钮,是电源(自锁)开关。合上就供电,断开就不供电。既然是电源开关,它流经的电流是非常大的。
...

“开关的双击操作相当于短暂供电,没啥意义”?
你错了,估计你没用过这种手电筒,骑行的常用。
SW1是一个自锁开关,按下亮,短时断开再按下一次,则更改模式或档位,短时断开再按下两次(双击),则爆闪。检测电流可以知道是否断开,但更简单的是D2上方节点接一个IO输入检测断电、上电,D2要并联一个电阻。
ID:584814 发表于 2026-7-20 10:16
很科幻的一个电路图,一定是未来世界的
ID:1073939 发表于 2026-7-18 16:55
HEIZI555 发表于 2026-7-18 15:26
这个是短按3档调光0-3,双击时,哪个档位亮就闪烁

都说了电路中的sw是开关,不是按钮。
如果是按钮的话,松手即断电,啥功能都做不了。
开关的双击是先开后关或先关后开。
开关的短按功能只能是开、关、开、关。
ID:96072 发表于 2026-7-18 15:26
这个是短按3档调光0-3,双击时,哪个档位亮就闪烁
ID:1073939 发表于 2026-7-18 09:14
sw1不是按钮,是电源(自锁)开关。合上就供电,断开就不供电。既然是电源开关,它流经的电流是非常大的。
开关松开时不像按钮会断开,而是维持原状,断开、合上都有可能。
开关的双击操作相当于短暂供电,没啥意义。
ID:1064915 发表于 2026-7-18 08:17
coody_sz 发表于 2026-7-17 21:08
廿几年前就做过了,很简单,检测电流,电流为0,就知道断开开关了。开关断开,单片机的电源由电容保持,断 ...

展开讲一讲,单片机如何测电流?
双击爆闪如何做的
ID:13282 发表于 2026-7-18 03:55
很简单,检测ADC电压即可
ID:1034262 发表于 2026-7-17 21:08
廿几年前就做过了,很简单,检测电流,电流为0,就知道断开开关了。开关断开,单片机的电源由电容保持,断开时间不能太长,一般在1秒之内。
ID:88256 发表于 2026-7-17 18:42
HEIZI555 发表于 2026-7-17 09:29
记得好像是利用EEPROM原理来读取的,但双击又怎么实现的?

莫名其妙的问题,单击换档位,双击是干什么的?要我们猜吗?有个BAT-,那么BAT+在哪里,是标注为4.2V的那个吗?为什么标号要取不一样的?SW1是直接控制电池通断的,至于怎么检测,如果有个电容给控制器供电使之能够短暂维持控制器的运行,不就解决按键的检测问题了?
ID:96072 发表于 2026-7-17 09:29
记得好像是利用EEPROM原理来读取的,但双击又怎么实现的?

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表