Lee ye bingledel
Published © GPL3+

RC car

This is my second time of Fab Lab academy.

IntermediateFull instructions provided3 hours1,184
RC car

Things used in this project

Story

Read more

Code

rc car

Arduino
#include <SoftwareSerial.h>

SoftwareSerial BTSerial(11, 12);

#define EN1 3 
#define EN2 4 

#define EN3 6  
#define EN4 7 

int carSpeed = 200; 

void setup() {
  BTSerial.begin(9600);   

  pinMode(EN1, OUTPUT);
  pinMode(EN2, OUTPUT);

  pinMode(EN3, OUTPUT);
  pinMode(EN4, OUTPUT);
}

void loop() {

  if (BTSerial.available()) {

    char command = BTSerial.read(); // ๋ธ”๋ฃจํˆฌ์Šค๋กœ ์ˆ˜์‹ ๋œ ๋ช…๋ น์–ด๋ฅผ command์— ์ €์žฅ

    if (command == 'F' || command == 'f') {
      // F ๋˜๋Š” f๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š” ๊ฒฝ์šฐ RC์นด๋ฅผ ์ „์ง„์‹œํ‚ค๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ
      moving_forward();
    }
    else if (command == 'B' || command == 'b') {
      // B ๋˜๋Š” b๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š” ๊ฒฝ์šฐ RC์นด๋ฅผ ํ›„์ง„์‹œํ‚ค๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ
      moving_backward();
    }
    else if (command == 'L' || command == 'l') {
      // L ๋˜๋Š” l์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š” ๊ฒฝ์šฐ RC์นด๋ฅผ ์™ผ์ชฝ์œผ๋กœ ํšŒ์ „์‹œํ‚ค๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ
      moving_left();
    }
    else if (command == 'R' || command == 'r') {
      // R ๋˜๋Š” r์„ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š” ๊ฒฝ์šฐ RC์นด๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํšŒ์ „์‹œํ‚ค๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ
      moving_right();
    }
    else if (command == 'S' || command == 's') {
      // S ๋˜๋Š” s๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š” ๊ฒฝ์šฐ RC์นด๋ฅผ ์ •์ง€์‹œํ‚ค๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ
      stop_moving();
    }
    else {
      // ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ช…๋ น์–ด ์ˆ˜์‹ ์‹œ RC์นด๋ฅผ ์ •์ง€์‹œํ‚ค๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ
      stop_moving();
    }

  }

  // ์ผ์ •์‹œ๊ฐ„ ์ง€์—ฐ
  delay(100);
}

void moving_forward() {
  // ๋ชจํ„ฐA๋ฅผ ์ •๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(EN1, HIGH);
  digitalWrite(EN2, LOW);

  // ๋ชจํ„ฐB๋ฅผ ์ •๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(EN3, HIGH);
  digitalWrite(EN4, LOW);
}

void moving_backward() {
  // ๋ชจํ„ฐA๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(EN1, LOW);
  digitalWrite(EN2, HIGH);

  // ๋ชจํ„ฐB๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(EN3, LOW);
  digitalWrite(EN4, HIGH);
}

void moving_left() {
  // ๋ชจํ„ฐA๋ฅผ ์ •๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(EN1, HIGH);
  digitalWrite(EN2, LOW);

  // ๋ชจํ„ฐB๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(EN3, LOW);
  digitalWrite(EN4, HIGH);
}

void moving_right() {
  // ๋ชจํ„ฐA๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(EN1, LOW);
  digitalWrite(EN2, HIGH);

  // ๋ชจํ„ฐB๋ฅผ ์ •๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(EN3, HIGH);
  digitalWrite(EN4, LOW);
}

void stop_moving() {
  digitalWrite(EN1, LOW);
  digitalWrite(EN2, LOW);
  digitalWrite(EN3, LOW);
  digitalWrite(EN4, LOW);
}   

Credits

Lee ye bin
4 projects โ€ข 1 follower
gledel
100 projects โ€ข 117 followers
Looking back on my childhood, I was happy when I was making something and I was proud of myself. "Making is instinct!"

Comments