0% found this document useful (0 votes)
3 views

3-Axis Accelerometer, ADXL345 With Raspberry Pi Using Python _ 6 Steps - Instructables

This document provides a step-by-step guide for using the ADXL345 3-axis accelerometer with a Raspberry Pi to measure acceleration in three dimensions. It includes a parts list, hardware connections, Python coding instructions, and potential applications for the project. The project aims to inspire further experimentation and exploration in IoT and sensor technology.

Uploaded by

jacobrafisura
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

3-Axis Accelerometer, ADXL345 With Raspberry Pi Using Python _ 6 Steps - Instructables

This document provides a step-by-step guide for using the ADXL345 3-axis accelerometer with a Raspberry Pi to measure acceleration in three dimensions. It includes a parts list, hardware connections, Python coding instructions, and potential applications for the project. The project aims to inspire further experimentation and exploration in IoT and sensor technology.

Uploaded by

jacobrafisura
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

9/14/24, 8:14 PM 3-Axis Accelerometer, ADXL345 With Raspberry Pi Using Python : 6 Steps - Instructables

3-Axis Accelerometer, ADXL345 With Raspberry Pi Using


Python
By Dcube Tech Ventures in CircuitsSensors

Introduction: 3-Axis Accelerometer, ADXL345 With Raspberry


Pi Using Python

Thinking about a gadget that can check the point at which your Offroader is tilted towards to
lingered. Wouldn't it be a pleasant one in the event that somebody is adjusted when there is a
possibility of tipping over? Obviously yes. It would be truly useful to individuals who love going on the
mountains and enterprise trips.

Without a doubt, a veritable brilliant period of advanced figuring evaluation, IoT is upon us. As
Gadgets and Programming lovers, we believe, Raspberry Pi, the micro Linux PC has treated the
https://www.instructables.com/3-Axis-Accelerometer-ADXL345-With-Raspberry-Pi-Usi/?fbclid=IwZXh0bgNhZW0CMTEAAR0-GRpRvxhT9PWjg5zbF6h… 1/9
9/14/24, 8:14 PM 3-Axis Accelerometer, ADXL345 With Raspberry Pi Using Python : 6 Steps - Instructables

creative abilities of people in general, carrying with it a blast in innovative methodologies. So what are
the conceivable outcomes that what we can do in the event that we have a Raspberry Pi and a 3-axis
Accelerometer close by ? We should discover! In this task, we will sense the acceleration on 3 axes,
X, Y and Z utilizing Raspberry Pi and ADXL345,a 3-axis accelerometer. So we should observe on
this excursion to fabricate a framework to measure the 3-dimensional acceleration up or G-Force.

https://www.instructables.com/3-Axis-Accelerometer-ADXL345-With-Raspberry-Pi-Usi/?fbclid=IwZXh0bgNhZW0CMTEAAR0-GRpRvxhT9PWjg5zbF6h… 2/9
9/14/24, 8:14 PM 3-Axis Accelerometer, ADXL345 With Raspberry Pi Using Python : 6 Steps - Instructables

Step 1: Basic Hardware We Require

The issues were less for us since we have a ton of stuff lying around to work from. Nonetheless, we
know how it's troublesome for others to assemble the right part in perfect time from the opportune spot
and that is justified regardless of each penny. So we would help you in all regions. Read the following
to get a complete parts list.

1. Raspberry Pi

The initial step was acquiring a Raspberry Pi board. This tiny, low-powered computer provides a
cheap and generally simple base for electronics ventures, Internet of Things(IoT), Smart Cities,
School Education.

2. I2C Shield for Raspberry Pi


https://www.instructables.com/3-Axis-Accelerometer-ADXL345-With-Raspberry-Pi-Usi/?fbclid=IwZXh0bgNhZW0CMTEAAR0-GRpRvxhT9PWjg5zbF6h… 3/9
9/14/24, 8:14 PM 3-Axis Accelerometer, ADXL345 With Raspberry Pi Using Python : 6 Steps - Instructables

The main thing the Raspberry Pi is genuinely missing is an I²C port. So for that, the TOUTPI2 I²C
connector gives you the sense to utilize Rasp Pi with MULTIPLE I²C devices. It's accessible on
DCUBE Store

3. 3-axis accelerometer, ADXL345

Manufactured by Analog Devices, the ADXL345, is a low-power 3-axis accelerometer with high-
resolution 13-bit measurement at up to ±16g. We acquired this sensor from DCUBE Store

4. Connecting Cable

We had the I2C connecting cable accessible at DCUBE Store

5. Micro USB cable

The slightest confounded, yet most stringent as far as power necessity is the Raspberry Pi! The most
effortless approach to power up the Raspberry Pi is by means of the Micro USB cable.

6. Web Access is a Need

