This module is a Triple Axis Accelerometer based on the ADXL345 chip, designed to measure acceleration in X, Y, and Z directions with high precision and low power consumption.
The ADXL345 module offers digital output via I2C or SPI interface , making it easy to integrate with microcontrollers like Arduino, ESP32, Raspberry Pi, and more. It’s ideal for applications such as motion detection, tilt sensing, vibration monitoring, and gesture recognition .
This compact sensor supports both high-resolution and wide-range acceleration sensing, with selectable sensitivity from ±2g to ±16g. Its low-profile and breadboard-friendly design make it a perfect fit for embedded systems and portable electronics.
Features:
Based on the ADXL345 3-axis accelerometer chip
Measures acceleration in X, Y, and Z axes
Selectable sensitivity: ±2g, ±4g, ±8g, ±16g
Digital output via I2C or SPI interface
Low power consumption, ideal for battery-powered devices
Compact, breadboard-compatible design
Package Includes:
1 x ADXL345 Triple Axis Accelerometer Module
Pin Connections Table 1
Board Sensor Pin Connection ADXL345 VCC/GND/SDA/SCL 3.3-5V / GND / board SDA / board SCL
Triple Axis Accelerometer Module (ADXL 345) - Arduino Uno
Triple Axis Accelerometer Module (ADXL 345) - Arduino Nano
Triple Axis Accelerometer Module (ADXL 345) - Arduino Mega
Triple Axis Accelerometer Module (ADXL 345) - ESP32
Triple Axis Accelerometer Module (ADXL 345) - ESP8266
Triple Axis Accelerometer Module (ADXL 345) - STM32
Triple Axis Accelerometer Module (ADXL 345) - Raspberry Pi Pico
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Arduino Uno: A4=SDA, A5=SCL
6 #include <Wire.h>
7 #include <Adafruit_ADXL345_U.h>
8
9 Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345 );
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!accel.begin()) {
15 Serial.println ("ADXL345 not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 accel.setRange(ADXL345_RANGE_16_G);
19 }
20
21 void loop () {
22 sensors_event_t event;
23 accel.getEvent(&event);
24
25 Serial.print ("X: "); Serial.print (event.acceleration.x); Serial.print (" ");
26 Serial.print ("Y: "); Serial.print (event.acceleration.y); Serial.print (" ");
27 Serial.print ("Z: "); Serial.print (event.acceleration.z); Serial.println (" m/s^2 ");
28
29 delay (200 );
30 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Arduino Nano: A4=SDA, A5=SCL
6 #include <Wire.h>
7 #include <Adafruit_ADXL345_U.h>
8
9 Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345 );
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!accel.begin()) {
15 Serial.println ("ADXL345 not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 accel.setRange(ADXL345_RANGE_16_G);
19 }
20
21 void loop () {
22 sensors_event_t event;
23 accel.getEvent(&event);
24
25 Serial.print ("X: "); Serial.print (event.acceleration.x); Serial.print (" ");
26 Serial.print ("Y: "); Serial.print (event.acceleration.y); Serial.print (" ");
27 Serial.print ("Z: "); Serial.print (event.acceleration.z); Serial.println (" m/s^2 ");
28
29 delay (200 );
30 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Arduino Mega: D20=SDA, D21=SCL
6 #include <Wire.h>
7 #include <Adafruit_ADXL345_U.h>
8
9 Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345 );
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!accel.begin()) {
15 Serial.println ("ADXL345 not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 accel.setRange(ADXL345_RANGE_16_G);
19 }
20
21 void loop () {
22 sensors_event_t event;
23 accel.getEvent(&event);
24
25 Serial.print ("X: "); Serial.print (event.acceleration.x); Serial.print (" ");
26 Serial.print ("Y: "); Serial.print (event.acceleration.y); Serial.print (" ");
27 Serial.print ("Z: "); Serial.print (event.acceleration.z); Serial.println (" m/s^2 ");
28
29 delay (200 );
30 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for ESP32: GPIO21=SDA, GPIO22=SCL
6 #include <Wire.h>
7 #include <Adafruit_ADXL345_U.h>
8
9 Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345 );
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!accel.begin()) {
15 Serial.println ("ADXL345 not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 accel.setRange(ADXL345_RANGE_16_G);
19 }
20
21 void loop () {
22 sensors_event_t event;
23 accel.getEvent(&event);
24
25 Serial.print ("X: "); Serial.print (event.acceleration.x); Serial.print (" ");
26 Serial.print ("Y: "); Serial.print (event.acceleration.y); Serial.print (" ");
27 Serial.print ("Z: "); Serial.print (event.acceleration.z); Serial.println (" m/s^2 ");
28
29 delay (200 );
30 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for ESP8266: D2=SDA, D1=SCL
6 #include <Wire.h>
7 #include <Adafruit_ADXL345_U.h>
8
9 Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345 );
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!accel.begin()) {
15 Serial.println ("ADXL345 not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 accel.setRange(ADXL345_RANGE_16_G);
19 }
20
21 void loop () {
22 sensors_event_t event;
23 accel.getEvent(&event);
24
25 Serial.print ("X: "); Serial.print (event.acceleration.x); Serial.print (" ");
26 Serial.print ("Y: "); Serial.print (event.acceleration.y); Serial.print (" ");
27 Serial.print ("Z: "); Serial.print (event.acceleration.z); Serial.println (" m/s^2 ");
28
29 delay (200 );
30 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for STM32: PB7=SDA, PB6=SCL
6 #include <Wire.h>
7 #include <Adafruit_ADXL345_U.h>
8
9 Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345 );
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!accel.begin()) {
15 Serial.println ("ADXL345 not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 accel.setRange(ADXL345_RANGE_16_G);
19 }
20
21 void loop () {
22 sensors_event_t event;
23 accel.getEvent(&event);
24
25 Serial.print ("X: "); Serial.print (event.acceleration.x); Serial.print (" ");
26 Serial.print ("Y: "); Serial.print (event.acceleration.y); Serial.print (" ");
27 Serial.print ("Z: "); Serial.print (event.acceleration.z); Serial.println (" m/s^2 ");
28
29 delay (200 );
30 }
1 //ekostra.com
2 //electronics store in egypt
3 //+201008896258
4
5 // I2C wiring for Raspberry Pi Pico: GPIO4=SDA, GPIO5=SCL
6 #include <Wire.h>
7 #include <Adafruit_ADXL345_U.h>
8
9 Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345 );
10
11 void setup () {
12 Serial.begin (115200 );
13 Wire.begin();
14 if (!accel.begin()) {
15 Serial.println ("ADXL345 not found - check wiring!");
16 while (1 ) delay (10 );
17 }
18 accel.setRange(ADXL345_RANGE_16_G);
19 }
20
21 void loop () {
22 sensors_event_t event;
23 accel.getEvent(&event);
24
25 Serial.print ("X: "); Serial.print (event.acceleration.x); Serial.print (" ");
26 Serial.print ("Y: "); Serial.print (event.acceleration.y); Serial.print (" ");
27 Serial.print ("Z: "); Serial.print (event.acceleration.z); Serial.println (" m/s^2 ");
28
29 delay (200 );
30 }
Project Notes: I2C 3-axis accelerometer.