“SKU:RB-02S112 電子羅盤(pán)”的版本間的差異

來(lái)自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
?產(chǎn)品相關(guān)推薦
 
(未顯示1個(gè)用戶(hù)的7個(gè)中間版本)
第1行: 第1行:
?
[[文件:02S11201.png|500px|縮略圖|右]]
+
[[文件:02S112001.png|500px|縮略圖|右]]
 
==產(chǎn)品概述==
 
==產(chǎn)品概述==
 
電子羅盤(pán),又稱(chēng)數(shù)字羅盤(pán),在現(xiàn)代技術(shù)條件中電子羅盤(pán)作為導(dǎo)航儀器或姿態(tài)傳感器已被廣泛應(yīng)用。此款傳感器是三軸數(shù)字羅盤(pán),采用I2C串行總線(xiàn)接口,芯片選用Honeywell HMC5883L,具有高精度,偏移抑制等特點(diǎn)。此傳感器具有12位ADC、低噪聲、自檢測(cè)、低電壓操作和寬磁場(chǎng)范圍等特點(diǎn),并且內(nèi)置驅(qū)動(dòng)電路,采用I2C數(shù)字接口,體積小,輕便,操作簡(jiǎn)單。
 
電子羅盤(pán),又稱(chēng)數(shù)字羅盤(pán),在現(xiàn)代技術(shù)條件中電子羅盤(pán)作為導(dǎo)航儀器或姿態(tài)傳感器已被廣泛應(yīng)用。此款傳感器是三軸數(shù)字羅盤(pán),采用I2C串行總線(xiàn)接口,芯片選用Honeywell HMC5883L,具有高精度,偏移抑制等特點(diǎn)。此傳感器具有12位ADC、低噪聲、自檢測(cè)、低電壓操作和寬磁場(chǎng)范圍等特點(diǎn),并且內(nèi)置驅(qū)動(dòng)電路,采用I2C數(shù)字接口,體積小,輕便,操作簡(jiǎn)單。
第13行: 第13行:
 
# 重量(g):3g
 
# 重量(g):3g
  
?
==使用方法==
+
* 產(chǎn)品尺寸圖:
 +
[[文件:size036.jpg|500px|縮略圖|居中]]
 +
 
 +
==基本使用方法==
 
1、測(cè)試環(huán)境<br/>
 
1、測(cè)試環(huán)境<br/>
 
* 硬件環(huán)境:Arduino 、電子羅盤(pán)
 
* 硬件環(huán)境:Arduino 、電子羅盤(pán)
第29行: 第32行:
 
4、測(cè)試程序<br/>
 
4、測(cè)試程序<br/>
 
<pre style='color:blue'>#include <Wire.h>
 
<pre style='color:blue'>#include <Wire.h>
?
#include <HMC5883L.h>
+
/*
 +
Analog input 4 I2C SDA
 +
Analog input 5 I2C SCL
 +
*/
  
?
HMC5883L compass;
+
#include <Wire.h> //I2C Arduino Library
  
