Measuring Tilt with Low-g Accelerometers

Freescale Semiconductor
Application Note
AN3107
Rev 0, 05/2005
Measuring Tilt with Low-g Accelerometers
by: Michelle Clifford and Leticia Gomez
Sensor Products, Tempe, AZ
INTRODUCTION
This application note describes how accelerometers are
used to measure the tilt of an object. Accelerometers can be
used for measuring both dynamic and static measurements of
acceleration. Tilt is a static measurement where gravity is the
acceleration being measured. Therefore, to achieve the
highest degree resolution of a tilt measurement, a low-g, highsensitivity accelerometer is required. The Freescale
MMA6200Q and MMA7260Q series accelerometers are good
solutions for XY and XYZ tilt sensing. These devices provide
a sensitivity of 800 mV/g in 3.3 V applications. The
MMA2260D and MMA1260D are also good solutions for 5 V
applications providing a sensitivity of 1200mV/g for X and Z,
respectively. All of these accelerometers will experience
acceleration in the range of +1g to -1g as the device is tilted
from -90 degrees to +90 degrees.
1g = 9.8 m/s
+1 g
MODULE
A simple tilt application can be implemented using an 8 or
10-bit microcontroller that has 1 or 2 ADC channels to input
the analog output voltage of the accelerometers and general
purpose I/O pins for displaying the degrees either on a PC
through a communication protocol or on an LCD. See Figure 1
for a typical block diagram. Some applications may not require
a display at all. These applications may only require an I/O
channel to send a signal for turning on or off a device at a
determined angle range.
LCD
Accelerometer
Microcontroller
with
ADC
Interface
Circuit
RS232,
USB
Figure 1. Typical Tilt Application Block Diagram
MOUNTING CONSIDERATIONS
Device selection depends on the angle of reference and
how the device will be mounted in the end application. This will
allow you to achieve the highest degree resolution for a given
solution due to the nonlinearity of the technology. First, you
need to know what the sensing axis is for the accelerometer.
See Figure 2 to see where the sensing axes are for the
© Freescale Semiconductor, Inc., 2005. All rights reserved.
MMA7260Q. To obtain the most resolution per degree of
change, the IC should be mounted with the sensitive axis
parallel to the plane of movement where the most sensitivity is
desired. For example, if the degree range that an application
will be measuring is only 0° to 45° and the PCB will be
mounted perpendicular to gravity, then an X-Axis device
would be the best solution. If the degree range was 0° to 45°
and the PCB will be mounted perpendicular to gravity, then a
Z-Axis device would be the best solution. This is understood
more when thinking about the output response signal of the
device and the nonlinearity.
Sensing Axis
Z for Z-Axis
Z-Axis
X-Axis
X-Axis
Accelerometer
Accelerometer
PC
PCB
Z-Axis
Accelerometer
Accelerometer
PCB
PCB
Sensing
Sensing
Axis
Axis
X
1g
1g
Sensing
Sensing
Axis
Axis
Sensing Axis
for Y-Axis
Sensing Axis
for X-Axis
Gravity
Gravity
1g
1g
Y
MMA7260Q
Series
Accelerometer
Gravity
Gravity
Figure 2. Sensing Axis for the
MMA7260Q Accelerometer With X, Y,
and Z-Axis for Sensing Acceleration
Figure 3. Gravity Component of a
Tilted X-Axis Accelerometer
Figure 4. Gravity Component of a
Tilted Z-Axis Accelerometer
NONLINEARITY
As seen in Figure 5, the typical output of capacitive, micromachined accelerometers is more like a sine function. The
figure shows the analog output voltage from the accelerometer
for degrees of tilt from -90° to +90°. The change in degrees of
tilt directly corresponds to a change in the acceleration due to a
changing component of gravity acted on the accelerometer.
The slope of the curve is actually the sensitivity of the device.
As the device is tilted from 0°, the sensitivity decreases. You
see this in the graph as the slope of output voltage decreases
for an increasing tilt towards 90°. Because of this nonlinearity,
the degree resolution of the application must be determined at
0° and 90° to ensure the lowest resolution is still within the
required application resolution. This will be explained more in
the following section.
3.3
3
2.7
2.4
Output(V)
2.1
1.8
X-axis
Y-axis
1.5
Z-axis
1.2
0.9
0.6
0.3
0
-100
-90
-80
-70
-60
-50
-40
-30
-20
-10
0
10
20
30
40
50
60
70
80
90
100
Angle(degree)
Figure 5. Typical Nonlinear Output of X, Y, and Z-Axis Accelerometers
AN3107
2
Sensors
Freescale Semiconductor
CALCULATING DEGREE OF TILT
In order to determine the angle of tilt, θ, the A/D values from
the accelerometer are sampled by the ADC channel on the
microcontroller. The acceleration is compared to the zero g
offset to determine if it is a positive or negative acceleration,
e.g., if value is greater than the offset then the acceleration is
seeing a positive acceleration, so the offset is subtracted from
the value and the resulting value is then used with a lookup
table to determine the corresponding degree of tilt (See
Table1 for a typical 8-bit lookup table), or the value is passed
to a tilt algorithm. If the acceleration is negative, then the value
is subtracted from the offset to determine the amount of
negative acceleration and then passed to the lookup table or
algorithm. One solution can measure 0° to 90° of tilt with a
single axis accelerometer, or another solution can measure
360° of tilt with two axis configuration (XY, X and Z), or a single
axis configuration (e.g. X or Z), where values in two directions
are converted to degrees and compared to determine the
quadrant that they are in. A tilt solution can be solved by either
implementing an arccosine function, an arcsine function, or a
look-up table depending on the power of the microcontroller
and the accuracy required by the application. For simplicity,
we will use the equation: θ = arcsin(x). The arcsin(y) can
determine the range from 0° to 180°, but it cannot discriminate
the angles in range from 0° to 360°, e.g. arcsin(45º) =
arcsin(135º). However, the sign of x and y can be used to
determine which quadrant the angle is in. By this means, we
can calculate the angle β in one quadrant (0-90º) using
arcsin(y) and then determine θ in the determined quadrant.
[1]
∆V
V OUT = V OFFSET + ⎛ -------- × 1.0g × sin θ⎞
⎝ ∆g
⎠
where:
VOUT
= Accelerometer Output in Volts
VOFF
= Accelerometer 0g Offset
∆V/∆g = Sensitivity
1g
= Earth’s Gravity
θ
= Angle of Tilt
Solving for the angle:
[2]
⎛V
⎞
OUT – V OFFSET⎟
θ = arc sin ⎜ ---------------------------------------⎜
⎟
∆V
-------⎝
⎠
∆g
This equation can be used with the MMA6260Q as an
example:
V OUT = 1650mV + 800mV × sin θ
Where the angle can be solved by
V OUT – 1650mV
θ = arc sin ⎛ -----------------------------------------⎞
⎝ 800mV ⁄ g ⎠
From this equation, you can see that at 0° the
accelerometer output voltage would be 1650mV and at 90°
the accelerometer output would be 2450mV.
INTERFACING TO ADC
+90deg
An 8-Bit ADC
An 8-bit ADC cuts 3.3V supply into 255 steps of 12.9mV for
each step. Therefore, by taking one ADC reading of the
MMA6260Q at 0g (0°of tilt for an x-axis device) and 1g (90° of
tilt for an x-axis device), would result in the following:
0-90
degree
Quadrant
0 deg
180 deg
-90deg
Figure 6. The Quadrants of a 360 Degree Rotation
0°:
1650mV + 12.9mV = 1662.9mV,
which is 0.92° resolution
90°: 2450mV+ 12.9mV = 2462.9mV,
which is 6.51° resolution
Due to the nonlinearity discussed earlier, you will see that
the accelerometer is most sensitive when the sensing axis is
closer to 0°, and less sensitive when closer to 90°. Therefore,
the system provides a 0.92 degree resolution at the highest
sensitivity point (0 degrees), and a 6.51 degree resolution at
the lowest sensitivity point (90°).
A 10-Bit ADC
1g
Θ
Figure 7. An Example of Tilt in the First Quadrant
A 10-bit ADC cuts 3.3V supply into 1023 steps of 3.2mV for
each step. Therefore, by taking one ADC reading of the
MMA6260Q again at 0g (0° of tilt for an x-axis device), would
now result in the following:
0°:
1650mV + 3.2mV = 1653.2mV
90° 2450mV + 3.2mV = 2453.2mV
AN3107
Sensors
Freescale Semiconductor
3
This results in a 0.229 degree resolution at the highest
sensitivity point (0°) and a 3.26 degree resolution at the lowest
sensitivity point (90°).
A 12-Bit ADC
A 12-bit ADC cuts 3.3V supply into 4095 steps of 0.8mV for
each step. Therefore, by taking one ADC reading of the
MMA6260Q again at 0g (0° of tilt for an x-axis device), would
now result in the following:
0°:
1650mV + 0.8mV = 1650.8mV
90°: 2450mV + 0.8mV = 2450.8mV
This results in a 0.057 degree resolution at the highest
sensitivity point (0°) and 1.63 degree resolution at the lowest
sensitivity point (90°). However, for 0.8mV changes, the noise
factor becomes the factor to consider during design. How
much noise the system has will depend on how much
resolution you can get with a higher bit count.
TILT APPLICATIONS
There are many applications where tilt measurements are
required or will enhance its functionality. In the cell phone
market and handheld electronics market, tilt applications can
be used for controlling menu options, e-compass
compensation, image rotation, or function selection in
response to different tilt measurements. In the medical
markets, tilt is used for making blood pressure monitors more
accurate. They can also be used for feedback for tilting
hospital beds or chairs. A tilt controller can also be used for an
easier way to control this type of equipment. Accelerometers
for tilt measurements can also be designed into a multitude of
products, such as game controllers, virtual reality input
devices, HDD portable products, computer mouse, cameras,
projectors, washing machines, and personal navigation
systems.
AN3107
4
Sensors
Freescale Semiconductor
Table 1. 8-Bit Lookup Table for Determining Degree of Tilt
ADC
Bits
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
Calculated
Voltage
-0.80
-0.79
-0.77
-0.76
-0.75
-0.73
-0.72
-0.71
-0.70
-0.68
-0.67
-0.66
-0.64
-0.63
-0.62
-0.61
-0.59
-0.58
-0.57
-0.55
-0.54
-0.53
-0.52
-0.50
-0.49
-0.48
-0.46
-0.45
-0.44
-0.43
-0.41
-0.40
-0.39
-0.37
-0.36
-0.35
-0.34
-0.32
-0.31
-0.30
-0.28
-0.27
-0.26
-0.24
-0.23
-0.22
-0.21
-0.19
-0.18
-0.17
-0.15
-0.14
-0.13
-0.12
-0.10
-0.09
-0.08
-0.06
-0.05
-0.04
-0.03
-0.01
0.00
g
arcsine
arccos
-1.00
-0.98
-0.97
-0.95
-0.93
-0.92
-0.90
-0.89
-0.87
-0.85
-0.84
-0.82
-0.81
-0.79
-0.77
-0.76
-0.74
-0.73
-0.71
-0.69
-0.68
-0.66
-0.64
-0.63
-0.61
-0.60
-0.58
-0.56
-0.55
-0.53
-0.52
-0.50
-0.48
-0.47
-0.45
-0.44
-0.42
-0.40
-0.39
-0.37
-0.35
-0.34
-0.32
-0.31
-0.29
-0.27
-0.26
-0.24
-0.23
-0.21
-0.19
-0.18
-0.16
-0.15
-0.13
-0.11
-0.10
-0.08
-0.06
-0.05
-0.03
-0.02
0.00
-87.47
-79.39
-75.19
-71.93
-69.16
-66.70
-64.47
-62.40
-60.47
-58.65
-56.92
-55.26
-53.67
-52.14
-50.66
-49.23
-47.83
-46.48
-45.15
-43.86
-42.59
-41.35
-40.13
-38.93
-37.76
-36.60
-35.46
-34.33
-33.22
-32.12
-31.04
-29.97
-28.91
-27.86
-26.82
-25.79
-24.77
-23.76
-22.75
-21.75
-20.76
-19.78
-18.80
-17.83
-16.86
-15.90
-14.94
-13.99
-13.04
-12.09
-11.15
-10.21
-9.27
-8.34
-7.41
-6.48
-5.55
-4.62
-3.70
-2.77
-1.85
-0.92
0.00
177.47
169.39
165.19
161.93
159.16
156.70
154.47
152.40
150.47
148.65
146.92
145.26
143.67
142.14
140.66
139.23
137.83
136.48
135.15
133.86
132.59
131.35
130.13
128.93
127.76
126.60
125.46
124.33
123.22
122.12
121.04
119.97
118.91
117.86
116.82
115.79
114.77
113.76
112.75
111.75
110.76
109.78
108.80
107.83
106.86
105.90
104.94
103.99
103.04
102.09
101.15
100.21
99.27
98.34
97.41
96.48
95.55
94.62
93.70
92.77
91.85
90.92
90.00
ADC
Bits
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
Calculated
Voltage
0.01
0.03
0.04
0.05
0.06
0.08
0.09
0.10
0.12
0.13
0.14
0.15
0.17
0.18
0.19
0.21
0.22
0.23
0.24
0.26
0.27
0.28
0.30
0.31
0.32
0.34
0.35
0.36
0.37
0.39
0.40
0.41
0.43
0.44
0.45
0.46
0.48
0.49
0.50
0.52
0.53
0.54
0.55
0.57
0.58
0.59
0.61
0.62
0.63
0.64
0.66
0.67
0.68
0.70
0.71
0.72
0.73
0.75
0.76
0.77
0.79
0.80
g
arcsine
arccos
0.02
0.03
0.05
0.06
0.08
0.10
0.11
0.13
0.15
0.16
0.18
0.19
0.21
0.23
0.24
0.26
0.27
0.29
0.31
0.32
0.34
0.35
0.37
0.39
0.40
0.42
0.44
0.45
0.47
0.48
0.50
0.52
0.53
0.55
0.56
0.58
0.60
0.61
0.63
0.64
0.66
0.68
0.69
0.71
0.73
0.74
0.76
0.77
0.79
0.81
0.82
0.84
0.85
0.87
0.89
0.90
0.92
0.93
0.95
0.97
0.98
1.00
0.92
1.85
2.77
3.70
4.62
5.55
6.48
7.41
8.34
9.27
10.21
11.15
12.09
13.04
13.99
14.94
15.90
16.86
17.83
18.80
19.78
20.76
21.75
22.75
23.76
24.77
25.79
26.82
27.86
28.91
29.97
31.04
32.12
33.22
34.33
35.46
36.60
37.76
38.93
40.13
41.35
42.59
43.86
45.15
46.48
47.83
49.23
50.66
52.14
53.67
55.26
56.92
58.65
60.47
62.40
64.47
66.70
69.16
71.93
75.19
79.39
87.47
89.08
88.15
87.23
86.30
85.38
84.45
83.52
82.59
81.66
80.73
79.79
78.85
77.91
76.96
76.01
75.06
74.10
73.14
72.17
71.20
70.22
69.24
68.25
67.25
66.24
65.23
64.21
63.18
62.14
61.09
60.03
58.96
57.88
56.78
55.67
54.54
53.40
52.24
51.07
49.87
48.65
47.41
46.14
44.85
43.52
42.17
40.77
39.34
37.86
36.33
34.74
33.08
31.35
29.53
27.60
25.53
23.30
20.84
18.07
14.81
10.61
2.53
AN3107
Sensors
Freescale Semiconductor
5
NOTES
AN3107
6
Sensors
Freescale Semiconductor
NOTES
AN3107
Sensors
Freescale Semiconductor
7
How to Reach Us:
Home Page:
www.freescale.com
E-mail:
[email protected]
USA/Europe or Locations Not Listed:
Freescale Semiconductor
Technical Information Center, CH370
1300 N. Alma School Road
Chandler, Arizona 85224
+1-800-521-6274 or +1-480-768-2130
[email protected]
Europe, Middle East, and Africa:
Freescale Halbleiter Deutschland GmbH
Technical Information Center
Schatzbogen 7
81829 Muenchen, Germany
+44 1296 380 456 (English)
+46 8 52200080 (English)
+49 89 92103 559 (German)
+33 1 69 35 48 48 (French)
[email protected]
Japan:
Freescale Semiconductor Japan Ltd.
Headquarters
ARCO Tower 15F
1-8-1, Shimo-Meguro, Meguro-ku,
Tokyo 153-0064
Japan
0120 191014 or +81 3 5437 9125
[email protected]
Asia/Pacific:
Freescale Semiconductor Hong Kong Ltd.
Technical Information Center
2 Dai King Street
Tai Po Industrial Estate
Tai Po, N.T., Hong Kong
+800 2666 8080
[email protected]
For Literature Requests Only:
Freescale Semiconductor Literature Distribution Center
P.O. Box 5405
Denver, Colorado 80217
1-800-441-2447 or 303-675-2140
Fax: 303-675-2150
[email protected]
AN3107
Rev. 0
05/2005
Information in this document is provided solely to enable system and software
implementers to use Freescale Semiconductor products. There are no express or
implied copyright licenses granted hereunder to design or fabricate any integrated
circuits or integrated circuits based on the information in this document.
Freescale Semiconductor reserves the right to make changes without further notice to
any products herein. Freescale Semiconductor makes no warranty, representation or
guarantee regarding the suitability of its products for any particular purpose, nor does
Freescale Semiconductor assume any liability arising out of the application or use of any
product or circuit, and specifically disclaims any and all liability, including without
limitation consequential or incidental damages. “Typical” parameters that may be
provided in Freescale Semiconductor data sheets and/or specifications can and do vary
in different applications and actual performance may vary over time. All operating
parameters, including “Typicals”, must be validated for each customer application by
customer’s technical experts. Freescale Semiconductor does not convey any license
under its patent rights nor the rights of others. Freescale Semiconductor products are
not designed, intended, or authorized for use as components in systems intended for
surgical implant into the body, or other applications intended to support or sustain life,
or for any other application in which the failure of the Freescale Semiconductor product
could create a situation where personal injury or death may occur. Should Buyer
purchase or use Freescale Semiconductor products for any such unintended or
unauthorized application, Buyer shall indemnify and hold Freescale Semiconductor and
its officers, employees, subsidiaries, affiliates, and distributors harmless against all
claims, costs, damages, and expenses, and reasonable attorney fees arising out of,
directly or indirectly, any claim of personal injury or death associated with such
unintended or unauthorized use, even if such claim alleges that Freescale
Semiconductor was negligent regarding the design or manufacture of the part.
Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners.
© Freescale Semiconductor, Inc. 2005. All rights reserved.