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

MPU6500은 물체의 기울기, 움직임, 회전 속도를 측정할 수 있는 6축 모션 센서
① 가속도 센서
가속도 센서는 X, Y, Z 방향으로 물체가 얼마나 움직이는지 측정
- 정지해 있을 때도 지구 중력 때문에 한쪽 축에는 약 1g가 측정. 이 특성을 이용하면 물체가 어느 방향으로 기울어졌는지 알 수 있음
- 예를 들어 보드를 책상 위에 평평하게 올려두면 보통 X축과 Y축은 0g 근처, Z축은 약 1g 근처의 값이 나옴
② 자이로 센서
자이로 센서는 물체가 회전하는 속도를 측정
- 단위는 보통 °/s, 즉 초당 몇 도 회전하는지를 의미
- 예를 들어 센서 보드를 손으로 빠르게 돌리면 자이로 값이 크게 변하고, 가만히 두면 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에 응용 |
'Potato Lab > Arduino' 카테고리의 다른 글
| Arduino(아두이노)부품 정리 - 초음파 거리 센서 HC-SR04 3.3V-5V (0) | 2026.07.11 |
|---|---|
| Arduino(아두이노)부품 정리 - LM2596S DC-DC 스텝다운 모듈 (0) | 2026.07.03 |
| Arduino(아두이노)부품 정리 - Uno R3(우노 R3) (0) | 2026.06.27 |