Web access can be empowered through an Ethernet(LAN) cable associated with a local network and
the web. On the other hand, you can associate with a wireless network using a USB wireless dongle,
which will require configuration.

7. HDMI Cable/Remote Access

With HDMI cable on board, you can hook it up to a digital TV or to a Monitor. Need to spare cash!
Raspberry Pi can be remotely gotten to utilizing distinctive strategies like-SSH and Access over the
Web. You can use the PuTTYopen source software.

https://www.instructables.com/3-Axis-Accelerometer-ADXL345-With-Raspberry-Pi-Usi/?fbclid=IwZXh0bgNhZW0CMTEAAR0-GRpRvxhT9PWjg5zbF6h… 4/9
9/14/24, 8:14 PM 3-Axis Accelerometer, ADXL345 With Raspberry Pi Using Python : 6 Steps - Instructables

Step 2: Connecting the Hardware

Make the circuit according to the schematic appeared. Draw up an outline and take after the
configuration deliberately.

Connection of the Raspberry Pi and I2C Shield

Above all else, take the Raspberry Pi and spot the I2C Shield on it. Press the Shield delicately over
the GPIO pins of Pi and we are finished with this progression as simple as pie(see the snap).

Connection of the Sensor and Raspberry Pi

Take the sensor and Interface the I2C Cable with it. For the appropriate operation of this Cable, please
recall I2C Output ALWAYS associates with the I2C Input. The same must be taken after for the
Raspberry Pi with the I2C shield mounted over it the GPIO pins.

We prescribe the utilization of the I2C cable as it refutes the requirement for perusing pinouts,
soldering, and malaise caused by even the smallest blunder. With this basic plug and play cable, you
can introduce, swap out devices, or add more devices to an application easily. This makes things
uncomplicated.

Note : The brown wire ought to dependably follow the Ground (GND) connection between the
output of one device and the input of another device.

Web Network is Key

To make our venture a win, we require a web connection for our Raspberry Pi. For this, you have
alternatives like interfacing an Ethernet(LAN) cable with the home system. Additionally, as an option,

https://www.instructables.com/3-Axis-Accelerometer-ADXL345-With-Raspberry-Pi-Usi/?fbclid=IwZXh0bgNhZW0CMTEAAR0-GRpRvxhT9PWjg5zbF6h… 5/9
9/14/24, 8:14 PM 3-Axis Accelerometer, ADXL345 With Raspberry Pi Using Python : 6 Steps - Instructables

however, a helpful route is to utilize a WiFi connector. Some of the time for this, you require a driver
to make it work. So lean toward the one with Linux in the depiction.

Power Supply

Plug in the Micro USB cable into the power jack of Raspberry Pi. Light it up and we are good to go.

Connection to Screen

We can have the HDMI cable associated with another screen. In some cases, you have to get to a
Raspberry Pi without interfacing it to a screen or you might need to view some data from it from
somewhere else. Conceivably, there are innovative and financially savvy approaches to doing as
such. One of them is utilizing - SSH(remote command-line login). You can also likewise utilize the
PuTTY software for that.

https://www.instructables.com/3-Axis-Accelerometer-ADXL345-With-Raspberry-Pi-Usi/?fbclid=IwZXh0bgNhZW0CMTEAAR0-GRpRvxhT9PWjg5zbF6h… 6/9
9/14/24, 8:14 PM 3-Axis Accelerometer, ADXL345 With Raspberry Pi Using Python : 6 Steps - Instructables

Step 3: Python Coding for Raspberry Pi

The Python Code for the Raspberry Pi and ADXL345 Sensor is accessible in our Github Repository.

Before going ahead to the code, ensure you read the guidelines given in the Readme document and
Set up your Raspberry Pi as per it. It will simply pause for a minute to do as such.

An accelerometer is a device that measures proper acceleration; proper acceleration is not the same
as coordinate acceleration (rate of change of velocity). Single- and multi-axis models of the
accelerometer are accessible to identify magnitude and direction of the proper acceleration, as a
vector quantity, and can be utilized to sense orientation, coordinate acceleration, vibration, shock, and
falling in a resistive medium.

The code is plain before you and it's in the most straightforward structure that you can envision of and
you ought to have no issues.

# Distributed with a free-will license.


# Use it any way you want, profit or free, provided it fits in the licenses of its associated works.
# ADXL345
# This code is designed to work with the ADXL345_I2CS I2C Mini Module available from dcubestore.com
# http://dcubestore.com/product/adxl345-3-axis-accelerometer-13-bit-i%C2%B2c-mini-module/

import smbus
import time

# Get I2C bus


bus = smbus.SMBus(1)

# ADXL345 address, 0x53(83)


