블루투스 RC카 만들기: 아두이노 원격 제어 차량 DIY
부품 및 소모품
| 아두이노 우노 |
× |
1 |
| 12V 200RPM DC 모터 |
× |
2 |
| L293D 모터 드라이버 실드 (아두이노 우노용) |
× |
1 |
| HC-05 블루투스 모듈 |
× |
1 |
| 브레드보드 |
× |
1 |
| 점퍼 와이어 |
× |
1 |
앱 및 온라인 서비스
프로젝트 설명
무언가를 제어하는 건 즐거운 일입니다. 자동화와 로봇이 매력적인 이유죠. 이 튜토리얼로 나만의 블루투스 조종 RC카를 만들어보세요.
하드웨어 제작
차체 프레임
듀얼 모터 구성. 12V 200RPM DC 모터 2개 사용. 기성 섀시 또는 직접 제작(PVC 시트 활용). 무게는 최대한 가볍게.
회로 구성
회로도 따라 연결. L293D 실드 위에 아두이노 장착, 모터는 실드 M1/M2 단자, HC-05는 TX→RX(0), RX→TX(1) 크로스 연결, VCC→5V, GND→GND.
전원 공급 (중요)
아두이노는 파워뱅크(5V)로 구동. 하지만 12V 모터 구동용 별도 전원 필요. 9V 건전지 2개 직렬(18V) 시도했으나 전류 부족으로 모터 속도 저하. 12V 배터리(예: LiPo, 납축전지) 사용 강력 권장.
코드 로직
모터 회전 방향으로 차량 방향 제어:
- 전진: 양쪽 모터 정회전
- 후진: 양쪽 모터 역회전
- 좌회전: 좌측 역회전, 우측 정회전
- 우회전: 좌측 정회전, 우측 역회전
- 정지: 양쪽 모터 해제
void forward() { motor1.run(FORWARD); motor2.run(FORWARD); }
void backward() { motor1.run(BACKWARD); motor2.run(BACKWARD); }
void left() { motor1.run(BACKWARD); motor2.run(FORWARD); }
void right() { motor1.run(FORWARD); motor2.run(BACKWARD); }
void Stop() { motor1.run(RELEASE); motor2.run(RELEASE); }
완성 및 실행
- 아두이노에 코드 업로드
- 회로 연결
- 안드로이드 앱 실행 (링크 참조)
- 폰과 차량 블루투스 페어링
개선 제안이나 질문은 댓글로 남겨주세요!
코드
#include <AFMotor.h>
AF_DCMotor motor1(1); // 좌측 모터
AF_DCMotor motor2(2); // 우측 모터
int val;
void setup() {
Serial.begin(9600);
motor1.setSpeed(255);
motor2.setSpeed(255);
Stop();
}
void loop() {
val = Serial.read();
if(val == '1') forward(); // 전진
if(val == '2') backward(); // 후진
if(val == '3') left(); // 좌회전
if(val == '4') right(); // 우회전
if(val == '5') Stop(); // 정지
}
void forward() { motor1.run(FORWARD); motor2.run(FORWARD); }
void backward() { motor1.run(BACKWARD); motor2.run(BACKWARD); }
void left() { motor1.run(BACKWARD); motor2.run(FORWARD); }
void right() { motor1.run(FORWARD); motor2.run(BACKWARD); }
void Stop() { motor1.run(RELEASE); motor2.run(RELEASE); }
회로도
참고: 회로도에 외부 12V 전원은 표시되지 않았습니다. 반드시 모터 드라이버 실드 전원 단자에 12V 공급하세요.