edge lab LIVE! starts Tuesday in Munich. Grab a workshop seat and take home the board you build on. Code FRIEND-HACKSTER saves 20%. () Learn more!
yaeseonggledel
Published © GPL3+

Making an RC Car

I made an RC car in this class.

IntermediateShowcase (no instructions)1 hour1,069
Making an RC Car

Things used in this project

Hardware components

Arduino Nano R3
Arduino Nano R3
×1
Breadboard (generic)
Breadboard (generic)
×1
Jumper wires (generic)
Jumper wires (generic)
×1
Motor Adapter for NI myRIO
Digilent Motor Adapter for NI myRIO
×1
Arduino DC Motor
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

RC car

rc car

Code

rc car

Arduino
control RC car
// ๋ชจํ„ฐB์˜ ํ•€๋ฐฐ์—ด 
#define B1A 5// motor B ์†๋„์กฐ์ ˆ
#define B1B 6// motor B ๋ฐฉํ–ฅ์กฐ์ ˆ
 
// ๋ชจํ„ฐA์˜ ํ•€๋ฐฐ์—ด
#define A1A 9  // motor A ์†๋„์กฐ์ ˆ analogWrite
#define A1B 10 // motor A ๋ฐฉํ–ฅ์กฐ์ ˆ
 
int carSpeed = 10500; // RC์นด์˜ ์†๋„
 
void setup() {
  Serial.begin(9600);    // ์‹œ๋ฆฌ์–ผ ํ†ต์‹  ์ดˆ๊ธฐํ™”(0๋ฒˆ:RX, 1๋ฒˆ:TX๋กœ ์‚ฌ์šฉ), ํ•˜๋“œ์›จ์–ด ์‹œ๋ฆฌ์–ผ ํฌํŠธ๋กœ ๋ธ”๋ฃจํˆฌ์Šค์™€ ํ†ต์‹ 
 
  pinMode(A1A, OUTPUT);
  pinMode(A1B, OUTPUT);
  pinMode(B1A, OUTPUT);
  pinMode(B1B, OUTPUT);
}
 
void loop() {
 
  if (Serial.available()) {
    
    char command = Serial.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(A1B, HIGH);
  analogWrite(A1A, 255-carSpeed);
 
  // ๋ชจํ„ฐB๋ฅผ ์ •๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(B1B, HIGH);
  analogWrite(B1A, 255-carSpeed);/carspeed ์ž‘์„์ˆ˜๋ก ๋น ๋ฆ„ ์ •๋ฐฉํ–ฅ, ์—ญ๋ฐฉํ–ฅ์€ ํด์ˆ˜๋ก ๋น ๋ฆ„
}
 
void moving_backward() {
 // ๋ชจํ„ฐA๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(A1B, LOW);
  analogWrite(A1A, carSpeed);
 
  // ๋ชจํ„ฐB๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(B1B, LOW);
  analogWrite(B1A, carSpeed);
}
 
void moving_left() {
  // ๋ชจํ„ฐA๋ฅผ ์ •๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(A1B, HIGH);
  analogWrite(A1A, carSpeed);
 
  // ๋ชจํ„ฐB๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(B1B, LOW);
  analogWrite(B1A, carSpeed);
}
 
void moving_right() {
 // ๋ชจํ„ฐA๋ฅผ ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(A1B, LOW);
  analogWrite(A1A, carSpeed);
 
  // ๋ชจํ„ฐB๋ฅผ ์ •๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „
  digitalWrite(B1B, HIGH);
  analogWrite(B1A, carSpeed);
}
 
void stop_moving() {
  // ๋ชจํ„ฐA์™€ ๋ชจํ„ฐB๋ฅผ ๋น„ํ™œ์„ฑํ™”
  analogWrite(A1A, LOW);
  analogWrite(A1B, LOW);
  digitalWrite(B1A, LOW);
  digitalWrite(B1B, LOW);
}

Credits

yaeseong
7 projects โ€ข 7 followers
Korean High School Student who wants to expand his knowledge of the World
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