MMA7361 3축 가속도 센서 (아날로그 출력)
MMA7361L 은 freescale 에서 제작한 아날로그 3축 가속도 센서 입니다. 저전력으로 동작하며 signal conditioning, 1-pole low pass filter, 온도 보상, self test, 0G(자유낙하) 감지 기능을 지원합니다. G-Select 핀으로 2개의 감도 중 하나를 선택할 수 있으며 0G offset 과 감도는 공장 초기화 상태로 초기화 되어 있습니다. MMA7361L 모듈은 배터리 관리를 위해 Sleep Mode 를 지원합니다.
Features
- Low Voltage Operation: 2.2 V – 3.6 V
- High Sensitivity (800 mV/g @ 1.5g)
- Selectable Sensitivity (±1.5g, ±6g)
- Fast Turn On Time (0.5 ms Enable Response Time)
- Self Test for Freefall Detect Diagnosis
- 0g-Detect for Freefall Protection
- Signal Conditioning with Low Pass Filter
- Robust Design, High Shocks Survivability
- RoHS Compliant
- Environmentally Preferred Product
- Low Cost
Document
사용방법
MMA7361 모듈은 가속도 센서의 3축 측정값을 아날로그 출력으로 보내줍니다. 따라서 아두이노의 아날로그 입력 핀(A0~A5)을 이용해서 쉽게 측정값을 읽을 수 있습니다.
Example code
샘플 코드는 아래와 같습니다. 여기서는 전용 라이브러리를 사용하므로 링크에서 라이브러리를 다운로드 받아 설치해야 합니다.
#include <AcceleroMMA7361.h> AcceleroMMA7361 accelero; int x; int y; int z; void setup() { Serial.begin(9600); accelero.begin(13, 12, 11, 10, A0, A1, A2); accelero.setARefVoltage(5); //sets the AREF voltage to 3.3V accelero.setSensitivity(LOW); //sets the sensitivity to +/-6G accelero.calibrate(); } void loop() { x = accelero.getXAccel(); y = accelero.getYAccel(); z = accelero.getZAccel(); Serial.print("\nx: "); Serial.print(x); Serial.print(" \ty: "); Serial.print(y); Serial.print(" \tz: "); Serial.print(z); Serial.print("\tG*10^-2"); delay(500); //make it readable }
테스트
MMA7361 모듈을 평평한 곳에 놓고 아두이노에 샘플 코드를 올립니다. 시리얼 모니터를 열면 MMA7361 모듈은 보정작업을 한 뒤 x, y, z 축의 측정 값을 보내줍니다. 라이브러리를 이용해 아날로그 핀에서 이 값을 받아 출력하면 아래처럼 표시됩니다.
아래 이미지는 평평한 곳에 모듈을 놓았을 때 Z축 중력가속도가 약 100(1 G)인 경우의 출력값입니다. 반드시 모듈을 평평한 곳에 두고 보정 작업을 거쳐야 합니다.
참고자료