|
发表于 2024-1-24 20:42:52
|
显示全部楼层
如果对切换速度没啥要求,最简单的办法是对电源电压限流后通过一只二极管接单片机GPIO口,GPIO口接钳位二极管和下拉电阻。
所用端口开个外部中断,中断服务程序内对输入脉冲计数,计数到一定值后令继电器控制口转换输出电平,驱动继电器实现交直流切换。同时开个定时器,定时中断检查计数值是否随时间增长,如果增长就维持继电器状态,如果一定周期内计数值不再增长,则切回直流供电。
以上办法至少要检测2-3个交流周期再切换才行,否则容易被干扰。市电2个周期就高达40mS,切换判断所需时间过长。
如果对切换判断速度有要求,那就用ADC采样。电源输入信号经电阻分压后送运放,运放输出端电平设为1/2VCC,再将输出信号峰值分压倒3.3或5V(视需求而定)送单片机的ADC,单片机启用一个定时中断,中断服务程序内对转换值做判断,连续读到几个值小于1/2Vref,就转换继电器状态。处理好细节,这个方式可以把判断时间压到几个毫秒以内。
也可以使用比较器输出开关量给单片机,基准设为0V或微小的负值,检测到负电压输入后马上改变输出状态,用这个开关量去触发单片机外部中断......这是第一个负脉冲到来时马上切换,外部中断再触发个定时中断,延时一个市电周期后再去检测外部中断临时标志变量,符合要求就维持继电器状态,否则切回之流供电。
当然硬件上还可以用光耦等器件提升可靠性,那就视需求而定了,总之办法很多。
|
评分
-
1
查看全部评分
-
|