Report by evrim, 14 February,2007
Edited by Merche Blasco, 1 March 2012
The Hitachi H48C Tri-Axis Accelerometer is an integrated module that can sense gravitational (g) force of ±3g on three axes (X, Y, and Z). It is made by Hitachi Metals and available through Parallax.com They sell if for $39.95
Currently the sensor is no longer available for single purchase in Parallax, but it is included in the Sensor Sampler kit:
- Tilt measurement in robotics applications
- Multi-axis vibration measurement in transit and shipping systems
- Multi-axis movement/lack-of-movement for alarm systems
- Measures ±3g on three axes simultaneously.
- For most app.s doesn't need calibration due to "compensation IC".
- Supply Voltage of +4.5V to 5.5V
- detects static tilt as well as movement.
- Small and breadboard friendly(YAY!): 0.7" x 0.8"
- Built -in temperature sensor. Module operation range -25 to 75 d. Celcius
- "Free Fall Detection" : Sends the pulse simultaneous 0g on all axes.
- Has standby mode
The table for the pin description is pretty straight forward.
(1) CLK Synchronous clock input
(2) DIO Bi-directional data to/from host
(3) Vss ground
(4) Zero-G "Free-fall" output; active-high
(5) CS\ Chip select input; active-low
(6) Vdd +5V
How it Works
H48C provides voltage output to the built in ADC on the module. With Pics this data can be read with SHIFTOUT or in Arduino with PulseIn command. To convert that voltage value to gravitational force we can use following formula.
G=((axis-vRef)/4095)x 3.3/ 0.3663)
Here 4095 is the maximum output count from ADC channel. 3.3 is the H48C supply voltage, and 0.3663 is the H48C output voltage for 1g(when operating at 3.3)
The only thing that I don't understand is that what is the vRef. I understand that it is the reference but how do we tell the sensor to give me the reference voltage and the axis voltage. Datasheet doesn't say what message to send to get vRef.
For my test I was interested on reading the values collected form the three different axis and I used a small breadboard and arduino UNO connected like this:
1/ CLK>> PIN 10 arduino
2 /DIO >> PIN 11 arduino
3 >> Ground
5 / CS>> PIN 9 arduino
6>> 5V arduino
I took the code from kiilo for ARDUINO in this link:
and the values for three axes oscillated between -500 and 500.
I am using the Hitachi H48C 3-Axis Accelerometer to do a sonic interpretation of the asymmetry of the arm swing magnitude during gait. Therefore I am attaching one accelerometer to each of my wrists and measuring the angle as the excursion of the wrist with respect to the pelvis. The DATA is sent to MAX/MSP via SerialPort and from there is translated into MIDI DATA sent to Ableton Live.