페이지

2026년 6월 16일 화요일

6.5.5. 스마트폰으로 조종하는 자동차 만들기





CODE 6.17 | 스마트폰 조종 자동차 만들기
01#include <SoftwareSerial.h>
02 
03// 블루투스 통신 핀 설정 (RX: 2번, TX: 3번)
04SoftwareSerial BTSerial(2, 3);
05 
06// 모터 제어 핀 설정
07int rightMotor1 = 5;
08int rightMotor2 = 6;
09int leftMotor1 = 9;
10int leftMotor2 = 10;
11 
12void setup() {
13  // 모터 핀을 출력 모드로 설정
14  pinMode(rightMotor1, OUTPUT);
15  pinMode(rightMotor2, OUTPUT);
16  pinMode(leftMotor1, OUTPUT);
17  pinMode(leftMotor2, OUTPUT);
18 
19  // 블루투스 통신 시작
20  BTSerial.begin(9600);
21}
22 
23void loop() {
24  // 스마트폰에서 보낸 데이터가 있는지 확인
25  if (BTSerial.available()) {
26    char command = BTSerial.read(); // 수신된 문자 읽기
27 
28    // 'F'를 받으면 전진
29    if (command == 'F') {
30      digitalWrite(rightMotor1, HIGH);
31      digitalWrite(rightMotor2, LOW);
32      digitalWrite(leftMotor1, HIGH);
33      digitalWrite(leftMotor2, LOW);
34    }
35    // 'B'를 받으면 후진
36    else if (command == 'B') {
37      digitalWrite(rightMotor1, LOW);
38      digitalWrite(rightMotor2, HIGH);
39      digitalWrite(leftMotor1, LOW);
40      digitalWrite(leftMotor2, HIGH);
41    }
42    // 'L'을 받으면 좌회전
43    else if (command == 'L') {
44      digitalWrite(rightMotor1, HIGH);
45      digitalWrite(rightMotor2, LOW);
46      digitalWrite(leftMotor1, LOW);
47      digitalWrite(leftMotor2, LOW);
48    }
49    // 'R'을 받으면 우회전
50    else if (command == 'R') {
51      digitalWrite(rightMotor1, LOW);
52      digitalWrite(rightMotor2, LOW);
53      digitalWrite(leftMotor1, HIGH);
54      digitalWrite(leftMotor2, LOW);
55    }
56    // 'S'를 받으면 정지
57    else if (command == 'S') {
58      digitalWrite(rightMotor1, LOW);
59      digitalWrite(rightMotor2, LOW);
60      digitalWrite(leftMotor1, LOW);
61      digitalWrite(leftMotor2, LOW);
62    }
63  }
64}




 

댓글 없음:

댓글 쓰기