4、电源监控与保护:给系统装上“保险丝”和“报警器”

做温室控制系统,最怕什么?不是传感器坏了,也不是程序跑飞了,而是电源出问题。我见过一个项目,整个大棚的控制器因为一次雷击感应,电源瞬间飙升到40V,结果后面所有的单片机、继电器、通信模块全烧了。那叫一个惨。

所以这一章,咱们聊聊电源的“安保系统”。说白了,就是给电源装上保险丝、报警器和看门狗。让系统在异常时能自己切断,或者至少能告诉你“我不行了”。

4.1 过压/欠压保护:电压的“红绿灯”

温室系统里,电源电压不是永远稳定的。白天光伏板电压高,晚上蓄电池电压低,再加上线路压降,电压波动是常态。但MCU和传感器对电压有严格要求——比如5V系统,超过5.5V就可能烧片子,低于4.5V就可能复位。

过压保护(OVP)欠压保护(UVP),就是给电压设两个阈值。超过上限就切断,低于下限也切断。

关键参数:

  • 过压阈值:一般设为额定电压的110%~120%。比如12V系统,阈值设在13.2V~14.4V。
  • 欠压阈值:一般设为额定电压的80%~90%。12V系统,阈值设在9.6V~10.8V。
  • 迟滞电压:防止在阈值附近反复跳变。一般设0.5V~1V的迟滞。

我常用的方案是用电压比较器+基准源。比如LM393加TL431,成本低,响应快。也可以用集成电源监控芯片,比如MAX8211,一个芯片搞定OVP和UVP。

嗯,这里要注意:过压保护一定要快。我遇到过用MCU采样电压然后软件判断的方案,结果MCU自己先被过压烧了。所以硬件保护是必须的,软件保护只是辅助。

4.2 过流保护(OCP):别让电流“撑死”

过流保护,说白了就是防止负载短路或过载导致电源损坏。温室系统里,电机启动、电磁阀吸合瞬间电流都很大,容易触发误保护。所以OCP的设计要区分“瞬时过流”和“持续过流”。

常用方案:

  • 自恢复保险丝(PTC):成本低,自动恢复,适合小电流负载。但响应慢,精度差。
  • 电流检测电阻+比较器:精度高,响应快,可调阈值。适合大电流或关键负载。
  • 集成电流监控芯片:比如INA219,带I2C接口,可以实时读取电流值。适合需要监控的场合。

我的经验:对于温室里的水泵电机,我建议用“反时限”保护。就是电流越大,动作越快;电流小一点,可以撑久一点。这样既能躲过启动浪涌,又能保护电机。用热继电器或者软件算法都能实现。

4.3 短路保护(SCP):最后的“防火墙”

短路保护是过流保护的极端情况。当输出端直接短路时,电流可能瞬间飙升到几十安培。这时候,保护电路必须在微秒级内动作,否则电源、线缆、PCB铜箔都可能烧毁。

我推荐的做法:

  • 使用带短路保护的电源芯片:比如LM2596、TPS5430这类DC-DC芯片,内部自带短路保护,输出短路时自动打嗝(hiccup模式)。
  • 分立元件方案:用MOS管+采样电阻+比较器,做成电子保险丝。响应速度可以做到1μs以内。
  • 保险丝:最传统也最可靠。但注意,保险丝熔断后需要更换,不适合无人值守的温室。

警告:千万不要只用MCU做短路保护!MCU的ADC采样速度太慢,等它反应过来,MOS管已经冒烟了。短路保护必须用硬件电路实现,MCU只做记录和报警。

4.4 上电时序控制:谁先谁后,有讲究

温室系统里,不同模块对电源的上电顺序有要求。比如MCU先上电,然后传感器再上电,最后继电器才上电。为什么?因为如果继电器先上电,而MCU还没初始化,继电器可能误动作,把水泵给开了。

上电时序控制的方法:

  • RC延时电路:最简单,用电阻电容组成延时,驱动MOS管或继电器。成本低,但精度差。
  • 电源监控芯片:比如TPS3808,可以设定延时时间,输出复位信号。精度高,适合MCU上电。
  • 专用上电时序芯片:比如ADM1184,可以控制多路电源的上下电顺序。适合复杂系统。

我记得有一次做温室控制器,MCU和4G模块共用一路电源。结果每次上电,4G模块瞬间电流太大,把MCU电压拉低,导致MCU复位。后来加了上电时序,先让MCU稳定,再给4G模块供电,问题就解决了。

上电时序设计要点:

  1. 先给MCU和逻辑电路上电,再给大功率负载上电。
  2. 不同电压轨之间,延时至少10ms以上。
  3. 断电时,顺序反过来:先断大功率,再断逻辑。

4.5 电源状态指示:让系统“开口说话”

电源状态指示,就是告诉用户“我现在好不好”。温室里可能没人盯着,但指示灯和报警信号能让维护人员快速定位问题。

常见的指示方式:

  • LED指示灯:绿色表示正常,红色表示故障。简单直观。
  • 蜂鸣器:故障时发出声音报警。适合需要立即处理的故障。
  • 数字信号输出:通过GPIO或I2C输出状态码,供MCU读取。
  • 通信上报:通过RS485或无线模块,把电源状态上报到监控平台。

我常用的状态定义:

状态 LED颜色 含义
正常 绿色常亮 电压、电流都在正常范围
过压警告 黄色闪烁 电压偏高,但未到保护阈值
欠压警告 黄色闪烁 电压偏低,但未到保护阈值
过流保护 红色常亮 电流超过阈值,已切断输出
短路保护 红色快速闪烁 输出短路,已切断输出

一个小技巧:我习惯在电源输入端加一个“上电指示”LED。只要电源有电,这个灯就亮。这样即使系统死机了,也能快速判断是电源问题还是板子问题。

4.6 综合设计示例:一个完整的电源监控电路

说了这么多,咱们来个实战。下面是一个温室控制器电源监控的简化电路,集成了过压、欠压、过流保护和状态指示。

// 伪代码:电源监控逻辑
void power_monitor_task() {
    float v_in = read_voltage(ADC_CH_VIN);   // 读取输入电压
    float i_out = read_current(ADC_CH_IOUT); // 读取输出电流
    
    // 过压/欠压检测
    if (v_in > OVP_THRESHOLD) {
        set_led(RED, BLINK_FAST);
        disable_output();  // 硬件切断输出
        log_error("OVP triggered");
    } else if (v_in < UVP_THRESHOLD) {
        set_led(YELLOW, ON);
        log_warning("UVP warning");
    } else {
        set_led(GREEN, ON);
    }
    
    // 过流检测
    if (i_out > OCP_THRESHOLD) {
        set_led(RED, ON);
        disable_output();
        log_error("OCP triggered");
    }
    
    // 上报状态
    send_status_to_master(v_in, i_out, fault_code);
}

实际硬件上,我会用LM393做比较器,TL431做基准,IRF9540做PMOS开关。过压和过流信号直接硬件切断PMOS,同时给MCU一个中断信号。这样即使MCU死机,保护功能依然有效。

再次强调:电源监控和保护,硬件是主角,软件是配角。别指望MCU能搞定一切。我见过太多“软件保护”的案例,最后都变成了“烧板子”的案例。

好了,这一章的内容就到这里。电源监控与保护,说白了就是给系统装上一套“免疫系统”。设计好了,系统能扛住各种恶劣工况;设计不好,一个浪涌就能让你前功尽弃。下一章咱们聊聊接地和屏蔽,这也是抗干扰的重头戏。