[실습세미나] RC카(미로찾기 1팀)

작성자
백건우
작성일
2022-05-19 22:31
조회
284
저희 팀은 RC카를 주제로 맡아서 제작하였습니다. 앞,뒤,오른쪽,왼쪽, 멈추기 동작을 각각 버튼 하나씩 배정하고 블루투스를 통해 휴대폰 앱으로 버튼을 누르면 그 방향으로 움직이게끔 코딩을 진행하였습니다. 아래는 저희가 만든 RC카의 외형과 저희가 진행한 코드입니다.

 
#include 
#define RX 7
#define TX 8
#define motor1pin1 10
#define motor1pin2 11
#define motor2pin1 3
#define motor2pin2 5
SoftwareSerial bluetooth(RX, TX);

void backward() {
  digitalWrite(10, HIGH);
  digitalWrite(11, LOW);
  digitalWrite(3, HIGH);
  digitalWrite(5, LOW);
}
void forward() {
  digitalWrite(10, LOW);
  digitalWrite(11, HIGH);
  digitalWrite(3, LOW);
  digitalWrite(5, HIGH);
}
void right() {
  digitalWrite(10, LOW);
  digitalWrite(11, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(5, LOW);
}
void left() {
  digitalWrite(10, HIGH);
  digitalWrite(11, LOW);
  digitalWrite(3, LOW);
  digitalWrite(5, HIGH);
}
void stopall() {
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
  digitalWrite(3, LOW);
  digitalWrite(5, LOW);
}
void setup() {
  Serial.begin(9600);
  bluetooth.begin(9600);
  Serial.println("READY");
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
}
void loop() {
  if (bluetooth.available()) {
    // Serial.write(bluetooth.read());
    char input = bluetooth.read(); // 블루투스 값을 변수 input에 저장
    if (input == '1') // 입력값이 '1'인 경우 앞으로 가기
      forward();
    else if (input == '2') // 입력값이 '2'인 경우 왼쪽으로 가기
      left();
    else if (input == '3') // 입력값이 '3'인 경우 오른쪽으로 가기
      right();
    else if (input == '4') // 입력값이 '4'인 경우 뒤로 가기
      backward();
    else if (input == '5') // // 입력값이 '5'인 경우 멈추기
      stopall();
  }
  if(Serial.available()){
    bluetooth.write(Serial.read());
  }
}
전체 0