蜗蜗牛 发表于 2018-3-24 18:25:47

地磁传感器

现在有了HTMC5883L的库文件了,也能编译成功,地磁是新买的,但是串口输出的数值没有丝毫变化

蜗蜗牛 发表于 2018-3-24 18:29:29

希望有大神解决,关于车位检测,想用这个模块感觉比较好,啊!求解

中锐老殷 发表于 2018-3-28 08:00:00

你这发的啥啊,问题也没说明白

蜗蜗牛 发表于 2018-3-28 15:34:30

中锐老殷 发表于 2018-3-28 08:00
你这发的啥啊,问题也没说明白

问题就是:现在在弄HMC5883L,刚用不太会,所以传的是别人的代码(代码如下),串口输出的数值就是我上传的图片,没有任何变化是怎么回事?改变位置什么的也没有。
#include <Wire.h>
#include <HMC5883L.h>
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(",");
Serial.print(yDegrees);
Serial.print(",");
Serial.print(zDegrees);
Serial.println(";");
delay(100);
}
页: [1]
查看完整版本: 地磁传感器