|
用途:測量地磁方向,測量物體靜止時候的方向,測量傳感器周圍磁力線的方向。注意,測量地磁時候容易受到周圍磁場影響,
主芯片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
205520desfhb8ho4g8esyf.jpg (50.62 KB, 下載次數: 227)
下載附件
2016-4-14 04:11 上傳
連接方法:
只要連接VCC,GND,SDA,SCL四條線。Arduino GND -> HMC5883L GNDArduino 3.3V -> HMC5883L VCCArduino A4 (SDA) -> HMC5883L SDAArduino A5 (SCL) -> HMC5883L SCL
(注意,接線是A4,A5,不是D4,D5)
程序編寫:下載HMC5883L庫文件。下載地址:
HMC5883L.zip
(5.55 KB, 下載次數: 100)
2016-4-14 02:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
主要程序預覽:
解壓HMC5883L庫文件到arduino文件夾:arduino-0022libraries下面。編寫以下程序,下載下面測試程序到arduino:
#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);
}
打開Arduino串口監視器即可看到結果(X平面角度,Y平面角度,Z平面角度):
210631cqcqcocchk4pak94.jpg (58.27 KB, 下載次數: 237)
下載附件
2016-4-14 04:11 上傳
|
|