Accelerometers are devices that measure acceleration, which is the rate of change of the velocity of an object. It is measured in meters per second squared (m/s2) or in G-forces (g). A single G-force for us here on planet Earth is equivalent to 9.8 m/s2, but this does vary slightly with elevation (and will be a different value on different planets due to variations in gravitational pull). Accelerometers are useful for sensing vibrations in systems or for orientation applications.
Rhydolabz’s 3-Axis Accelerometer Sensor (I2C) is based on MMA7660FC is a ±1.5 g 3-Axis Accelerometer with Digital Output (I2C). This module is suitable for interfacing to the microcontroller without onchip ADC, like AT89S52 series. MMA7660 Accelerometer module consists of an MMA7660 sensor IC and its interfacing circuitry that can be used to communicate with microcontroller base board. The device can be used for monitoring data changes, product orientation and gesture detection through an interrupt pin (INT). This sensor is implemented in such places where the product demands high image stability, object orientation detection, motion detection as in game consoles etc. The compact size and low power consumption makes it a user friendly device to include it in any application.
MMA7660 is a very low power, low profile capacitive MEMS sensor featuring a low pass filter, compensation for 0g offset and gain errors, and conversion to 6-bit digital values at a user configurable samples per second. The device can be used for sensor data changes, product orientation, and gesture detection through an interrupt pin (INT). The module is extremely suitable for robotic application and tilt sensing.
The MMA7660 sensor has three power modes: Off Mode, Standby Mode, and Active Mode to offer the customer different power consumption options. The sensor is only capable of running in one of these modes at a time. The Off Mode offers the lowest power consumption, approximately 0.4 µA and can only be reached by powering down the analog supply. In this mode, there is no analog supply and all I2C activity is ignored.The Standby Mode is ideal for battery operated products. When Standby Mode is active the device outputs are turned off providing a significant reduction in operating current. When the device is in Standby Mode the current will be reduced to approximately 3 µA. Standby Mode is entered as soon as both analog and digital power supplies are up. In this mode, the device can read and write to the registers with I2C, but no new measurements can be taken.
During the Active Mode, continuous measurement on all three axis is enabled. In addition, the user can choose to enable: Shake Detection, Tap Detection, Orientation Detection, and/or Auto-Wake/Sleep Feature and in this mode the digital analysis for any of these functions is done. The user can configure the samples per second to any of the following:1 sample/second, 2 samples/second, 4 samples/second, 8 samples/second, 16 samples/second, 32 samples/second, 64 samples/second, and 120 samples/second, for the Auto-Sleep state. If the user is configuring the Auto-Wake feature, the selectable ranges are: 1 sample/second, 8 samples/second, 16 samples/seconds and 32 samples/second. Depending on the samples per second selected the power consumption will vary. The Auto-Wake/Sleep feature can toggle the sampling rate from a higher user selected samples per second to a lower user selected samples per second, changing based on if motion is detected or not. The user can choose to use any of the above options to configure the part and make it have the optimal power consumption level for the desired application.
The MMA7660 sensor employs both analog and digital filtering to ensure low noise and accurate output when using the part for Shake, Tap, or Orientation Detection. During Active Mode, the data is filtered and stored for each of the 3 axis at the specified following measurement intervals: 1s (1 sample/second), 500 ms (2 samples/second), 250 ms (4 samples/second),125 ms (8 samples/second), 62.5 ms (16 samples/second), 31.25 ms (32 samples/second), 15.625 ms (64 samples/second), or 8.36 ms (120 samples/second) .
3-Axis Accelerometer Sensor ( I2C) Features:
- Onboard MMA7660 Accelerometer chip
- ±1.5 g, 3 axis Sensing
- Onboard 3V3 Regulating IC
- Builtin LED for Power
- Onboard Power supply filtering Capacitors
- Onboard Power supply de-coupling capacitors
- Digital Output (I2C)
- Balanced Berg strip connectors
- Input voltage range ( 5V-10V)
MMA7660 Chip Features:
- Digital Output (I2C)
- 3mm x 3mm x 0.9mm DFN Package
- Low Power Current Consumption: Off Mode: 0.4 μA,
- Standby Mode: 3 μA, Active Mode: 47 μA at 1 ODR
- Configurable Samples per Second from 1 to 120 samples a second.
- Low Voltage Operation:
- Analog Voltage: 2.4 V – 3.6 V
- Digital Voltage: 1.71 V – 3.6 V
- Auto-Wake/Sleep Feature for Low Power Consumption
- Tilt Orientation Detection for Portrait/Landscape Capability
- Gesture Detection Including Shake Detection and Tap Detection
- Robust Design, High Shocks Survivability (10,000 g)
- RoHS Compliant
- Halogen Free
- Environmentally Preferred Product
- Low Cost
How To Test :
Testing 3-Axis Accelerometer Sensor- MMA7660 (I2C) using Arduino
To interface 3-Axis Accelerometer Sensor- MMA7660 (I2C) with Arduino, connect SDA & SCL pins of MMA7660 to A4 & A5 pins of Arduino board respectively. Also connect +5V & Gnd to respective pins of Arduino. Connections are shown below.
Arduino library for MMA7660 I2C Accelerometer (Click here to download) makes the interfacing quite simple. The library reads the output of each axis via I2C and transmits them serially. To use the library, follow the steps given below.
- Extract the zip file
- Copy the folder ‘MMA7660-master’ to C:\arduino-1.7.2\libraries
- Launch Arduino
- Select File > Examples > MMA7660-master > MMA7660. The sample code is given below.
Serial.begin(9600); /* Serial communication at 9600 baudrate */
Wire.begin(); /* Initiate the library and join the I2C bus */
accel.init(); /* Initialise accelerometer module */
accel.getValues(); /* Read output values */
Serial.println(accel.x, DEC); /* Print x-axis output */
Serial.println(accel.y, DEC); /* Print y-axis output */
Serial.println(accel.z, DEC); /* Print z-axis output */
- Verify the code and upload it to board
- Open Serial Monitor with baud rate as set in the code. You can see the output as shown below
Frequently Asked Questions(FAQ): Q.What is an accelerometer ?
Ans: An accelerometer is an electro-mechanical device that will measure acceleration forces. These forces may be static, like the constant force of gravity pulling at your feet, or they could be dynamic – caused by moving or vibrating the accelerometer.
Q.What is range of an accelerometer?
Ans: Range is the level of acceleration supported by the sensor’s output signal specifications, typically specified in ±g. This is the greatest amount of acceleration the part can measure and accurately represent as an output. For example, the output of a ±3g accelerometer is linear with acceleration up to ±3g. If it is accelerated at 4g, the output may rail.
Q.Where would you use a 3-Axis Accelerometer Sensor- MMA7660 (I2C)?
Ans:There are a number of practical applications for 3-Axis Accelerometer Sensor- MMA7660 (I2C);
In Mobile Phone/ Portable Media Player/ Personal Digital Assistant the sensor module used for Orientation Detection (Portrait/ Landscape),Image Stability, Text Scroll, Motion Dialing, Tap to Mute. In Laptop PC it is used in Anti-Theft applications , In Gaming the module’s Motion Detection, Auto-Wake/Sleep for Low Power Consumption features are used and Digital Still Camera this module used for image stability.