Ks0128 keyestudio EASY plug ADXL345 Three Axis Acceleration Module: Difference between revisions

From Keyestudio Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
==EASY plug ADXL345 Three Axis Acceleration Module==
[[image:ks0112图.jpg|thumb|600px|right|Keyestudio EASY plug ADXL345 Acceleration Module]]
<br>[[File:ks0128-1.png|500px|frameless|thumb]]<br>


==Introduction==
==Introduction==
The ADXL345 module is a 3-axis MEMS accelerometer with low power consumption and compact design. It’s of high resolution of 13-bit, measurement up to ±16g(gravitational force). Digital output data is formatted as 16-bit twos complement and is accessible through either a SPI or I2C digital interface.<br>
The ADXL345 module is a low power, 3-axis MEMS accelerometer with high resolution (13-bit) and measurement at up to ±16g (gravitational force). <br>
Note: this module needs to be used together with EASY plug control board.<br>
Digital output data is formatted as 16-bit twos complement, and is accessible through either a SPI or I2C digital interface.<br>
The ADXL345 is well suited to measures the static acceleration of gravity in tilt-sensing applications, as well as dynamic acceleration resulting from motion or shock.<br>
<span style="color: red">'''Note: '''this module needs to be used together with EASY plug control board.<br>
<br>


 
==Features==
==Specification==
* Connector: Easy plug
* Interface: Easy plug
* Working Voltage: 2.0-3.6V 
* 2.0-3.6VDC Supply Voltage
* Ultra Low Power @2.5v: 40uA /working mode; 0.1uA / standby mode
* Ultra Low Power: 40uA in measurement mode, 0.1uA in standby@ 2.5V
* Communication interface: I2C / SPI
* Tap/Double Tap Detection
* Tap/Double Tap Detection  
* Free-Fall Detection
* Free-Fall Detection
* Size: 40*20mm
* Weight: 5g


<br>
==Technical Details==
* Dimensions: 41mm*20mm*18mm
* Weight: 4.6g