# Select bandwidth rate register, 0x2C(44)
# 0x0A(10) Normal mode, Output data rate = 100 Hz
bus.write_byte_data(0x53, 0x2C, 0x0A)
# ADXL345 address, 0x53(83)
# Select power control register, 0x2D(45)
# 0x08(08) Auto Sleep disable
bus.write_byte_data(0x53, 0x2D, 0x08)
# ADXL345 address, 0x53(83)
# Select data format register, 0x31(49)
# 0x08(08) Self test disabled, 4-wire interface
# Full resolution, Range = +/-2g
bus.write_byte_data(0x53, 0x31, 0x08)

time.sleep(0.5)

# ADXL345 address, 0x53(83)


# Read data back from 0x32(50), 2 bytes
# X-Axis LSB, X-Axis MSB
data0 = bus.read_byte_data(0x53, 0x32)
data1 = bus.read_byte_data(0x53, 0x33)

# Convert the data to 10-bits


xAccl = ((data1 & 0x03) * 256) + data0
if xAccl > 511 :
xAccl -= 1024

# ADXL345 address, 0x53(83)


# Read data back from 0x34(52), 2 bytes
# Y-Axis LSB, Y-Axis MSB
data0 = bus.read_byte_data(0x53, 0x34)
data1 = bus.read_byte_data(0x53, 0x35)

https://www.instructables.com/3-Axis-Accelerometer-ADXL345-With-Raspberry-Pi-Usi/?fbclid=IwZXh0bgNhZW0CMTEAAR0-GRpRvxhT9PWjg5zbF6h… 7/9
9/14/24, 8:14 PM 3-Axis Accelerometer, ADXL345 With Raspberry Pi Using Python : 6 Steps - Instructables
# Convert the data to 10-bits
yAccl = ((data1 & 0x03) * 256) + data0
if yAccl > 511 :
yAccl -= 1024

# ADXL345 address, 0x53(83)


# Read data back from 0x36(54), 2 bytes
# Z-Axis LSB, Z-Axis MSB
data0 = bus.read_byte_data(0x53, 0x36)
data1 = bus.read_byte_data(0x53, 0x37)

# Convert the data to 10-bits


zAccl = ((data1 & 0x03) * 256) + data0
if zAccl > 511 :
zAccl -= 1024

# Output data to screen


print "Acceleration in X-Axis : %d" %xAccl
print "Acceleration in Y-Axis : %d" %yAccl
print "Acceleration in Z-Axis : %d" %zAccl

Step 4: The Practicality of the Code

Download (or git pull) the code from Github and open it in the Raspberry Pi.

Run the commands to Compile and Upload the code in the terminal and see the output on Monitor.
Following few moments, it will show every one of the parameters. Subsequent to ensuring that
everything works easily, you can take this venture to a greater task.

Step 5: Applications and Features


The ADXL345 is a small, thin, ultralow power, 3-axis accelerometer with high resolution (13-bit)
measurement at up to ±16 g. The ADXL345 is appropriate for Cell Phone Applications. It quantifies
the Static Acceleration of Gravity in Tilt-Detecting Applications and in addition Dynamic
Acceleration upcoming about because of Motion or Shock. Other applications include the likes of
Handsets, Medical instrumentation, Gaming and Pointing Devices, Industrial Instrumentation,
Personal Navigation Devices, and Hard Disk Drive (HDD) Protection.

Step 6: Conclusion
Hope this task motivates further experimentation. This I2C sensor is extraordinarily flexible, cheap
and accessible. Since it's a to a great degree impermanent system, there are interesting ways you can
broaden this task and improve it even.

For example, You can start with the idea of an Inclinometer using the ADXL345 and Raspberry Pi. In
the above project, we have used basic calculations. You can improvise the code for G-values, angles
of slope (or tilt), elevation or depression of an object with respect to gravity. Then you can
check the advance options like rotation angles for roll(front-to-back axis, X), pitch(side-to-side
axis, Y) and yaw(vertical axis, Z). This accelerometer displays 3-D G-Forces. So you could utilize
this sensor in various ways you can consider.

For your comfort, we have a fascinating video instructional exercise on YouTube which may help out
your investigation. Trust this venture motivates further exploration. Keep contemplating! Keep in
mind to seek after as more is continually coming up.
https://www.instructables.com/3-Axis-Accelerometer-ADXL345-With-Raspberry-Pi-Usi/?fbclid=IwZXh0bgNhZW0CMTEAAR0-GRpRvxhT9PWjg5zbF6h… 8/9
9/14/24, 8:14 PM 3-Axis Accelerometer, ADXL345 With Raspberry Pi Using Python : 6 Steps - Instructables

https://www.instructables.com/3-Axis-Accelerometer-ADXL345-With-Raspberry-Pi-Usi/?fbclid=IwZXh0bgNhZW0CMTEAAR0-GRpRvxhT9PWjg5zbF6h… 9/9

You might also like