?
void setup()
+
#define address 0x1E //0011110b, I2C 7bit address of HMC5883
?
{
+
 
 +
void setup(){
 +
  //Initialize Serial and I2C communications
 
   Serial.begin(9600);
 
   Serial.begin(9600);
?
 
+
   Wire.begin();
?
   // Initialize HMC5883L
+
?
  Serial.println("Initialize HMC5883L");
+
?
  while (!compass.begin())
+
?
  {
+
?
    Serial.println("Could not find a valid HMC5883L sensor, check wiring!");
+
?
    delay(500);
+
?
  }
+
 
    
 
    
?
   // Set measurement range
+
   //Put the HMC5883 IC into the correct operating mode
?
   // +/- 0.88 Ga: HMC5883L_RANGE_0_88GA
+
   Wire.beginTransmission(address); //open communication with HMC5883
?
  // +/- 1.30 Ga: HMC5883L_RANGE_1_3GA (default)
+
   Wire.write(0x02); //select mode register
?
  // +/- 1.90 Ga: HMC5883L_RANGE_1_9GA
+
   Wire.write(0x00); //continuous measurement mode
?
   // +/- 2.50 Ga: HMC5883L_RANGE_2_5GA
+
   Wire.endTransmission();
?
  // +/- 4.00 Ga: HMC5883L_RANGE_4GA
+
?
  // +/- 4.70 Ga: HMC5883L_RANGE_4_7GA
+
?
  // +/- 5.60 Ga: HMC5883L_RANGE_5_6GA
+
?
  // +/- 8.10 Ga: HMC5883L_RANGE_8_1GA
+
?
  compass.setRange(HMC5883L_RANGE_1_3GA);
+
?
 
+
?
  // Set measurement mode
+
?
   // Idle mode:              HMC5883L_IDLE
+
?
  // Single-Measurement:    HMC5883L_SINGLE
+
?
  // Continuous-Measurement: HMC5883L_CONTINOUS (default)
+
?
  compass.setMeasurementMode(HMC5883L_CONTINOUS);
+
?
+
?
  // Set data rate
+
?
   //  0.75Hz: HMC5883L_DATARATE_0_75HZ
+
?
  //  1.50Hz: HMC5883L_DATARATE_1_5HZ
+
?
  //  3.00Hz: HMC5883L_DATARATE_3HZ
+
?
  //  7.50Hz: HMC5883L_DATARATE_7_50HZ
+
?
  // 15.00Hz: HMC5883L_DATARATE_15HZ (default)
+
?
  // 30.00Hz: HMC5883L_DATARATE_30HZ
+
?
  // 75.00Hz: HMC5883L_DATARATE_75HZ
+
?
  compass.setDataRate(HMC5883L_DATARATE_15HZ);
+
?
 
+
?
  // Set number of samples averaged
+
?
  // 1 sample:  HMC5883L_SAMPLES_1 (default)
+
?
  // 2 samples: HMC5883L_SAMPLES_2
+
?
  // 4 samples: HMC5883L_SAMPLES_4
+
?
  // 8 samples: HMC5883L_SAMPLES_8
+
?
  compass.setSamples(HMC5883L_SAMPLES_1);
+
?
 
+
?
  // Check settings
+
?
  checkSettings();
+
 
}
 
}
  
