水管旁刚滴水,双电极怎样让提醒灯亮?
本文为教学接线与设计预期,尚无实物测量记录;使用 NUCLEO-F030R8。
问题
水管旁刚有一滴水,贴在地面的两片金属本来没有接触,为什么提醒灯可能亮?关键不是水自己会发数字,而是水可能让两片电极之间有了导电通路。这里先做三点三伏低压教学演示,不接家用水泵或市电。
物件动作
想象小熊拿一张蓝色水滴卡,从左边电极走到右边电极;没有卡时,两边隔着空隙。小熊把卡横跨空隙,门卫拿电压尺发现读数下降,再举红旗。回到电路,水滴卡是电极间的导电路径,尺是单片机读到的输入电压。
真实连接
开发板三点三伏先经过一万欧电阻,再到检测点。检测点接第一片电极,也接 A0 模拟输入;第二片电极接开发板地。板卡 D6 输出经过一千欧电阻和小红灯回地。两片电极只贴在绝缘底片上,彼此留缝,不让铜片直接短接。
原因与结果
干燥时,两片电极不通,检测点被电阻拉向三点三伏。若水滴把它们连起来,电流经水回地,检测点可能下降。程序看到电压低于现场校准门槛并连续三次符合,才点亮提醒灯;回升到另一门槛连续五次才熄灭,避免边缘闪烁。
验证
断电核对地线和两电极不短路。黑表笔接地,红表笔量 A0:干燥时预期接近三点三伏;滴水后记录电压和采样值。二千零四十八只是水的电阻恰为一万欧时的计算例子,不是实测。
边界
很纯的水可能导电很弱,盐分和电极间距又会改变读数,门槛必须现场校准。持续直流可能腐蚀裸露电极,长期使用要换合适的成品传感器。此灯只作教学提醒,不能替代可靠的漏水保护。
先明确:这是一只桌面低压演示,不是住宅防漏认证设备
把一小片绝缘底片放在水管旁的安全桌面模型里,上面固定两片互不接触的金属电极 E1、E2;一滴具有一定导电性的水同时碰到两片时,电流可能从 E1 经水流向 E2。这里‘可能’很重要:不同水质、接触面积、电极间距和表面污物,都会让电阻大幅变化。干燥或超纯水都不能简单等同于某个固定数字。不能把演示贴片安装在带市电的水泵、插座或未知导体旁,也不能承诺任何一次漏水必然报警。
小熊拿蓝色水滴卡从左电极走到右电极,横跨两片之间的空隙;门卫先拿电压尺看读数,再举红旗。对应关系依次是:水滴卡对应电极间的等效电阻,尺对应 PA0 对地电压,红旗对应 PB10 控制的低压 LED。旗不是被水直接供电,必须先经过单片机的采样和判断。若水滴只碰到 E1 而未碰到 E2,导电回路没有闭合,不能把一片潮湿直接描述为必定触发。
一条真正能追到端点的接线
本例用 ST NUCLEO-F030R8 开发板。ST UM1724 Rev17 表11标出 CN6 的 3V3/GND、CN8 A0=PA0/ADC_IN0、CN9 D6=PB10;ST DS9773 Rev5 说明 STM32F030R8 有十二位 ADC,并给出低压供电范围。CN6 3V3 先接 R1=10 kΩ,再到名为 SENSE 的节点。SENSE 同时连接 E1 和 CN8 A0/PA0;E2 接 CN6 GND。板卡由它规定的 USB 供电路径供电,不再向 CN6 3V3 或检测点灌入另一组五伏。断电用通断档确认 E1、E2 平时不相碰,再核对每根线。
提醒端单独走另一条回路:CN9 D6/PB10 接 R2=1 kΩ,接一只普通低压红色 LED 的阳极;LED 阴极回到同一个 CN6 GND。LED 的极性和正向压降须按手头实际型号检查,R2 是本例限流选择,不能省略。PA0 只测电压,不向 LED 供电;PB10 才承担程序确认后的输出。图里 E1/E2、R1、R2、L1 和板卡均有独立端点,没有把功能箭头冒充导线。
为什么水会改变电压,什么时候不会
E1/E2 断开时,SENSE 经 R1 拉向 3.3 V,理想十二位 ADC 的最高读数接近 4095,但实际参考电压和输入噪声会改变读数。水形成等效电阻 Rw 后,R1 与 Rw 构成分压:V_SENSE≈3.3×Rw/(10000+Rw)。仅作为可复算的条件例子,若 Rw 恰好为 10 kΩ,V_SENSE≈1.65 V,对应理想码约 1.65/3.3×4095≈2048。若 Rw 为 100 kΩ,电压约 3.0 V,读数便接近干燥状态;若水几乎不导电,电压可能根本降不到报警门槛。因此‘有水’不自动等于‘低电平’,不能把 2048 写成任何自来水的实测值。
即使两片电极被金属直接短住,R1 的理想最大电流也约为 3.3 V/10000 Ω=0.33 mA。这个数只说明本例电阻支路的设计限流,不说明整套装置通过人体安全或家装认证。通电裸露金属可能发生电化学腐蚀,污垢又会形成假导电路径;这也是长期使用应改用经过选择和测试的成品漏水传感器、合适防护与故障自检的原因。
用两个门槛和连续采样,把偶然波动同持续漏水分开
本例先以低于 2500 连续三次作为点亮条件,以高于 3300 连续五次作为熄灭条件。两门槛是课堂演示值,不是厂家规定的水质标准。若每 100 ms 取样一次,则连续次数分别约覆盖 300 ms 与 500 ms 的样例观察窗;真实程序应记录实际采样间隔、ADC 采样时间,并根据现场干燥与湿润读数重新校准。中间的 2500–3300 区间保留上一次状态;例如灯已亮而读数回到 2900,灯不立刻熄灭,避免在水滴边缘明暗跳动。
随文 C11 程序只给一串预设 ADC 整数做确定性状态演算,并复算 1.65 V、2048 和 0.33 mA。它没有配置 STM32 的 ADC/GPIO 寄存器,也没有读到板上真实的水;不能直接烧录并宣称已有防漏功能。真机程序还应处理 ADC 初始化失败、传感器断线、上电自检以及提示灯故障,否则故障可能被误看成‘干燥’。
验证要量什么,结论最多能说到哪里
先断电确认 E1/E2 在干燥时不连通、LED 极性正确,再用规定方式给板卡上电。万用表黑表笔接 CN6 GND,红表笔量 SENSE:先记录干燥电压和 ADC 原始码,然后只在探头外端滴一点水,记录当时水质、滴量、电压、码值以及 LED 状态。擦干后再记录恢复过程。还要测试水滴只碰到一片、电极污损、探头断线和长期潮湿等反例,不能只挑一次成功亮灯的场景。本文没有这些原始记录;画面的电压和指示状态全部叫‘设计预期’或‘条件计算’,不写‘实测正常’。
若实物测试发现湿时仍高于 2500,应先检查是否跨接两电极、万用表接地是否正确以及水的导电性,再用现场数据决定门槛;不要为了强行触发而把外部五伏或市电送进 PA0。住宅实际防漏还要考虑断电、传感器失效、告警能否送达以及住户应急处理。这个 LED 只能教你看懂‘水改变导电路径→节点电压改变→ADC 判断→GPIO 点灯’这一条因果。
逐线接线清单
- NUCLEO CN6 3V3 → R1 10 kΩ 一端:只用板上 3.3 V,不接市电或 5 V 到 ADC
- R1 另一端 → 检测节点 SENSE、E1 与 CN8 A0/PA0:干燥时上拉;PA0 只测电压,不给电极直接供电
- E2 → NUCLEO CN6 GND:水跨过 E1/E2 才可能形成到地的导电路径
- NUCLEO CN9 D6/PB10 → R2 1 kΩ→L1 LED 阳极:程序确认后由 GPIO 给低压灯供电
- L1 LED 阴极 → NUCLEO CN6 GND:提醒灯返回公共地
- 万用表红表笔/黑表笔(可选) → CN8 A0/PA0 与 CN6 GND:计划量测检测节点,未提供实测数据
计算与实施边界
- ST UM1724 Rev17 表11:NUCLEO-F030R8 CN6 3V3/GND,CN8 A0=PA0/ADC_IN0,CN9 D6=PB10;ST DS9773 Rev5:STM32F030R8 有 12 位 ADC,目标供电为 2.4–3.6 V
- E1/E2 是本例自制的两片裸露低压电极,不冒充厂家成品传感器;必须贴在绝缘底片、保持断开,供电端始终经 10 kΩ 限流
- 理想演算:若水的等效电阻恰为 10 kΩ,V_SENSE=3.3×10/(10+10)=1.65 V;12 位理想 ADC 码约 2048,实际水质与接触面积未知,不能预设现场一定得到该值
- 最坏理想短接时 R1 支路上限 3.3 V/10 kΩ=0.33 mA;这是限流设计计算,不是实测安全认证;LED 电流另由 R2 限制并需按具体 LED 正向电压核对
- 教学用连续三次低于 2500 触发、连续五次高于 3300 解除;两阈值均是示范参数,未按现场水质校准前不能用于真实防漏保护
- 仅在安全隔离的低压桌面演示,不贴近家用市电、电机接线盒或带电水泵;持续 DC 可加速电极腐蚀,长期监测需合适防护与可靠性设计
- 所有电压、码值与时间均为设计预期或条件算例;没有万用表原始记录或真实漏水测试,不能写成实测
这些参数和数值是本例选择或可复算计算;实际测量前,应先检查电源极性、公共地、元件额定值、仪器探头连接。
完整可运行的核心算例与验收
以下 C11 程序可在电脑上用 C 编译器单独编译运行,用来复算状态或数值;它不是已配置 GPIO、ADC、定时器和驱动的开发板固件。移植到实板时应按前述接线配置外设、检查读取错误,并另做实测。
#include<stdbool.h>#include<stdio.h>/* 只复算门槛状态和理想分压;不是可直接烧录的 ADC/GPIO 驱动。 */typedefstruct{bool alert;unsignedlow_run,high_run;}Leak;staticvoidstep(Leak*s,unsignedadc){if(!s->alert){s->low_run=adc<2500u?s->low_run+1u:0u;if(s->low_run>=3u){s->alert=true;s->high_run=0u;}}else{s->high_run=adc>3300u?s->high_run+1u:0u;if(s->high_run>=5u){s->alert=false;s->low_run=0u;}}}intmain(void){constunsigneddemo[]={4090u,2300u,2250u,2200u,2900u,3400u,3450u,3500u,3550u,3600u};Leak s={false,0u,0u};for(unsignedi=0u;i<sizeofdemo/sizeofdemo[0];++i){step(&s,demo[i]);printf("sample %u: adc=%u, light=%s\n",i+1u,demo[i],s.alert?"ON":"OFF");}constdoublesensor_v=3.3*10000.0/(10000.0+10000.0);printf("only if water path is 10 kohm: %.2f V, ideal ADC %.0f\n",sensor_v,sensor_v/3.3*4095.0);printf("ideal short current through R1: %.2f mA\n",3.3/10000.0*1000.0);return0;}验收时同时记录输入、关键节点电压或波形、程序输出;若发现传感器通信失败、输入超出允许范围或波形明显异常,应停止并排查。
官方资料
- https://www.st.com/resource/en/user_manual/um1724-.pdf
- https://www.st.com/resource/en/datasheet/stm32f030r8.pdf