HMC5883L是一个三轴陀螺仪,能实现待测点的地磁场方向。
我在试验中只用到了水平方向的磁场方向。跟据地磁场的知识可知,在北半球,磁场方向指向地面。并且还有地理北极和地磁北极的磁偏角是11度。
使用磁传感器应注意以下几点:
1.读取到的传感器数据是当地磁场在空间x,y,z三个方向上的分量。
2.在水平方向,地磁偏角的计算公式是:磁偏角:Curent_Angle = (atan2(Y,X) * (180 / 3.14159265) + 180);
3.传感器应该以软件的方式校准。
好了,贴上代码:
static void i2c_Delay(void)
{
uint8_t i;
/*
下面的时间是通过安富莱AX-Pro逻辑分析仪测试得到的。
CPU主频72MHz时,在内部Flash运行, MDK工程不优化
循环次数为10时,SCL频率 = 205KHz
循环次数为7时,SCL频率 = 347KHz, SCL高电平时间1.5us,SCL低电平时间2.87us
循环次数为5时,SCL频率 = 421KHz, SCL高电平时间1.25us,SCL低电平时间2.375us
IAR工程编译效率高,不能设置为7
*/
for (i = 0; i < 10; i++);
}
void i2c_Start(void)
{
/* 当SCL高电平时,SDA出现一个下跳沿表示I2C总线启动信号 */
I2C_SDA_1();
i2c_Delay();
I2C_SCL_1();
i2c_Delay();
I2C_SDA_0();
i2c_Delay();
I2C_SCL_0();
i2c_Delay();
}
void i2c_Stop(void)
{
/* 当SCL高电平时,SDA出现一个上跳沿表示I2C总线停止信号 */
I2C_SDA_0();
i2c_Delay();
I2C_SCL_1();
i2c_Delay();
I2C_SDA_1();
}
void i2c_Send

本文介绍了HMC5883L三轴陀螺仪在北半球的应用,主要关注水平方向的地磁场测量。通过计算磁偏角来获取实际方向,并强调了传感器数据的地理意义及磁偏角的计算公式。此外,文章提到了软件校准传感器的重要性,并提供了相关代码。
&spm=1001.2101.3001.5002&articleId=50018301&d=1&t=3&u=cca1f2bfd0dd4297a30377af794cfcc4)
&spm=1001.2101.3001.11663&articleId=50018301&d=1&t=3&u=9e340d5d30734a349c6dcd786ace2f4a)

被折叠的 条评论
为什么被折叠?



