Mobile Controlled Robotic Car Using Arduino and DTMF

by Sadeem in Circuits > Robots

15313 Views, 22 Favorites, 0 Comments

Mobile Controlled Robotic Car Using Arduino and DTMF

11760533_912848698786443_376711778_o.jpg

Hello guys!

This is my first project on instructables, hope u will enjoy this.

This project is about how you can control a robotic car using cell phone and how you can control that car from anywhere in the world.

Project headed by Sir Saad Abdullah.

Components

1. IC’s:

· 7805

· MT 8870 / HT 9170 B

· MH 7404 (hex inverter)

· L293D / L298 (motor driver)

2. Arduino Uno

3. 9 V battery

4. 100 k ohm resistor x2

5. 330 k ohm resistor x1

6. 22 pF capacitor x2

7. 10 micro F capacitor x2

8. 3.579 MHz crystal

9. Audio Jack

10. DC motors x2

11. Mobile phone

DTMF Signal:

DTMF (dual tone multi frequency) is the signal to the phone company that you generate when you press an ordinary telephone's touch keys.

With DTMF, each key you press on your phone generates two tones of specific frequencies. So that a voice cannot imitate the tones, one tone is generated from a high-frequency group of tones and the other from a low frequency group.

Circuit Diagram:

mobile controlled robotic car-page-001.jpg

Circuit Explanation:

MT 8870 or HT9170 B takes the DTMF signal from the cell phone and decode that signal into a binary code, that signal cannot be processed directly into the Arduino Uno (microcontroller), if u do so your signal will loss. That’s why a hex inverter IC is utilized to convert its logic and powered the signal. The output of hex inverter can be processed into Arduino Uno and u can now program the circuit.

You can also control your car by making a call from other phone, and by pressing buttons from other phone. Make sure that you have activated keypad sounds.

Arduino Code:

int x,y,z,t;

int a=3;

int b=4;

int c=5;

int d=6;

int e=7;

int f=8;

int g=9;

int h=10;

void setup() {

// put your setup code here, to run once:

pinMode(a,INPUT);

pinMode(b,INPUT);

pinMode(c,INPUT);

pinMode(d,INPUT);

pinMode(e, OUTPUT);

pinMode(f,OUTPUT);

pinMode(g,OUTPUT);

pinMode(h,OUTPUT);

Serial.begin (9600);

}

void loop() {

// put your main code here, to run repeatedly:

x=digitalRead(a);

y=digitalRead(b);

z=digitalRead(c);

t=digitalRead(d);

Serial.print(x);

Serial.print(y);

Serial.print(z);

Serial.println(t);

delay(1000);

if (x==1 && y==0 && z==1 && t==1)

{digitalWrite(e,HIGH);

digitalWrite(f,LOW);

digitalWrite(g,HIGH);

digitalWrite(h,LOW);}

if (x==1 && y==1 && z==1 && t==0)

{digitalWrite(e,LOW);

digitalWrite(f,HIGH);

digitalWrite(g,LOW);

digitalWrite(h,HIGH);}

if (x==1 && y==1 && z==0 && t==1)

{digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,HIGH);

digitalWrite(h,LOW);}

if (x==1 && y==0 && z==0 && t==1)

{digitalWrite(e,HIGH);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

digitalWrite(h,LOW);}

if (x==0 && y==0 && z==1 && t==1)

{digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

digitalWrite(h,LOW);}}

Video Link: