“SKU:RB-02S112 电子罗盘”的版本间的差异
来自ALSROBOT WiKi
(以“==产品概述== 电子罗盘,又称数字罗盘,在现代技术条件中电子罗盘作为导航仪器或姿态传感器已被广泛应用。此款传感器是...”为内容创建页面) |
|||
第1行: | 第1行: | ||
+ | [[文件:02S11201.png|500px|缩略图|右]] | ||
==产品概述== | ==产品概述== | ||
电子罗盘,又称数字罗盘,在现代技术条件中电子罗盘作为导航仪器或姿态传感器已被广泛应用。此款传感器是三轴数字罗盘,采用I2C串行总线接口,芯片选用Honeywell HMC5883L,具有高精度,偏移抑制等特点。此传感器具有12位ADC、低噪声、自检测、低电压操作和宽磁场范围等特点,并且内置驱动电路,采用I2C数字接口,体积小,轻便,操作简单。 | 电子罗盘,又称数字罗盘,在现代技术条件中电子罗盘作为导航仪器或姿态传感器已被广泛应用。此款传感器是三轴数字罗盘,采用I2C串行总线接口,芯片选用Honeywell HMC5883L,具有高精度,偏移抑制等特点。此传感器具有12位ADC、低噪声、自检测、低电压操作和宽磁场范围等特点,并且内置驱动电路,采用I2C数字接口,体积小,轻便,操作简单。 | ||
第162行: | 第163行: | ||
[[文件:erweima.png|230px|无框|右]] | [[文件:erweima.png|230px|无框|右]] | ||
===产品购买地址=== | ===产品购买地址=== | ||
− | + | * [http://www.alsrobot.cn/goods-772.html 电子罗盘传感器 HMC5883L模块] | |
===相关学习资料=== | ===相关学习资料=== | ||
* [https://cdn-shop.adafruit.com/datasheets/HMC5883L_3-Axis_Digital_Compass_IC.pdf HMC5883L_datasheet 下载 ] | * [https://cdn-shop.adafruit.com/datasheets/HMC5883L_3-Axis_Digital_Compass_IC.pdf HMC5883L_datasheet 下载 ] | ||
* [https://github.com/jarzebski/Arduino-HMC5883L 库文件下载] | * [https://github.com/jarzebski/Arduino-HMC5883L 库文件下载] |
2016年12月8日 (四) 17:33的版本
目录 |
产品概述
电子罗盘,又称数字罗盘,在现代技术条件中电子罗盘作为导航仪器或姿态传感器已被广泛应用。此款传感器是三轴数字罗盘,采用I2C串行总线接口,芯片选用Honeywell HMC5883L,具有高精度,偏移抑制等特点。此传感器具有12位ADC、低噪声、自检测、低电压操作和宽磁场范围等特点,并且内置驱动电路,采用I2C数字接口,体积小,轻便,操作简单。
产品参数
- 产品类型:数字传感器
- 接口类型:KF2510
- 工作电压:5V
- 工作温度:-25℃~+85℃
- 产品尺寸(mm):30x25mm
- 固定孔尺寸(mm):M3 * 4个
- 固定孔间距:23 * 18 mm
- 重量(g):3g
使用方法
1、测试环境
- 硬件环境:Arduino 、电子罗盘
- 软件环境:Arduino IDE 1.7.7
2、引脚定义
- SDA:I2C总线的数据线引脚
- SCL:2C总线的时钟信号引脚
- -:电源负极
- +:电源正极
3、硬件连接
4、测试程序
#include <Wire.h> #include <HMC5883L.h> HMC5883L compass; void setup() { Serial.begin(9600); // 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 // +/- 0.88 Ga: HMC5883L_RANGE_0_88GA // +/- 1.30 Ga: HMC5883L_RANGE_1_3GA (default) // +/- 1.90 Ga: HMC5883L_RANGE_1_9GA // +/- 2.50 Ga: HMC5883L_RANGE_2_5GA // +/- 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() { Serial.print("Selected range: "); switch (compass.getRange()) { case HMC5883L_RANGE_0_88GA: Serial.println("0.88 Ga"); break; case HMC5883L_RANGE_1_3GA: Serial.println("1.3 Ga"); break; case HMC5883L_RANGE_1_9GA: Serial.println("1.9 Ga"); break; case HMC5883L_RANGE_2_5GA: Serial.println("2.5 Ga"); break; 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()) { case HMC5883L_IDLE: Serial.println("Idle mode"); break; case HMC5883L_SINGLE: Serial.println("Single-Measurement"); break; case HMC5883L_CONTINOUS: Serial.println("Continuous-Measurement"); break; default: Serial.println("Bad mode!"); } Serial.print("Selected Data Rate: "); 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: "); switch (compass.getSamples()) { case HMC5883L_SAMPLES_1: Serial.println("1"); break; case HMC5883L_SAMPLES_2: Serial.println("2"); break; case HMC5883L_SAMPLES_4: Serial.println("4"); break; case HMC5883L_SAMPLES_8: Serial.println("8"); break; default: Serial.println("Bad number of samples!"); } } 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); }
5、程序效果
在串口监控窗口中分别打印X、Y、Z轴输出值,如图所示: