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 arduino 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
Tutorial
Requirements
Hardware
- DFRduino UNO R3 (or similar) x 1
- LSM303 Breakout Board x 1
Software
- Arduino IDE
- Download and install the LSM303 Library.
- About how to install the library?
Connection Diagram
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](https://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](https://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](https://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](https://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 Documents
Get LSM303 Breakout Board - Tilt Compensated Compass from DFRobot Store or DFRobot Distributor.