Mobile Controlled Robotic Car Using Arduino and DTMF

13,681

21

14

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.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: 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

Step 2: 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.

Step 4: 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.

Step 5: 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:

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);}}