

The MMA7361 is a low-g, 3-axis accelerometer designed for motion detection and orientation sensing. It provides analog voltage outputs proportional to acceleration along the X, Y, and Z axes. With its compact size and low power consumption, the MMA7361 is ideal for applications such as mobile devices, gaming controllers, robotics, and tilt sensing. Its ability to detect both static and dynamic acceleration makes it versatile for a wide range of motion-sensing applications.








The MMA7361 has 14 pins, with the following configuration:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | GND | Ground |
| 2 | VDD | Power supply (2.2V to 3.6V) |
| 3 | XOUT | Analog output for X-axis acceleration |
| 4 | YOUT | Analog output for Y-axis acceleration |
| 5 | ZOUT | Analog output for Z-axis acceleration |
| 6 | ST | Self-test pin (active high) |
| 7 | G-Select | Sensitivity selection (low: ±1.5g, high: ±6g) |
| 8 | Sleep | Sleep mode control (low: active, high: sleep) |
| 9 | 0G-Detect | 0g detection output |
| 10 | NC | Not connected |
| 11 | NC | Not connected |
| 12 | NC | Not connected |
| 13 | NC | Not connected |
| 14 | NC | Not connected |
Below is an example of how to connect the MMA7361 to an Arduino UNO and read acceleration data.
// MMA7361 Accelerometer Example Code
// Reads acceleration data from X, Y, and Z axes and prints to Serial Monitor.
const int xPin = A0; // XOUT connected to A0
const int yPin = A1; // YOUT connected to A1
const int zPin = A2; // ZOUT connected to A2
void setup() {
Serial.begin(9600); // Initialize serial communication at 9600 baud
}
void loop() {
int xValue = analogRead(xPin); // Read X-axis acceleration
int yValue = analogRead(yPin); // Read Y-axis acceleration
int zValue = analogRead(zPin); // Read Z-axis acceleration
// Convert analog values to voltage (assuming 3.3V reference)
float xVoltage = xValue * (3.3 / 1023.0);
float yVoltage = yValue * (3.3 / 1023.0);
float zVoltage = zValue * (3.3 / 1023.0);
// Print the results to the Serial Monitor
Serial.print("X Voltage: ");
Serial.print(xVoltage);
Serial.print(" V, Y Voltage: ");
Serial.print(yVoltage);
Serial.print(" V, Z Voltage: ");
Serial.print(zVoltage);
Serial.println(" V");
delay(500); // Wait for 500ms before the next reading
}
No Output Signal:
Incorrect or Noisy Readings:
Sensitivity Not Changing:
Q: Can the MMA7361 be powered with 5V?
A: No, the MMA7361 operates within a voltage range of 2.2V to 3.6V. Use a voltage regulator if your system operates at 5V.
Q: How do I detect free-fall using the MMA7361?
A: Monitor the 0G-Detect pin. It outputs a signal when all three axes detect near-zero acceleration, indicating free-fall.
Q: What is the purpose of the Self-Test pin?
A: The Self-Test pin allows you to verify the functionality of the accelerometer by applying a known signal to the outputs when activated.
By following this documentation, you can effectively integrate the MMA7361 into your projects for reliable motion and orientation sensing.