본문 바로가기
Potato Lab/Arduino

Arduino(아두이노)부품 정리 - MPU6500 6축 자이로 가속도 센서 모듈

by Maker_Potato 2026. 6. 30.

1. MPU6500은 어떤 센서인가요?

MPU6500은 물체의 기울기, 움직임, 회전 속도를 측정할 수 있는 6축 모션 센서

① 가속도 센서

가속도 센서는 X, Y, Z 방향으로 물체가 얼마나 움직이는지 측정
  1. 정지해 있을 때도 지구 중력 때문에 한쪽 축에는 약 1g가 측정. 이 특성을 이용하면 물체가 어느 방향으로 기울어졌는지 알 수 있음
  2. 예를 들어 보드를 책상 위에 평평하게 올려두면 보통 X축과 Y축은 0g 근처, Z축은 약 1g 근처의 값이 나옴

② 자이로 센서

자이로 센서는 물체가 회전하는 속도를 측정
  1. 단위는 보통 °/s, 즉 초당 몇 도 회전하는지를 의미
  2. 예를 들어 센서 보드를 손으로 빠르게 돌리면 자이로 값이 크게 변하고, 가만히 두면 0에 가까운 값이 나옵니다.

 

2. 왜 6축 센서라고 부를까요?

구분 측정 축의미
가속도 센서 X, Y, Z 앞뒤, 좌우, 위아래 방향의 움직임
자이로 센서 X, Y, Z X축, Y축, Z축을 기준으로 한 회전 속도
3축 가속도 + 3축 자이로 = 6축 센서

여기서 중요한 점은 MPU6500은 자기장 센서, 즉 전자나침반 기능은 없는 6축 센서라는 점. 따라서 절대적인 북쪽 방향을 알아야 하는 프로젝트라면 별도의 자기장 센서가 필요할 수 있음.

 

3. MPU6500 모듈의 보드 구성 살펴보기

① MPU6500 센서 칩

  • 보드 중앙에 있는 작은 검은색 칩
  • 실제로 가속도와 회전 속도를 측정하는 핵심 부품

② VCC, GND 전원 단자

  • 센서 모듈에 전원을 공급하는 단자
  • VCC는 전원, GND는 접지

③ SDA, SCL 통신 단자

  • 아두이노와 데이터를 주고받는 I2C 통신 단자
  • 대부분 I2C 방식으로 사용
I2C 방식 : 아두이노와 센서가 정해진 약속에 따라 데이터를 주고받는 방식
SDA : 데이터가 이동하는 선(실제 센서 데이터 전달)
SCL : 통신 타이밍을 맞추는 선(데이터가 전달되는 타이밍 조절)

 

④ 전원 레귤레이터

  • 일부 모듈에는 5V를 3.3V로 낮춰주는 레귤레이터가 들어 있음
  • 이 부품 덕분에 VCC에 5V를 넣을 수 있다고 판매되는 모듈도 있음

⑤ 저항과 콘덴서

  • 통신 신호를 안정적으로 유지하거나 전원을 안정화하는 역할

⑥ X, Y축 방향 표시

  • 센서 값을 해석할 때 기준 방향

⑦ 고정용 홀

  • 나사나 서포터로 보드를 고정할 때 사용하는 구멍
  • 자세 측정 센서는 흔들리면 값이 불안정해지므로 단단히 고정

 

4. MPU6500 모듈 단자 설명

핀 이름 역할 초보자 기준 설명
VCC 전원 입력 모듈에 전원을 공급합니다. 보통 3.3V 또는 모듈에 따라 5V 입력 가능
GND 접지 아두이노 GND와 반드시 연결
SCL / SCLK 클럭 I2C에서는 SCL, SPI에서는 SCLK로 사용
SDA / SDI 데이터 입력 I2C에서는 SDA, SPI에서는 MOSI 역할
AD0 / SDO 주소 선택 / 데이터 출력 I2C 주소 선택 또는 SPI MISO 역할
INT 인터럽트 출력 새 데이터가 준비되었을 때 아두이노에 알려주는 핀
NCS SPI 칩 선택 SPI 통신에서 사용하는 선택 핀
FSYNC 프레임 동기화 일반 아두이노 입문 실습에서는 거의 사용하지 않음
EDA 보조 I2C 데이터 외부 센서를 MPU6500에 연결할 때 사용
ECL 보조 I2C 클럭 외부 센서 연결용 보조 I2C 클럭
처음에는 VCC, GND, SDA, SCL 네 개만 연결해서 I2C 방식으로 사용하는 것을 추천

 

