Arduino RC Car With Tinker CAD
by Vedanth_K in Circuits > Arduino
4729 Views, 7 Favorites, 0 Comments
Arduino RC Car With Tinker CAD
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
Look at the image and assemble your components.
Coding Your Project
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);
}