发表自话题:罗盘的使用方法入门
在影视剧中摸金校尉一把罗盘搞定墓穴位置,风水先生罗盘一转评判住宅吉凶,这罗盘真的有这么神奇?我不知道,但我知道罗盘导航、指示方向确有实效。古代中国最先将罗盘应用于航海,郑和下西洋就是用的它。后人将先辈的智慧发扬光大,也就有了更适用于现代社会的电子罗盘。
实验名称:HMC5883L三轴电子罗盘传感器
电子罗盘,又称数字罗盘,在现代技术条件中电子罗盘作为导航仪器或姿态传感器已被广泛应用。电子罗盘与传统指针式和平衡架结构罗盘相比能耗低、体积小、重量轻、精度高、可微型化,其输出信号通过处理可以实现数码显示,不仅可以用来指向,其数字信号可直接送到自动舵,控制船舶的操纵。目前,广为使用的是三轴捷联磁阻式数字磁罗盘,这种罗盘具有抗摇动和抗振性、航向精度较高、对干扰场有电子补偿、可以集成到控制回路中进行数据链接等优点,因而广泛应用于航空、航天、机器人、航海、车辆自主导航等领域。
一、实验说明
Arduino连接HMC5883L三轴电子罗盘传感器。
二、物料清单
PS:所需物料可以在这里购买—http://tbll000175.cn/DXSXCvr4
三、模块说明
四、连线图
五、重要提示
主芯片HMC5883三轴磁阻传感器特点:
1. 数字量输出:I2C数字量输出接口,设计使用非常方便。
2. 尺寸小: 3x3x0.9MM LCC封装,适合大规模量产使用。
3. 精度高:1-2度,内置12位A/D,OFFSET, SET/RESET 电路,不会出现磁饱和现象,不会有累加误差。
4. 支持自动校准程序,简化使用步骤,终端产品使用非常方便。
5. 内置自测试电路,方便量产测试,无需增加额外昂贵的测试设备。
6. 功耗低:供电电压1.8V, 功耗睡眠模式-2.5uA 测量模式-0.6MA
六、实验代码
/* 作者:山东迅鸣物联网 时间:2019年1月31日IDE版本号:1.8.5 发表地址: 程序说明:Arduino连接HMC5883L三轴电子罗盘传感器*/#include #include HMC5883L compass; void setup() { Serial.begin(9600); Wire.begin(); compass = HMC5883L(); compass.SetScale(1.3); compass.SetMeasurementMode(Measurement_Continuous); } void loop() { MagnetometerRaw raw = compass.ReadRawAxis(); MagnetometerScaled scaled = compass.ReadScaledAxis(); float xHeading = atan2(scaled.YAxis, scaled.XAxis); float yHeading = atan2(scaled.ZAxis, scaled.XAxis); float zHeading = atan2(scaled.ZAxis, scaled.YAxis); if(xHeading < 0) xHeading += 2*PI; if(xHeading > 2*PI) xHeading -= 2*PI; if(yHeading < 0) yHeading += 2*PI; if(yHeading > 2*PI) yHeading -= 2*PI; if(zHeading < 0) zHeading += 2*PI; if(zHeading > 2*PI) zHeading -= 2*PI; float xDegrees = xHeading * 180/M_PI; float yDegrees = yHeading * 180/M_PI; float zDegrees = zHeading * 180/M_PI; Serial.print(xDegrees); Serial.print(标签组:[罗盘] [电子罗盘] [传感器] [arduino] [hmc5883l]
上一篇:数据分析基础知识大扫盲!
下一篇:TI版全开源飞控使用入门