each directional axis (X, Y, and Z), use the sensor_get_field() function, discussed
below.
NOTE
Magnetic compass sensors generally require a calibration procedure to correct for the
local magnetic fields present in an actual device deployment. Without this calibration,
the heading information will not be accurate. See the compass_calibration example
application for an example of a manual calibration procedure.
7.5.1 Example code sequence
7.5.1.1 Definitions and declarations
#include "sensor.h"
sensor_t
sensor_data_t
compass_dev;
compass_data;
// device descriptor
// heading data from device
7.5.1.2 Sensor initialization
sensor_attach (&compass_dev, SENSOR_TYPE_COMPASS, 0, 0);
7.5.1.3 Sensor read
compass_data.scaled = true;
// read values in degrees and uTesla
sensor_get_field (&compass_dev, &compass_data);
7.5.1.4 Use data in application
int32_t
int32_t
app_direction
app_inclination
= compass_data.heading.direction;
// 0 to 360 deg
= compass_data.heading.inclination;
// -90 to +90 deg
int32_t
app_field_strength = compass_data.heading.strength;
// uTesla
uint32_t app_read_time
= compass_data.timestamp
7.6 Magnetic field strength
In addition to reading a compass heading, a magnetic compass sensor can be used
to obtain multi-axis measurements of the local magnetic field strength (intensity). The
function takes the following form:
sensor_get_field (&device, &mag_data);
where device is the device descriptor of the compass and mag_data is a
sensor_data_t structure to receive the magnetic field strength data.
Scaled magnetic field strength measurements are expressed in microteslas (μT).
When the function returns, the values can be read from the mag_data structure using
the “axis” fields ( axis.x, axis.y, axis.z ).
NOTE
Magnetic compass sensors generally require a calibration procedure to correct for the
local magnetic fields present in an actual device deployment. Without this calibration,
the field strength information will not accurately reflect the external environment of the
sensor. See the compass_calibration example application for an example of a manual
calibration procedure.
18
Atmel AVR4016
8367B-AVR-06/11
相关PDF资料
ATAVRSBIN2 INERTIAL TWO SENSOR BOARD
ATAVRSBLP1 LIGHT AND PROXIMITY SENSOR BOARD
ATAVRSBPR1 BAROMETRIC PRESSURE ONE SNSR BRD
ATQT600 KIT EVAL TOUCH FOR QT600
ATU6-P305T-R CABLE CAT6 FULL-BOX 305M GRAY
ATUP-P305T-R CABLE CAT5E PULL-BOX 305M GRAY
ATUP-V305T-R CABLE CAT5E REEL 305M GRAY
AWG28-05/F-1/300-R CABLE 5 COND MULTI 300' RIBBON
相关代理商/技术参数
ATAVRSBIN2 功能描述:多功能传感器开发工具 9DOF Inertial Sensor Board 2 RoHS:否 制造商:Texas Instruments 工具用于评估:LMP91200 接口类型:SPI 工作电压:1.8 V to 5.5 V 最大工作温度:
ATAVRSBLP1 功能描述:光学传感器开发工具 Ambient Light and Proximity Snsr Brd RoHS:否 制造商:ams 工具用于评估: 接口类型: 最大工作温度:
ATAVRSBPR1 功能描述:压力传感器开发工具 Barometric Pressure Sensor Board 1 RoHS:否 制造商:Freescale Semiconductor 工具用于评估:MPL3115A2 接口类型:USB 最大工作温度:
ATAVRSECURITYX 功能描述:安全/ 验证开发工具 Security Module Kit for Xplain Series RoHS:否 制造商:Digi International 产品:Development Kits 工具用于评估:XEB-AW140 接口类型:SPI, USB 工作电源电压:3.1 V to 3.6 V
ATAVRSMD 功能描述:ADAPTER KIT SMD ICE200 RoHS:否 类别:编程器,开发系统 >> 过时/停产零件编号 系列:- 标准包装:1 系列:- 类型:MCU 适用于相关产品:Freescale MC68HC908LJ/LK(80-QFP ZIF 插口) 所含物品:面板、缆线、软件、数据表和用户手册 其它名称:520-1035
ATAVR-SOAKIT 功能描述:插座和适配器 Standoff Adapter Kit for JTAG debuggers RoHS:否 制造商:Silicon Labs 产品:Adapter 用于:EM35x
ATAVRTEMPSENSORX 功能描述:温度传感器开发工具 Temp Sensor kit for Xplain Series RoHS:否 制造商:Texas Instruments 产品类型:Temperature Sensors and Control ICs 工具用于评估:MSP430G2553 接口类型:USB 工作电源电压: 工作电源电流:
ATAVRTS2080A 功能描述:开发板和工具包 - AVR ATmega88 QTouch QTch kit w/SW librar RoHS:否 制造商:Arduino 产品:Evaluation Boards 工具用于评估:ATMega32U4 核心:AVR 接口类型:I2C, UART, USB 工作电源电压:6 V to 20 V