Sie sind auf Seite 1von 4

VHow to Build an Accelerometer Circuit

In this article, we go over how to build a basic accelerometer circuit.

The type of accelerometer we will use is a memsic 2125 accelerometer.
As you are probably familiar, an accelerometer is a device that can measure dynamic acceleration
(vibrations) and static acceleration (gravity). Being that it measures this, it can measure tilts,
rotations, and movements/lack-of-movements for alarm system sensing. Basically, it can measure if
it's being tilted, rotated, or moved around.
Being that an accelerometer measures tilts, it needs a microcontroller to be able to read these tilts
and record how much it is tilted. The microcontroller we will connect to the accelerometer is an
arduino microcontroller.
Tilts and imbalances on accelerometers are measured in unit millig's. A millig (mg) is a 1/1000th of a
g. Being that the g-force is equal to 9.81m/s
, a millig is equal to 1/1000th of this value.
The memsic 2125 is a dual- or two-axis accelerometer. It can measure tilts in the 2 directions, the X-
direction and the Y-direction. This means that if we shift it left and right, this is the X-direction. If we
shift it forward or backward, this is teh Y-direction. The memsic is able to record these movements
and then the arduino can sense and output to us the data.
Components Needed for Accelerometer Circuit
Memsic 2125 Accelerometer
Arduino Board
Jumper Wires
5 volts

Memsic Accelerometer Pinout
Before we go into the main circuit schematic, we will first go over the pinout of the memsic 2125

Pin name Description
Pin 1 Temperature Out
The memsic acceleraterometer can also give the a
temperature reading out. To give out the temperature,
this pin would be connected to a microcontroller, which
would then be able to read and display out the
Pin 2 Y axis (out)
The Y axis (out) pin gives out the reading of the Y axis.
Thus, if the accelerometer is tilted in the Y direction,
then the accelerometer can give out the tilt reading in
millig's so that the microcontroller it is connected to can
know how the accelerometer is tilted in the Y direction.
Pin 3 Ground This pin connects to ground of the circuit.
Pin 4 Power (+5V)
The Memsic 2125 needs +5V of DC power in order to
operate. Pin 4 is where the memsic receives its
operating DC voltage in order to work.
Pin 5 X axis (out)
The X axis (out) pin gives out the reading of the X axis.
Thus, if the accelerometer is tilted in the X direction,
then the accelerometer can give out the tilt reading in
millig's so that the microcontroller it is connected to can
know how the accelerometer is tilted in the X direction.
Pin 6 Ground This again connects to ground of the circuit.

For this project, we are not going to use Pin 1, the temperature out reading.
Accelerometer Circuit Schematic
The accelerometer circuit we will build is shown in the schematic below:

To connect the accelerometer, we give it +5VDC of power. Accelerometers need power in order to
operate. We connect both GND pins to GND. These are Pins 3 and 4. Then we connect Pin 2, Y
OUT, to D3 of the arduino. We connect Pin 5, X OUT, to D2 of the arduino. Terminals D3 and D2 of
the arduino are digital input pins, which receive the digital readings that the accelerometer gives out,
showing its X and Y axis tilt readings.
Now that we have connected the circuit, we now need to create a program which calculates the
millig readings and can display to us on the computer so that we can know all the readings that go
on as the accelerometer is tilted.
Code to Read and Display Accelerometer Tilt Readings

// these constants won't change:
const int xPin = 2; // X output of the accelerometer
const int yPin = 3; // Y output of the accelerometer

void setup() {
// initialize serial communications:
// initialize the pins connected to the accelerometer
// as inputs:
pinMode(xPin, INPUT);
pinMode(yPin, INPUT);

void loop() {
// variables to read the pulse widths:
int pulseX, pulseY;
// variables to contain the resulting accelerations
int accelerationX, accelerationY;

// read pulse from x- and y-axes:
pulseX = pulseIn(xPin,HIGH);
pulseY = pulseIn(yPin,HIGH);

// convert the pulse width into acceleration
// accelerationX and accelerationY are in milli-g's:
// earth's gravity is 1000 milli-g's, or 1g.
accelerationX = ((pulseX / 10) - 500) * 8;
accelerationY = ((pulseY / 10) - 500) * 8;

// print the acceleration
// print a tab character:

This code is courtesy of the Arduino website.

Once we put this code in the arduino processing software and run the code, we will get out all the
readings of the X and Y axes. If we tilt the