[실습세미나] rc카

작성자
김상돈 양정현 임진희
작성일
2022-05-07 14:11
조회
271
rc카 조원 김상돈, 양정현, 임진희 튜터 강호승

목표
  1. rc카 조립 및 회로 작성
  2. 아두이노를 이용하여 rc카 작동
  3. 블루투스를 이용한 스마트폰 어플리케이션으로 rc카 작동

#include 

int A_1A = 5;
int A_1B = 6;
int B_1A = 10;
int B_1B = 9;


int btRxPin = 3;
int btTxPin = 2;

SoftwareSerial bluetoothSerial(btRxPin, btTxPin);
int speed = 150;

void setup() {
  Serial.begin(9600);
  bluetoothSerial.begin(9600);
  pinMode(A_1A, OUTPUT);
  pinMode(A_1B, OUTPUT);
  pinMode(B_1A, OUTPUT);
  pinMode(B_1B, OUTPUT);
  digitalWrite(A_1A, LOW);
  digitalWrite(A_1B, LOW);
  digitalWrite(B_1A, LOW);
  digitalWrite(B_1B, LOW);
}


void loop() {
  /*
    'f' - 전진명령(forward)
    'b' - 후진명령(back)
    'l' - 왼쪽명령(left)
    'r' - 오른쪽명령(right)
    's' - 정지명령(stop)
  */
  char cmd ;

  if (bluetoothSerial.available()) {
    cmd = bluetoothSerial.read();
    Serial.print(cmd);

    switch (cmd) {
      case 'f':
        //모터A 정회전
        analogWrite(A_1A, 200);
        analogWrite(A_1B, 0);
        //모터B 정회전
        analogWrite(B_1A, 200);
        analogWrite(B_1B, 0);
        break;
      case 'b':
        //모터A 역회전
        analogWrite(A_1A, 0);
        analogWrite(A_1B, 200);
        //모터B 역회전
        analogWrite(B_1A, 0);
        analogWrite(B_1B, 200);
        break;
      case 'l':
        //모터A 정회전
        analogWrite(A_1A, 0);
        analogWrite(A_1B, 0);
        //모터B 역회전
        analogWrite(B_1A, 200);
        analogWrite(B_1B, 0);
        break;
      case 'r':
        //모터A 역회전
        analogWrite(A_1A, 200);
        analogWrite(A_1B, 0);
        //모터B 정회전
        analogWrite(B_1A, 0);
        analogWrite(B_1B, 0);
        break;
      case 's':
        //모터A 정지
        analogWrite(A_1A, 0);
        analogWrite(A_1B, 0);
        //모터B 정지
        analogWrite(B_1A, 0);
        analogWrite(B_1B, 0);
        break;
    }
  }
}


추가 과제

차체 인벤터 제작 
전체 0