CODE 6.17 | 스마트폰 조종 자동차 만들기
| 01 | #include <SoftwareSerial.h> |
| 02 | |
| 03 | // 블루투스 통신 핀 설정 (RX: 2번, TX: 3번) |
| 04 | SoftwareSerial BTSerial(2, 3); |
| 05 | |
| 06 | // 모터 제어 핀 설정 |
| 07 | int rightMotor1 = 5; |
| 08 | int rightMotor2 = 6; |
| 09 | int leftMotor1 = 9; |
| 10 | int leftMotor2 = 10; |
| 11 | |
| 12 | void 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 | |
| 23 | void 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 | } |
댓글 없음:
댓글 쓰기