检测原理
电流互感器(Current Transformer,CT) 是一种用于测量电流的传感器,它利用电磁感应原理将一次侧的大电流按比例转换为二次侧的小电流,从而实现对电流的安全测量和监控。
简单来说,电流互感器就像一个电流缩小器: 它可以把电路中的大电流"按比例缩小",变成仪器和电子设备能够安全测量的小电流。
实验验证
本次使用的电流互感器变比为:2000 : 1
这表示:
- 当一次侧电流为 2000 mA 时
- 二次侧输出电流为 1 mA
也就是说,输出电流是输入电流的 1/2000。
在测试电路中,将被测导线直接穿过电流互感器中心作为一次侧;二次侧并联一个 采样电阻(Burden Resistor),用于将电流信号转换为电压信号进行测量。

使用示波器测量输出电压,并与电流探头测量的电流值进行对比。

测量结果如下:
- 互感器输出(黄色波形)电压峰值 ≈ 70mV
- 电流探头输出(蓝色波形)电压峰值 ≈ 110mV
根据互感器的变比,我们可以计算出电流互感器测量的电流值:
- 电流互感器测量的电流值:
I=70 mV130 Ω×2000=1.08AI=130Ω70mV×2000=1.08A
- 电流探头测量的电流值:
I=110 mV110 mV/A=1.1AI=110mV/A110mV=1.1A
可以看到,电流互感器测量的电流值和电流探头测量的电流值非常接近,说明电流互感器的测量结果是准确的。
ADC采样检测电路
为了实现自动检测,我们可以将电流互感器输出电压接入 MCU 的 ADC,通过检测电压变化来判断是否有电流通过。
电路示意如下:

电路主要包含以下几个部分:
-
采样电阻:将互感器输出的电流转换为电压信号。
-
耦合电容(隔直):阻断互感器回路与偏置电路间的直流分量。
-
直流偏置电路(DC Offset):由于 ESP8266 的 ADC 无法处理负电压,我们通过电阻分压注入一个直流基准。
计算推导:偏置电压
Voffset=VCC×RdownRup+Rdown=3.3V×1kΩ3.57kΩ+1kΩ≈0.722VVoffset=VCC×Rup+RdownRdown=3.3V×3.57kΩ+1kΩ1kΩ≈0.722V
工作原理:
- 无电流时:ADC 输入保持在 0.72V 的静态水平。
- 有电流时:交流信号以 0.72V 为中心上下波动。这种设计有效利用了 ADC 的量程(0-1V),将原始信号的负半周抬升到了正压区间,确保采样完整性。
从前面示波器的输出可以看到,电流互感器会输出一个高峰和一个低谷,分别对应交流电流的正半周和负半周。我们可以在一个周期进行多次采样,通过分析采样数据的最大值和最小值来判断是否有电流流过。
以 50 Hz 交流电为例:
- 一个周期 = 20 ms
如果每 1 ms 采样一次,连续采样 20 次,刚好覆盖一个完整周期。
代码示例
cpp
// 1. 高速采样
for (int i = 0; i < 20; i++) {
samples[i] = analogRead(A0); // 直接读取 0-1023 原始值
delayMicroseconds(1000); // 间隔 1000 微秒 (1ms)
}
unsigned long end_time = micros(); // 记录结束微秒数
// 2. 处理并输出结果
int max_val = 0;
int min_val = 1024;
for (int i = 0; i < 20; i++) {
if (samples[i] > max_val) max_val = samples[i];
if (samples[i] < min_val) min_val = samples[i];
}
电流判断方法
通过比较 采样数据的最大值和最小值,即可判断是否存在电流:
-
如果 max_val ≈ min_val, 说明信号几乎没有变化 → 没有电流
-
如果 max_val 与 min_val 差值较大, 说明存在交流波形 → 有电流
这样就可以利用 电流互感器 + ADC采样实现一个简单可靠的电流检测方案。