==Connection Diagram ==
<br>
<br>[[File:ks0128-2.png|500px|frameless|thumb]]<br>
==Connect It Up ==
Connect the EASY Plug ADXL345 Acceleration module to control board using an RJ11 cable. Then connect the control board to your PC with a USB cable.
<br>[[File:ks0128.jpg|500px|frameless|thumb]]<br>


 
<br>
==Sample Code==
==Upload the Code==
Copy and paste below code to [http://wiki.keyestudio.com/index.php/How_to_Download_Arduino_IDE Arduino IDE] and upload. 
<pre>
<pre>
#include <Wire.h>    // place file “Wire.h” under the directory “libraries” of Arduino
#include <Wire.h>    // place file “Wire.h” under the directory “libraries” of Arduino
// Registers for ADXL345
// Registers for ADXL345
#define ADXL345_ADDRESS (0xA6 >> 1)  // address for device is 8 bit but shift to the
#define ADXL345_ADDRESS (0xA6 >> 1)  // address for device is 8 bit but shift to the
Line 119: Line 126:
</pre>
</pre>


<br>
==What You Should See==
Open the Serial monitor to see the 3-axis acceleration data. See changes as you sway the Accelerometer.
<br>[[File:ks0128 Result.gif|500px|frameless|thumb]]<br>


<br>
==Resources ==
==Resources ==
 
'''PDF'''<br>
'''PDF'''
 
https://drive.google.com/open?id=1Tf19JMZ9C_47d3Gzar8xb766qp5pAFz2
https://drive.google.com/open?id=1Tf19JMZ9C_47d3Gzar8xb766qp5pAFz2


<br>
==Buy from ==
==Buy from ==
'''Official Website'''
'''Official Website'''<br>
 
http://www.keyestudio.com/keyestudio-easy-plug-adxl345-three-axis-acceleration-module-for-arduino.html
http://www.keyestudio.com/keyestudio-easy-plug-adxl345-three-axis-acceleration-module-for-arduino.html




[[category:EASY Plug]]
[[category:EASY Plug]]

Revision as of 11:46, 16 November 2018

Keyestudio EASY plug ADXL345 Acceleration Module

Introduction

The ADXL345 module is a low power, 3-axis MEMS accelerometer with high resolution (13-bit) and measurement at up to ±16g (gravitational force).
Digital output data is formatted as 16-bit twos complement, and is accessible through either a SPI or I2C digital interface.
The ADXL345 is well suited to measures the static acceleration of gravity in tilt-sensing applications, as well as dynamic acceleration resulting from motion or shock.
Note: this module needs to be used together with EASY plug control board.

Features

  • Connector: Easy plug
  • Working Voltage: 2.0-3.6V
  • Ultra Low Power @2.5v: 40uA /working mode; 0.1uA / standby mode
  • Communication interface: I2C / SPI
  • Tap/Double Tap Detection
  • Free-Fall Detection


Technical Details

  • Dimensions: 41mm*20mm*18mm
  • Weight: 4.6g


Connect It Up

Connect the EASY Plug ADXL345 Acceleration module to control board using an RJ11 cable. Then connect the control board to your PC with a USB cable.
thumb


Upload the Code

Copy and paste below code to Arduino IDE and upload.

 #include <Wire.h>    // place file “Wire.h” under the directory “libraries” of Arduino
// Registers for ADXL345
#define ADXL345_ADDRESS (0xA6 >> 1)  // address for device is 8 bit but shift to the
                                     // right by 1 bit to make it 7 bit because the
                                     // wire library only takes in 7 bit addresses
#define ADXL345_REGISTER_XLSB (0x32)

int accelerometer_data[3];
// void because this only tells the cip to send data to its output register
// writes data to the slave's buffer
void i2c_write(int address, byte reg, byte data) {
  // Send output register address
  Wire.beginTransmission(address);
  // Connect to device
  Wire.write(reg);
  // Send data
  Wire.write(data); //low byte
  Wire.endTransmission();
}

// void because using pointers
// microcontroller reads data from the sensor's input register
void i2c_read(int address, byte reg, int count, byte* data) {
  // Used to read the number of data received
  int i = 0;
  // Send input register address
  Wire.beginTransmission(address);
  // Connect to device
  Wire.write(reg);
  Wire.endTransmission();

  // Connect to device
  Wire.beginTransmission(address);
  // Request data from slave
  // Count stands for number of bytes to request
  Wire.requestFrom(address, count);
  while(Wire.available()) // slave may send less than requested
  {
    char c = Wire.read(); // receive a byte as character
    data[i] = c;
    i++;
  }
  Wire.endTransmission();
}

void init_adxl345() {
  byte data = 0;

  i2c_write(ADXL345_ADDRESS, 0x31, 0x0B);   // 13-bit mode  +_ 16g
  i2c_write(ADXL345_ADDRESS, 0x2D, 0x08);   // Power register

  i2c_write(ADXL345_ADDRESS, 0x1E, 0x00);   // x
  i2c_write(ADXL345_ADDRESS, 0x1F, 0x00);   // Y
  i2c_write(ADXL345_ADDRESS, 0x20, 0x05);   // Z
 
  // Check to see if it worked!
  i2c_read(ADXL345_ADDRESS, 0X00, 1, &data);
  if(data==0xE5)
    Serial.println("it work Success");
  else
    Serial.println("it work Fail");
}

void read_adxl345() {
  byte bytes[6];
  memset(bytes,0,6);

  // Read 6 bytes from the ADXL345
  i2c_read(ADXL345_ADDRESS, ADXL345_REGISTER_XLSB, 6, bytes);
  // Unpack data
  for (int i=0;i<3;++i) {
    accelerometer_data[i] = (int)bytes[2*i] + (((int)bytes[2*i + 1]) << 8);
  }
}
// initialise and start everything
void setup() {
  Wire.begin();
  Serial.begin(9600);
  for(int i=0; i<3; ++i) {
    accelerometer_data[i]  = 0;
  }
  init_adxl345();
}
void loop() {
  read_adxl345();
  Serial.print("ACCEL: ");
  Serial.print(float(accelerometer_data[0])*3.9/1000);//3.9mg/LSB scale factor in 13-bit mode
  Serial.print("\t");
  Serial.print(float(accelerometer_data[1])*3.9/1000);
  Serial.print("\t");
  Serial.print(float(accelerometer_data[2])*3.9/1000);
  Serial.print("\n");
  delay(100);
}


What You Should See

Open the Serial monitor to see the 3-axis acceleration data. See changes as you sway the Accelerometer.
thumb


Resources

PDF
https://drive.google.com/open?id=1Tf19JMZ9C_47d3Gzar8xb766qp5pAFz2


Buy from

Official Website
http://www.keyestudio.com/keyestudio-easy-plug-adxl345-three-axis-acceleration-module-for-arduino.html