Skip to content

LSM303_Tilt_Compensated_Compass(SEN0079)

Angelo edited this page Sep 21, 2016 · 3 revisions

LSM303 Tilt Compensated Compass

Introduction

The LSM303DLH is a triple axis accelerometer combined with a triple axis magnetic sensor. This breakout board uses the LSM303DLH to give you the data you need to feed into a microcontroller and calculate tilt-compensated output.

Specifications

  • Power supply: 3.6~8V DC
  • Chip: LSM303DLH
  • ±1.3 to ±8,1 gauss magnetic field full-scale
  • ±2 g/±4 g/±8 g dynamically selectable fullscale
  • 16-bit data out
  • I2C serial interface
  • 2 independent programmable interrupt
  • generators for free-fall and motion detection
  • Embedded self-test
  • Accelerometer sleep-to-wakeup function
  • 6D orientation detection
  • Dimensions: 20.5mmx20.5mm
  • Weight: 1g

Applications

  • Compensated compassing
  • Map rotation
  • Position detection
  • Motion-activated functions
  • Free-fall detection
  • Intelligent power-saving for handheld devices
  • Display orientation
  • Gaming and virtual reality input devices
  • Impact recognition and logging
  • Vibration monitoring and compensation

Connection Diagram

SEN0079 connection diagram---IIC

Download library

Download related Library. About Library installation.

Sample Code(Read Navigation Angle)

/*!
 * @file NavigationAngleRead.ino
 * @brief DFRobot's Manentic Sensor,This program continuously reads the accelerometer and magnetometer,
 *        communicating the readings over the serial interface. You can display the readings with the Arduino Serial Monitor.
 * @n [Get the module here](http://www.dfrobot.com.cn/goods-326.html)
 * @n This example get the four lightest positions of the IR sources.
 * @n [Connection and Diagram](http://wiki.dfrobot.com.cn/index.php?title=(SKU:TOY0035)Gadgeteer_LSM303%E7%94%B5%E5%AD%90%E7%BD%97%E7%9B%98%E4%BC%A0%E6%84%9F%E5%99%A8)
 *
 * @copyright   [DFRobot](http://www.dfrobot.com), 2016
 * @copyright   GNU Lesser General Public License
 *
 * @author [carl](carl.xu@dfrobot.com)
 * @version  V1.0
 * @date  2016-07-11
 */
#include <MagneticSensorLsm303.h>

MagneticSensorLsm303 compass;

void setup() {
  Serial.begin(9600);
  compass.init();
  compass.enable();
}

void loop() {
  compass.read();
  float heading = compass.getNavigationAngle();
  Serial.print("Navigation Angle:  ");
  Serial.println(heading,3);
  delay(500);  // delay for serial readability
}

Sample Code(Read Raw Data)

/*!
 * @file MagneticRawData.ino
 * @brief DFRobot's Manentic Sensor,This program continuously reads the accelerometer and magnetometer,
 *        communicating the readings over the serial interface. You can display the readings with the Arduino Serial Monitor.
 * @n [Get the module here](http://www.dfrobot.com.cn/goods-326.html)
 * @n This example get the four lightest positions of the IR sources.
 * @n [Connection and Diagram](http://wiki.dfrobot.com.cn/index.php?title=(SKU:TOY0035)Gadgeteer_LSM303%E7%94%B5%E5%AD%90%E7%BD%97%E7%9B%98%E4%BC%A0%E6%84%9F%E5%99%A8)
 *
 * @copyright   [DFRobot](http://www.dfrobot.com), 2016
 * @copyright   GNU Lesser General Public License
 *
 * @author [carl](carl.xu@dfrobot.com)
 * @version  V1.0
 * @date  2016-07-11
 */

#include <MagneticSensorLsm303.h>

MagneticSensorLsm303 compass;

char report[120];

void setup()
{
  Serial.begin(9600);
  compass.init();
  compass.enable();
}

void loop()
{
  compass.read();
  snprintf(report, sizeof(report), "Acceleration:(X:%6d Y:%6d Z:%6d) Magnetometer:(X:%6d Y:%6d Z:%6d)",
  compass.accelerometer.x, compass.accelerometer.y, compass.accelerometer.z,
  compass.magnetometer.x, compass.magnetometer.y, compass.magnetometer.z);
  Serial.println(report);
  delay(500);
}

More

Github Repository

image:nextredirectltr.pngGo shopping lsm303 tilt compensated compass(sen0079) category: Product Manual category: SEN Series category: Sensors category: Source category: Diagram

Clone this wiki locally