5. 아두이노와 연결하는 방법

Arduino UNO 기준 I2C 연결

MPU6500 모듈 Arduino UNO
VCC 3.3V 또는 모듈이 5V 지원 시 5V
GND GND
SDA A4
SCL A5
INT D2, 선택 사항

Arduino MEGA 기준

MPU6500 모듈 Arduino MEGA
SDA 20
SCL 21

ESP32 기준

MPU6500 모듈 ESP32 예시
SDA GPIO 21
SCL GPIO 22

 

6. 전압 연결 시 꼭 주의할 점

MPU6500 칩 자체는 3.3V 계열 센서. 그런데 시중의 MPU6500 모듈 중에는 보드 위에 전압 레귤레이터가 달려 있어서 VCC에 5V를 넣을 수 있는 제품도 있으나, VCC에 5V를 넣을 수 있다는 말이 SDA, SCL 신호선도 5V에 안전하다는 뜻은 아님
  • 모듈 설명서에서 5V I2C 신호 지원 여부 확인
  • 가능하면 VCC를 3.3V에 연결
  • SDA, SCL에 3.3V 레벨 변환기 사용
  • ESP32, Arduino Pro Mini 3.3V 같은 3.3V 보드 사용

 

7. I2C 주소는 무엇인가요?

MPU6500을 I2C 방식으로 연결하면 보통 주소는 0x68
AD0 핀 상태에 따라 주소가 바뀔 수 있음
같은 I2C 버스에 MPU6500 센서 두 개를 연결하고 싶다면 하나는 0x68, 다른 하나는 0x69로 설정해서 사용할 수 있음
AD0 상태 I2C 주소
GND 연결 0x68
HIGH 연결 0x69

 

8. MPU6500으로 어떤 값을 얻을 수 있나요?

① 가속도 값

  • X, Y, Z 방향의 가속도를 측정
  • 기울기, 충격, 진동, 움직임을 감지

② 자이로 값

  • X, Y, Z축을 기준으로 회전 속도를 측정
  • 로봇이 얼마나 회전했는지, 드론이 어느 방향으로 기울어지고 있는지 판단

③ 온도 값

  • MPU6500 내부에는 온도 센서도 들어 있음
  • 다만 주변 온도를 정확하게 재는 용도라기보다는 센서 내부 상태를 보정하는 참고값

 

9. MPU6500 사용 시 알아두면 좋은 한계점

① 자이로 값은 시간이 지나면 오차가 쌓임

  • 자이로 센서는 회전 속도를 측정. 이 값을 계속 더하면 각도를 구할 수 있지만, 시간이 지나면 작은 오차가 누적되어 값이 조금씩 틀어질 수 있음 → 이 현상을 드리프트라고 함

② 가속도 센서는 움직임에 흔들림

  • 가속도 센서는 중력을 이용해 기울기를 계산할 수 있음. 하지만 센서가 빠르게 움직이거나 진동이 심하면 값이 흔들릴 수 있음

③ 정확한 각도 계산에는 필터가 필요

  • 실제 프로젝트에서는 가속도 값과 자이로 값을 함께 사용
  • 대표적으로 다음과 같은 방법을 사용
    • 상보 필터
    • 칼만 필터
    • 센서 퓨전 알고리즘

 

10. MPU6500과 MPU6050의 차이

MPU6050과 MPU6500은 둘 다 “기울기와 회전을 측정하는 6축 센서”
MPU6050은 입문 예제가 많고 오래전부터 많이 쓰인 센서이고,
MPU6500은 더 작은 크기와 SPI 통신 지원 등으로 조금 더 확장성이 있는 센서
  • MPU6050은 기본적으로 I2C 통신용 센서
  • 반면 MPU6500은 I2C뿐만 아니라 SPI 통신도 지원
상황 추천
인터넷 예제를 따라 하며 배우고 싶다 MPU6050
이미 MPU6500 모듈을 가지고 있다. MPU6500 사용 가능
SPI 통신도 써보고 싶다 MPU6500
빠른 데이터 읽기가 필요한 프로젝트 MPU6500 쪽이 유리
가장 쉬운 입문 실습 MPU6050 자료 참고 후 MPU6500에 응용