磁场是重要的物理量,在教学、科研中经常需要测量,通常会买个手持磁场测试仪(简称高斯计或特斯拉计,指的是测量单位),但大都不具备联机记录的功能,这里演示用MCUSH/Python/I2C接口自制一个带电脑记录功能的低成本磁场记录装置。
需要用到Honeywell生产的HMC5883L,这是I2C接口的三轴电子罗盘芯片,量程可选(最大±8 Gauss),内置ADC精度12比特(粗略地认为3位半精度)。模块在某宝售价¥30~50不等,也有国产的替代型号(质量如何未知,没有试过不好评价)。
框图看似复杂,实际模块连接只需4根线:VCC/GND/SDA/SCL,(另外有独立的DRDY信号表示数据就绪,适合中断方式实现高速率采样,这里不用接了)。
需要特别提醒的是,传感器侧不要使用含铁磁材料的零件,如铁做的插针/插座,以及铁材料的导线,这些材料不仅会干扰被测磁场,而且材料的剩磁会导致零位误差。上图中的导线都直接焊接在传感器板上,不用接插件过渡。
如何区分呢?简单办法用块强磁试试。有些劣质导线用铁代替铜很容易就检测出来(下图中的杜邦线材在强磁面前暴露无遗)。
接线完成,回到芯片控制,这是非常经典的I2C控制方式,共13个寄存器(都是单字节宽度),支持连续地址的读写。