Arduino RC Car With Tinker CAD

by Vedanth_K in Circuits > Arduino

4729 Views, 7 Favorites, 0 Comments

Arduino RC Car With Tinker CAD

Annotation 2020-05-02 081824.jpg

Hi guys, this is a instructable to learn a simple arduino rc car with very cheap and readily available materials.Check out the design.The base of the car can be done with either cardboard or chassis.Check out the supplies needed and get them ready.

Supplies

*Arduino UNO

*Dc motars-2

*Breadboad(Medium sized)

*IR sensor

*LED(Any colour)

*H-Bridge Motar Driver

*Resistor

*IR Remote

*Jumper wires for connecting

*A to B arduino cable for programming.

Pc or Laptop for programming

Connecting the Circuit

Annotation 2020-05-02 075620.jpg

Look at the image and assemble your components.

Coding Your Project

Annotation 2020-05-02 080857.jpg

Connect your Arduino to pc or laptop with the help of Arduino A to B cable.Look at the code below copy and paste them in Arduino IDE app and upload it.

Code:

#include

IRrecv rc(11);

decode_results results; //Init Motors

const int PWM_M1 = 5;

const int IN1_M1 = 2;

const int IN2_M1 = 3;

const int PWM_M2 = 6;

const int IN1_M2 = 8;

const int IN2_M2 = 9;

int speed = 100;

void setup()

{

Serial.begin(9600);

rc.enableIRIn();

pinMode(PWM_M1,OUTPUT);

pinMode(PWM_M2,OUTPUT);

pinMode(IN1_M1,OUTPUT);

pinMode(IN2_M1,OUTPUT);

pinMode(IN1_M2,OUTPUT);

pinMode(IN2_M2,OUTPUT); }

void loop()

{

if (rc.decode(&results))

{

switch(results.value)

{

case 0xFD00FF://power

break;

case 0xFD807F://vol+

forward();

break;

case 0xFD40BF://func/stop

break;

case 0xFD20DF://|<<

turnLeft();

break;

case 0xFDA05F://>||

stop();

break ;

case 0xFD609F://>>|

turnRight();

break ;

case 0xFD10EF://down arrow

speedDown();

break ;

case 0xFD906F://vol-

backward();

break ;

case 0xFD50AF://up arrow

speedUp();

break ;

}

rc.resume();

}

}

void forward()

{

Serial.println("forward");

analogWrite(PWM_M1, speed);

analogWrite(PWM_M2, speed);

digitalWrite(IN1_M1, HIGH);

digitalWrite(IN2_M1, LOW);

digitalWrite(IN1_M2, HIGH);

digitalWrite(IN2_M2, LOW); }

void backward()

{

Serial.println("backward");

analogWrite(PWM_M1, speed);

analogWrite(PWM_M2, speed);

digitalWrite(IN1_M1, LOW);

digitalWrite(IN2_M1, HIGH);

digitalWrite(IN1_M2, LOW);

digitalWrite(IN2_M2, HIGH); }

void turnLeft()

{

Serial.println("turnLeft");

analogWrite(PWM_M1, 0);

analogWrite(PWM_M2, speed);

digitalWrite(IN1_M1, HIGH);

digitalWrite(IN2_M1, LOW);

digitalWrite(IN1_M2, HIGH);

digitalWrite(IN2_M2, LOW); }

void turnRight()

{

Serial.println("turnRight");

analogWrite(PWM_M1, speed);

analogWrite(PWM_M2, 0);

digitalWrite(IN1_M1, HIGH);

digitalWrite(IN2_M1, LOW);

digitalWrite(IN1_M2, HIGH);

digitalWrite(IN2_M2, LOW); }

void stop()

{

Serial.println("stop");

digitalWrite(IN1_M1, LOW);

digitalWrite(IN2_M1, LOW);

digitalWrite(IN1_M2, LOW);

digitalWrite(IN2_M2, LOW); }

void speedUp()

{

Serial.println("speedUp");

speed+=10;

if(speed>255) speed =255;

analogWrite(PWM_M1, speed);

analogWrite(PWM_M2, speed); }

void speedDown()

{

Serial.println("speedDown");

speed-=10;

if(speed<0) speed =0;

analogWrite(PWM_M1, speed);

analogWrite(PWM_M2, speed);

}

Tutorial!!