?
void checkSettings()
+
void loop(){
?
{
+
?
  Serial.print("Selected range: ");
+
 
    
 
    
?
   switch (compass.getRange())
+
   int x,y,z; //triple axis data
?
  {
+
 
?
    case HMC5883L_RANGE_0_88GA: Serial.println("0.88 Ga"); break;
+
  //Tell the HMC5883 where to begin reading data
?
    case HMC5883L_RANGE_1_3GA:  Serial.println("1.3 Ga"); break;
+
  Wire.beginTransmission(address);
?
    case HMC5883L_RANGE_1_9GA:  Serial.println("1.9 Ga"); break;
+
  Wire.write(0x03); //select register 3, X MSB register
?
    case HMC5883L_RANGE_2_5GA:  Serial.println("2.5 Ga"); break;
+
  Wire.endTransmission();
?
    case HMC5883L_RANGE_4GA:    Serial.println("4 Ga"); break;
+
?
    case HMC5883L_RANGE_4_7GA:  Serial.println("4.7 Ga"); break;
+
?
    case HMC5883L_RANGE_5_6GA:  Serial.println("5.6 Ga"); break;
+
?
    case HMC5883L_RANGE_8_1GA:  Serial.println("8.1 Ga"); break;
+
?
    default: Serial.println("Bad range!");
+
?
  }
+
 
    
 
    
?
  Serial.print("Selected Measurement Mode: ");
+
   
?
  switch (compass.getMeasurementMode())
+
  //Read data from each axis, 2 registers per axis
?
  {  
+
   Wire.requestFrom(address, 6);
?
    case HMC5883L_IDLE: Serial.println("Idle mode"); break;
+
   if(6<=Wire.available()){
?
    case HMC5883L_SINGLE: Serial.println("Single-Measurement"); break;
+
     x = Wire.read()<<8; //X msb
?
    case HMC5883L_CONTINOUS:  Serial.println("Continuous-Measurement"); break;
+
     x |= Wire.read(); //X lsb
?
    default: Serial.println("Bad mode!");
+
     z = Wire.read()<<8; //Z msb
?
  }
+
     z |= Wire.read(); //Z lsb
?
 
+
     y = Wire.read()<<8; //Y msb
?
   Serial.print("Selected Data Rate: ");
+
     y |= Wire.read(); //Y lsb
?
   switch (compass.getDataRate())
+
?
  {
+
?
     case HMC5883L_DATARATE_0_75_HZ: Serial.println("0.75 Hz"); break;
+
?
     case HMC5883L_DATARATE_1_5HZ:  Serial.println("1.5 Hz"); break;
+
?
     case HMC5883L_DATARATE_3HZ:  Serial.println("3 Hz"); break;
+
?
     case HMC5883L_DATARATE_7_5HZ: Serial.println("7.5 Hz"); break;
+
?
     case HMC5883L_DATARATE_15HZ:  Serial.println("15 Hz"); break;
+
?
     case HMC5883L_DATARATE_30HZ: Serial.println("30 Hz"); break;
+
?
    case HMC5883L_DATARATE_75HZ:  Serial.println("75 Hz"); break;
+
?
    default: Serial.println("Bad data rate!");
+
 
   }
 
   }
 
    
 
    
?
   Serial.print("Selected number of samples: ");
+
  //Print out values of each axis
?
   switch (compass.getSamples())
+
   Serial.print("x: ");
?
  
+
   Serial.print(x);
?
    case HMC5883L_SAMPLES_1: Serial.println("1"); break;
+
   Serial.print(" y: ");
?
    case HMC5883L_SAMPLES_2: Serial.println("2"); break;
+
  Serial.print(y);
?
    case HMC5883L_SAMPLES_4: Serial.println("4"); break;
+
  Serial.print(" z: ");
?
    case HMC5883L_SAMPLES_8: Serial.println("8"); break;
+
  Serial.println(z);
?
    default: Serial.println("Bad number of samples!");
+
 
?
  }
+
  delay(250);
?
 
+
 
}
 
}
?
 
+
</pre>
?
void loop()
+
?
{
+
?
  Vector raw = compass.readRaw();
+
?
  Vector norm = compass.readNormalize();
+
?
 
+
?
  Serial.print(" Xraw = ");
+
?
  Serial.print(raw.XAxis);
+
?
  Serial.print(" Yraw = ");
+
?
  Serial.print(raw.YAxis);
+
?
  Serial.print(" Zraw = ");
+
?
  Serial.print(raw.ZAxis);
+
?
  Serial.print(" Xnorm = ");
+
?
  Serial.print(norm.XAxis);
+
?
  Serial.print(" Ynorm = ");
+
?
  Serial.print(norm.YAxis);
+
?
  Serial.print(" ZNorm = ");
+
?
  Serial.print(norm.ZAxis);
+
?
  Serial.println(); 
+
?
 
+
?
  delay(100);
+
?
} </pre>
+
  
 
5、程序效果<br/>
 
5、程序效果<br/>
第162行: 第92行:
 
==產(chǎn)品相關(guān)推薦==
 
==產(chǎn)品相關(guān)推薦==
 
[[文件:erweima.png|230px|無(wú)框|右]]
 
[[文件:erweima.png|230px|無(wú)框|右]]
 +
=== 產(chǎn)品資料 ===
 +
下載鏈接:https://pan.baidu.com/s/1HsTWYCPT-zUK8L7_o7hpWQ
 +
提取碼:540f
 
===產(chǎn)品購(gòu)買(mǎi)地址===
 
===產(chǎn)品購(gòu)買(mǎi)地址===
 
