블루투스 제어 서보 모터 – 아두이노 우노 & HC-05
부품 및 소모품
| 아두이노 우노 |
|
1개 |
| SG90 마이크로 서보 모터 |
|
1개 |
| HC-05 블루투스 모듈 |
|
1개 |
| 브레드보드 (일반) |
|
1개 |
| 점퍼 와이어 (일반) |
|
1세트 |
앱 및 온라인 서비스
프로젝트 소개
스마트폰 애플리케이션과 블루투스를 이용해 서보 모터를 제어하는 방법을 보여줍니다. HC-05 블루투스 모듈과 아두이노 우노, 9g 서보 모터를 사용합니다.
작동 원리
이 프로젝트는 두 부분으로 구성됩니다:
- 안드로이드 애플리케이션 – HC-05 블루투스 모듈로 다양한 데이터 패킷을 전송합니다. (앱 다운로드 링크 참고, 본인 제작 앱 아님)
- 하드웨어 – HC-05 블루투스 모듈, 아두이노 우노, 서보 모터로 구성됩니다.
상세 동작 흐름
안드로이드 앱이 데이터 패킷을 블루투스 모듈로 보냅니다. 블루투스 모듈은 시리얼 통신으로 아두이노 우노에 데이터를 전달합니다. 아두이노는 수신한 데이터 패킷 값에 따라 서보 모터 제어 신호를 생성합니다. 다음 흐름도로 이해할 수 있습니다.
시작하기
- 안드로이드 애플리케이션을 다운로드합니다.
- 아두이노 우노에 코드를 업로드합니다.
- 회로를 연결합니다. 중요: HC-05 모듈은 3.3V로 전원 공급해야 합니다. 5V 연결 시 모듈 손상될 수 있습니다.
- 블루투스 모듈을 안드로이드 앱과 연결합니다. 하드웨어 전원을 켜면 블루투스 모듈이 검색 가능해집니다. 앱에서 "주변 기기 찾기"를 누르고 HC-05를 선택하세요. "연결됨" 표시가 뜨면 준비 완료입니다.
앱의 슬라이더나 직접 입력으로 서보 모터 각도를 제어할 수 있습니다.
코드
Bluetooth controlled servo (C/C++)
아두이노 우노에 업로드할 코드입니다.
#include <SoftwareSerial.h>
#include <Servo.h>
Servo x;
int bttx = 9; // 블루투스 TX → 아두이노 핀 9
int btrx = 10; // 블루투스 RX → 아두이노 핀 10
SoftwareSerial bluetooth(bttx, btrx);
void setup() {
x.attach(11); // 서보 → 아두이노 핀 11
Serial.begin(9600);
bluetooth.begin(9600);
}
void loop() {
if (bluetooth.available() > 0) { // 블루투스 모듈이 데이터 전송 중
int pos = bluetooth.read(); // 데이터 읽어 pos에 저장
Serial.println(pos);
x.write(pos); // 서보를 해당 각도로 이동
}
}
회로도
다음과 같이 회로를 구성하세요.