Web Site:
www.parallax.com
Forums:
forums.parallax.com
Sales:
sales@parallax.com
Technical:
support@parallax.com
Office:
(916) 624-8333
Fax:
(916) 624-8003
Sales:
(888) 512-1024
Tech Support:
(888) 997-8267
Hitachi
®
H48C 3-Axis Accelerometer Module
(#28026)
General Description
The Hitachi H48C 3-Axis Accelerometer is an integrated module that can sense gravitational (g) force of
±3g on three axes (X, Y, and Z). The module contains an onboard regulator to provide 3.3-volt power to
the H48C, analog signal conditioning, and an MCP3204 (four channel, 12-bit) analog-to-digital converter
to read the H48C voltage outputs. All components are mounted on a breadboard-friendly, 0.7 by 0.8 inch
module. Acquiring measurements from the module is simplified through a synchronous serial interface.
With the BASIC Stamp
®
2 series, for example, this is easily handled with the SHIFTOUT and SHIFTIN
commands.
Features
•
Measure ±3 g on any axis
•
Uses MEMS (Micro Electro-Mechanical System) technology, with compensation for calibration-free
operation
•
Onboard regulator and high-resolution ADC for simple connection to microcontroller host
- compatible with BASIC Stamp 2 series SHIFTOUT and SHIFTIN commands
•
Free-fall output indicates simultaneous 0g an all axes
•
Small, breadboard-friendly package:
0.7" x 0.8" (17.8 mm x 20.3 mm)
•
Wide operational range: -25° to 75° C
Application Ideas
•
Tilt measurement in robotics applications
•
Multi-axis vibration measurement in transit and shipping systems
•
Multi-axis movement/lack-of-movement for alarm systems
Packing List
Verify that your H48C Accelerometer kit is complete in accordance with the list below:
•
Hitachi H48C 3-Axis Accelerometer module
•
Documentation
Note: Demonstration software files may be downloaded from www.parallax.com.
(See
http://www.parallax.com/detail.asp?product_id=28026)
Copyright© Parallax Inc. • Hitachi H48C 3-Axis Accelerometer Module (#28026) • 7/27/2007
Rev 1.2
Page 1 of 6
Essential Connections
Connecting the H48C module to the BASIC Stamp 2 controller is a straightforward operation, requiring
just three I/O pins (the CLK and DIO pins may be shared in systems requiring the use of more than one
H48C module). See Figure 1 for connection details.
Figure 1. H48C Connections
How It Works
Through MEMS (Micro Electro-Mechanical System) technology and built-in compensation, the H48C
accelerometer provides simultaneous outputs through analog conditioning circuitry to an MCP3204 ADC.
To "read" g-force of a given axis we actually read the voltage output from that axis and calculate g-force
using this formula:
G = ((axis – vRef) / 4095) x (3.3 / 0.3663)
In the formula,
axis
and
vRef
are expressed in counts from the ADC, 4095 is the maximum output count
from a 12-bit ADC channel, 3.3 is the H48C supply voltage, and 0.3663 is the H48C output voltage for 1g
(when operating at 3.3v). In practice this can be simplified to:
G = (axis – vRef) x 0.0022
Using the BASIC Stamp 2 module as a host controller, we should multiply the 0.0022 by 100 (to 0.22) to
express the result in units of 0.01g. Using the ** operator, we are able to multiply by 0.22 and convert
the raw readings to g-force with this bit of code:
IF (axCount >= rvCount) THEN
gForce = (axCount - rvCount) ** GfCnv
ELSE
gForce = -((rvCount - axCount) ** GfCnv)
ENDIF
' positive g-force
' negative g-force
Note the
IF-THEN
structure which prevents a negative number from being divided – this is illegal in
PBASIC 2.x and will not return the correct result. By restructuring the conversion equation for negative
g-forces we can indeed arrive at the correct value. The output value,
gForce
, is a signed integer.
In application the analog signal conditioning circuitry affects the rate at which readings can be taken
H48C module. The filter/buffer circuit is designed to minimize noise while maintaining the highest
possible signal resolution into the ADC. By design, the filter circuit limits MC48C axis output rail-to-rail
rise/fall time to about five milliseconds. Since MCP3204 has a significantly higher sample rate, the
Copyright© Parallax Inc. • Hitachi H48C 3-Axis Accelerometer Module (#28026) • 7/27/2007
Rev 1.2
Page 2 of 6
sampling rate of the module is dictated by the filter circuitry and works out to about 200 samples per
second.
Pin Definitions and Ratings
(1) CLK
(2) DIO
(3) Vss
(4) Zero-G
(5) CS\
(6) Vdd
Synchronous clock input
Bi-directional data to/from host
Power supply ground (0v)
"Free-fall" output; active-high
Chip select input; active-low
+5vdc
Symbol
V
DD
V
SS
I
DD
V
IH
V
IL
V
OH
V
OL
Quantity
Operating voltage
Ground reference connection
Supply current
High Level Voltage Input
Low Level Voltage Input
†
†
†
†
Minimum
4.5
Typical
5.0
0
7
Maximum
5.5
10
0.3 V
DD
Units
V
V
mA
V
V
V
V
sps
bits
g
mV/g
%
0.7 V
DD
4.1
0.4
200
†
High Level Voltage Output
Low Level Voltage Output
Sample Rate
ADC (MCP3204) Resolution
Measurement Range
Sensitivity
Accuracy
§
§
§
§
12
-3
366.3
10
-2
§
§
3
Non-linearity
2
75
3.3
1
%
°C
V
ms
Operating Temperature Range
Zero-G Output Delay
§
-25
3.2
High Level Zero-G Voltage Output
† From Microchip MCP3204 Datasheet
§ From Hitachi H48C Datasheet
Copyright© Parallax Inc. • Hitachi H48C 3-Axis Accelerometer Module (#28026) • 7/27/2007
Rev 1.2
Page 3 of 6
Demonstration Program
This demonstration uses the BASIC Stamp 2 series microcontroller to read the reference voltage and
output channels from the H48C using the onboard MCP3204 analog-to-digital converter. For each
channel the raw count, channel voltage, and g-force for the X, Y, and Z axes are displayed as shown
below:
BASIC Stamp 2 Source Code
' =========================================================================
'
'
File....... H48C_3-Axis.BS2
'
Purpose.... Hitachi H48C 3-Axis Accelerometer Demonstration
'
Author..... Copyright (c) 2005-2006 Parallax, Inc.
'
E-mail..... support@parallax.com
'
Started....
'
Updated.... 02 FEB 2006
'
'
{$STAMP BS2}
'
{$PBASIC 2.5}
'
' =========================================================================
' -----[ I/O Definitions ]-------------------------------------------------
Dio
Clk
CS
PIN
PIN
PIN
15
14
13
' data to/from module
' clock output
' active-low chip select
' -----[ Constants ]-------------------------------------------------------
XAxis
YAxis
ZAxis
CON
CON
CON
0
1
2
' adc channels
Copyright© Parallax Inc. • Hitachi H48C 3-Axis Accelerometer Module (#28026) • 7/27/2007
Rev 1.2
Page 4 of 6
VRef
Cnt2Mv
GfCnv
CON
CON
CON
3
$CE4C
$3852
' counts to millivolts
'
0.80586 with **
' g-force conversion
'
0.22 with **
' -----[ Variables ]-------------------------------------------------------
axis
rvCount
axCount
mVolts
gForce
dValue
dPad
VAR
VAR
VAR
VAR
VAR
VAR
VAR
Nib
Word
Word
Word
Word
Word
Nib
'
'
'
'
'
axis selection
ref voltage adc counts
axis voltage adc counts
millivolts
axis g-force
' display value
' display pad
' -----[ Initialization ]--------------------------------------------------
Reset:
HIGH CS
DEBUG CLS,
"=========================",
"H48C 3-Axis Accelerometer",
"=========================",
CR,
"
Count Volts
G ",
"
----- ----- -----",
"VRef
",
"
X
",
"
Y
",
"
Z
"
' deselect module
' paint display
CR,
CR,
CR,
CR,
CR,
CR,
CR,
CR,
' -----[ Program Code ]----------------------------------------------------
Main:
FOR axis = XAxis TO ZAxis
GOSUB Get_H48C
dValue = rvCount
DEBUG CRSRXY, 6, 6
GOSUB RJ_Print
dValue = axCount
DEBUG CRSRXY, 6, (7 + axis)
GOSUB RJ_Print
mVolts = rvCount ** Cnt2Mv
DEBUG CRSRXY, 13, 6,
DEC (mVolts / 1000), ".",
DEC3 mVolts
mVolts = axCount ** Cnt2Mv
DEBUG CRSRXY, 13, (7 + axis),
' loop through each axis
' read vRef & axis counts
' display vRef count
' display axis count
' convert vref to mv
' display
' convert axis to mv
Copyright© Parallax Inc. • Hitachi H48C 3-Axis Accelerometer Module (#28026) • 7/27/2007
Rev 1.2
Page 5 of 6