* [http://lifestyle201.com/goods-772.html 電子羅盤(pán)傳感器 HMC5883L模塊]
 
* [http://lifestyle201.com/goods-772.html 電子羅盤(pán)傳感器 HMC5883L模塊]

2021年12月10日 (五) 10:13的最后版本

02S112001.png

目錄

產(chǎn)品概述

電子羅盤(pán),又稱(chēng)數(shù)字羅盤(pán),在現(xiàn)代技術(shù)條件中電子羅盤(pán)作為導(dǎo)航儀器或姿態(tài)傳感器已被廣泛應(yīng)用。此款傳感器是三軸數(shù)字羅盤(pán),采用I2C串行總線(xiàn)接口,芯片選用Honeywell HMC5883L,具有高精度,偏移抑制等特點(diǎn)。此傳感器具有12位ADC、低噪聲、自檢測(cè)、低電壓操作和寬磁場(chǎng)范圍等特點(diǎn),并且內(nèi)置驅(qū)動(dòng)電路,采用I2C數(shù)字接口,體積小,輕便,操作簡(jiǎn)單。

產(chǎn)品參數(shù)

  1. 產(chǎn)品類(lèi)型:數(shù)字傳感器
  2. 接口類(lèi)型:KF2510
  3. 工作電壓:5V
  4. 工作溫度:-25℃~+85℃
  5. 產(chǎn)品尺寸(mm):30x25mm
  6. 固定孔尺寸(mm):M3 * 4個(gè)
  7. 固定孔間距:23 * 18 mm
  8. 重量(g):3g
  • 產(chǎn)品尺寸圖:
Size036.jpg

基本使用方法

1、測(cè)試環(huán)境

  • 硬件環(huán)境:Arduino 、電子羅盤(pán)
  • 軟件環(huán)境:Arduino IDE 1.7.7

2、引腳定義

  • SDA:I2C總線(xiàn)的數(shù)據(jù)線(xiàn)引腳
  • SCL:2C總線(xiàn)的時(shí)鐘信號(hào)引腳
  • -:電源負(fù)極
  • +:電源正極

3、硬件連接

02S11201.png

4、測(cè)試程序

#include <Wire.h>
/*
Analog input 4 I2C SDA
Analog input 5 I2C SCL
*/

#include <Wire.h> //I2C Arduino Library

#define address 0x1E //0011110b, I2C 7bit address of HMC5883

void setup(){
  //Initialize Serial and I2C communications
  Serial.begin(9600);
  Wire.begin();
  
  //Put the HMC5883 IC into the correct operating mode
  Wire.beginTransmission(address); //open communication with HMC5883
  Wire.write(0x02); //select mode register
  Wire.write(0x00); //continuous measurement mode
  Wire.endTransmission();
}

void loop(){
  
  int x,y,z; //triple axis data

  //Tell the HMC5883 where to begin reading data
  Wire.beginTransmission(address);
  Wire.write(0x03); //select register 3, X MSB register
  Wire.endTransmission();
  
 
 //Read data from each axis, 2 registers per axis
  Wire.requestFrom(address, 6);
  if(6<=Wire.available()){
    x = Wire.read()<<8; //X msb
    x |= Wire.read(); //X lsb
    z = Wire.read()<<8; //Z msb
    z |= Wire.read(); //Z lsb
    y = Wire.read()<<8; //Y msb
    y |= Wire.read(); //Y lsb
  }
  
  //Print out values of each axis
  Serial.print("x: ");
  Serial.print(x);
  Serial.print("  y: ");
  Serial.print(y);
  Serial.print("  z: ");
  Serial.println(z);
  
  delay(250);
}

5、程序效果
在串口監(jiān)控窗口中分別打印X、Y、Z軸輸出值,如圖所示:

02S11202.png

產(chǎn)品相關(guān)推薦

Erweima.png

產(chǎn)品資料

下載鏈接:https://pan.baidu.com/s/1HsTWYCPT-zUK8L7_o7hpWQ 提取碼:540f

產(chǎn)品購(gòu)買(mǎi)地址

相關(guān)學(xué)習(xí)資料