Dcube Tech Ventures
Published

Measurement of Acceleration Using H3LIS331DL and Arduino

H3LIS331DL is a low-power high performance 3-axis linear accelerometer belonging to the “nano” family with digital I²C serial interface.

IntermediateProtip4 hours5,118
Measurement of Acceleration Using H3LIS331DL and Arduino

Things used in this project

Hardware components

STMicroelectronics H3LIS331DL 3-Axis Linear Accelerometer I²C Mini Module
×1
Arduino Nano R3
Arduino Nano R3
×1
I²C Cable
×1
ControlEverything.com I2C Shield for Arduino Nano
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

H3LIS331DL Schematic

Code

Code

Arduino
#include 
// H3LIS331DL I2C address is 0x18(24)
#define Addr 0x18
void setup()
{  
// Initialise I2C communication as MASTER  
Wire.begin();  
// Initialise Serial Communication, set baud rate = 9600  
Serial.begin(9600);
// Start I2C Transmission  
Wire.beginTransmission(Addr);  
// Select control register 1  
Wire.write(0x20);  
// Enable X, Y, Z axis, power on mode, data output rate 50Hz  
Wire.write(0x27);  
// Stop I2C Transmission  
Wire.endTransmission();
  // Start I2C Transmission  
Wire.beginTransmission(Addr);  
// Select control register 4  
Wire.write(0x23);  
// Set full scale, +/- 100g, continuous update 
Wire.write(0x00);  
// Stop I2C Transmission  
Wire.endTransmission();  
delay(300);
}
void loop()
{  
unsigned int data[6];  
for(int i = 0; i < 6; i++)  
{    
// Start I2C Transmission    
Wire.beginTransmission(Addr);    
// Select data register    
Wire.write((40+i));    
// Stop I2C Transmission    
Wire.endTransmission();
// Request 1 byte of data    
Wire.requestFrom(Addr, 1);    
// Read 6 bytes of data    
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb    
if(Wire.available() == 1)    
{      
data[i] = Wire.read();    
}  
}  
delay(300);
// Convert the data 
int xAccl = ((data[1] * 256) + data[0]);  
int yAccl = ((data[3] * 256) + data[2]);  
int zAccl = ((data[5] * 256) + data[4]);
// Output data to serial monitor  
Serial.print("Acceleration in X-Axis : ");  
Serial.println(xAccl);  
Serial.print("Acceleration in Y-Axis : ");  
Serial.println(yAccl);  
Serial.print("Acceleration in Z-Axis : ");  
Serial.println(zAccl);  
delay(300);
}

Credits

Dcube Tech Ventures
34 projects • 16 followers
Dcube Tech Ventures Pvt Limited is collaboration of Hardware, Embedded and Software endeavour's to create the Internet of things. www.dcubestore.com
Contact

Comments

Please log in or sign up to comment.