4. 数据采集基础:交流电采样原理、CT传感器接线、ADC转换与校准
大家好,我是老张。今天咱们聊点实在的——怎么把家里那根220V交流电线上的用电数据,变成单片机看得懂的数值。说白了,就是数据采集的第一步。
很多朋友一上来就想着搞算法、做预测,结果卡在最基础的采样环节。我见过不少项目,硬件焊好了,代码写完了,一上电读数全是乱的。嗯,问题往往出在采样原理没吃透。
4.1 交流电采样原理
先搞清楚一件事:我们家里的电是交流电,50Hz的正弦波。单片机只能读0~3.3V的直流电压信号。所以中间必须有个转换过程。
我个人习惯把采样分成三步:
- 降压隔离——把220V高压变成低压小信号
- 偏置抬升——把交流信号抬到ADC能采的范围内
- 模数转换——把模拟电压变成数字量
为什么要隔离?你想想看,220V直接怼到单片机上,那可不是闹着玩的。我在项目中遇到过一位新手,直接把市电分压后送ADC,结果板子冒烟了。所以,隔离是底线。
核心要点:交流采样必须使用互感器或隔离放大器,绝对不能直接电阻分压后接入MCU。
4.2 CT传感器接线实战
电流互感器(CT)是咱们最常用的传感器。它本质上就是个变压器,把大电流变成小电流。
选型时注意几点:
- 变比:比如1000:1,意味着一次侧100A对应二次侧100mA
- 精度等级:家用0.5级够用,工业场合要0.2级
- 开口式 vs 闭口式:开口式方便安装,但精度稍差
接线时有个坑,我踩过。CT二次侧绝对不能开路!一旦开路,会产生高压,轻则烧设备,重则伤人。所以CT输出端一定要并联一个采样电阻,或者直接接运放。
警告:CT二次侧严禁开路!接线前先确认采样电阻已连接。我曾经见过有人忘记接电阻,结果CT直接炸了。
典型的接线方式是这样的:
CT输出端 → 采样电阻(如100Ω)→ 运放调理电路 → ADC输入
采样电阻的取值有讲究。假设CT变比1000:1,二次侧额定电流5A时输出5mA。如果采样电阻取100Ω,那么二次侧电压就是0.5V。这个值偏小,需要运放放大。
小技巧:我个人习惯把采样电阻取大一点,比如200Ω,这样二次侧电压能到1V,信噪比更好。但要注意电阻功率,别烧了。
4.3 ADC转换与校准
ADC转换,说白了就是把模拟电压变成数字。STM32的ADC是12位的,分辨率4096。3.3V参考电压下,每个LSB对应约0.8mV。
但实际采样没这么简单。交流信号有正有负,而ADC只能采0~3.3V。所以需要加一个直流偏置,把交流信号抬到1.65V左右。
我常用的电路是这样的:
交流信号 → 隔直电容 → 加法器(叠加1.65V偏置)→ ADC输入
采样完成后,软件里要减去偏置值,才能还原真实的交流波形。
校准这块,很多人会忽略。ADC本身有增益误差和偏移误差。我建议做两步校准:
- 零点校准:输入0V时,读ADC值,记作offset
- 满量程校准:输入已知电压(如2.5V),计算实际增益
校准公式很简单:
实际电压 = (ADC值 - offset) * 参考电压 / (4096 * gain)
其中gain = (已知电压 * 4096) / (满量程ADC值 - offset)
经验之谈:我做过一个项目,ADC读数总是偏大5%。查了半天,发现是参考电压芯片精度不够。后来换了高精度基准源,问题解决。所以,校准不只是软件的事,硬件底子要打好。
4.4 知识体系总览
下面这张图,是我画的数据采集整体流程。你可以对照着看,每一步都别漏。
4.5 实战中的几个坑
最后,分享几个我踩过的坑,你遇到了可以少走弯路。
- 采样率不够:50Hz信号,至少采2kHz。我见过有人用100Hz采样,结果算出来的功率全是错的。
- 偏置电压漂移:温度变化会导致偏置漂移。我建议用软件定期校准,或者用高精度基准源。
- 地线干扰:CT输出是差分信号,地线处理不好会引入共模干扰。我习惯用差分运放,效果很好。
我的习惯:每次上电后先做一次零点校准,然后才开始正常采样。这样能消除温漂和器件老化的影响。
好了,数据采集基础就聊到这儿。记住,采样是后面所有分析的基础。基础打不牢,后面全是空中楼阁。