DTMF Controlled Robot using Arduino

Arduino

BySaddam 60

DTMF Controlled Robot using Arduino Uno

In present time almost all the people are familiar with robots. Robots play a very important role in human life. Robots are a machine which reduces the human efforts in heavy works in industries, building etc. and makes life easy. We are here with our next robot that is Mobile or DTMF Controlled Robot. DTMF controlled Robot runs over mobile DTMF technology that exists in Dial tone. DTMF stands for Dual Tone Multiple Frequency. There are some frequencies that we use to create DTMF tone. In simple words by adding or mixing two or more frequencies generates DTMF tone. These frequencies are given below:

DTMF Frequencies

In given figure we can see two groups of different frequencies. When one upper and one lower frequencies mixed then a tone is created and that tone we call Dual Tone Multiple Frequency

 

Required Components

  • Arduino UNO
  • DC Motor
  • Mobile Phone
  • DTMF decoder Module
  • Motor Driver L293D
  • 9 Volt Battery
  • Battery Connector
  • Aux wire
  • Robot Chasis with wheel
  • Connecting wires

 

What is DTMF?

DTMF is a Dual Tone Multiple Frequency decoder module which has a MT8870 DTMF decoder IC which decodes DTMF tone signal to digital signal that are acceptable for arduino digitally. Here an aux wire is needed for connecting DTMF module to phone.

DTMF Module

 

Block Diagram for DTMF Controlled Robot using Arduino

Block Diagram for DTMF Controlled Robot using Arduino

Remote section: This section’s main component is DTMF. Here we get a tone from our cellphone by using aux wire to DTMF Decoder IC namely MT8870 which decodes the tone into digital signal of 4bit.

Control Section: Arduino UNO is used for controlling whole the process of robot. Arduino reads commands sent by DTMF Decoder and compare with define code or pattern. If commands are match arduino sends respective command to driver section.

Driver section: driver section consists motor driver and two DC motors. Motor driver is used for driving motors because arduino does not supply enough voltage and current to motor. So we add a motor driver circuit to get enough voltage and current for motor. By collecting commands from arduino motor driver drive motor according to commands.

 

Circuit Diagram and Working Explanation

Arduino based DTMF Controlled Robot Circuit Diagram

Circuit digram for Arduino based DTMF Controlled Robot is very similar with our other robot like PC controlled robot, Line Follower, Gesture Controlled Robot, etc.. Here one motor driver is connected to arduino for driving robot. Motor driver’s input pin 2, 7, 10 and 15 is connected at arduino digital pin number 6, 5, 4 and 3 respectively. Here we have used two DC motors to driver robot in which one motor is connected at output pin of motor driver 3 and 6 and another motor is connected at 11 and 14. A 9 volt Battery is also used to power the motor driver for driving motors. A DTMF decoder attached with this circuit and this decoder is plugged into a mobile using an aux wire for receiving command or DTMF Tone. DTMF decoder pin D0-D3 is directly connected with Arduino’s pin number 19,18,17,16. Two 9 Volt batteries are used to power the circuit in which one is used for power the motors, connected at motor driver IC pin number 8. And another battery is connected to power the remaining circuit.

 

Working of DTMF Controlled Robot

DTMF controlled robot run by some commands that are send via mobile phone. We are here using DTMF function of mobile phone. Here we have used the mobile phone to show working of project. One is user mobile phone that we will call ‘remote phone’ and second one that are connected with Robot’s circuit using aux wire. This mobile phone we will call ‘Receiver Phone’.   

First we make a call by using remote phone to receiver phone and then attend the call by manually or automatic answer mode. Now here is how this DTMF controlled robot is controlled by cell phone:

 

When we presses ‘2’ by remote phone, robot start to moving forward and moving continues forward until next command comes.

Moving forward DTMF Controlled Robot

When we presses ‘8’ by remote phone, robot change his state and start moving in backward direction until other command comes.

Moving Backward the DTMF Controlled Robot

When we press ‘4’, Robot get turn left till next command exicuted.

Turning left to DTMF controlled robot

When we press ‘6’, robot turned to right.

turning right to dtmf controlled robot

And for stopping robot we pass‘5’.

stop dtmf controlled robot

 

Programming Explanation

In program first of all we have defined output pins for motors and Input pins for DTMF decoder output as in INPUT for Arduino.

define

And then in setup set motor pin as OUTPUT and DTMF decoder output pins as INPUT.

direction

After that we read DTMF decoder output and then compare with defined values by using “if” statement and perform relative operation.

redesign and compare

There are five conditions in this DTMF controlled Robot that are giving below:

DTMF Robot Conditions

We write program according to above table conditions.

Code

#define m11 3
#define m12 4
#define m21 5
#define m22 6

#define D0 19
#define D1 18
#define D2 17
#define D3 16

void forward()
{
   digitalWrite(m11, HIGH);
   digitalWrite(m12, LOW);
   digitalWrite(m21, HIGH);
   digitalWrite(m22, LOW);
}

void backward()
{
   digitalWrite(m11, LOW);
   digitalWrite(m12, HIGH);
   digitalWrite(m21, LOW);
   digitalWrite(m22, HIGH); 
}

void left()
{
   digitalWrite(m11, HIGH);
   digitalWrite(m12, LOW);
   digitalWrite(m21, LOW);
   digitalWrite(m22, LOW);
}

void right()
{
   digitalWrite(m11, LOW);
   digitalWrite(m12, LOW);
   digitalWrite(m21, HIGH);
   digitalWrite(m22, LOW);
}

void Stop()
{
   digitalWrite(m11, LOW);
   digitalWrite(m12, LOW);
   digitalWrite(m21, LOW);
   digitalWrite(m22, LOW);
}

void setup() 
{
  pinMode(D0, INPUT);
  pinMode(D1, INPUT);
  pinMode(D2, INPUT);
  pinMode(D3, INPUT);

  pinMode(m11, OUTPUT);
  pinMode(m12, OUTPUT);
  pinMode(m21, OUTPUT);
  pinMode(m22, OUTPUT);
}

void loop() 
{

  int temp1=digitalRead(D0);
  int temp2=digitalRead(D1);
  int temp3=digitalRead(D2);
  int temp4=digitalRead(D3);
 
  if(temp1==0 && temp2==1 && temp3==0 && temp4==0)
  forward();

  else if(temp1==0 && temp2==0 && temp3==1 && temp4==0)
  left();

  else if(temp1==0 && temp2==1 && temp3==1 && temp4==0)
  right();

  else if(temp1==0 && temp2==0 && temp3==0 && temp4==1)
  backward();

   else if(temp1==1 && temp2==0 && temp3==1 && temp4==0)
  Stop();
}

Video

Comments

  • Jack's picture
    Jack
    Sep 26, 2015

    Where can i bay this DTMF-Module?
    Thanks,
    Jack

  • jayant's picture
    jayant
    Sep 27, 2015

    You can buy a DTMF module from your local hardware shop or there are various websites like ebay from where you can buy it online.

  • sasanka sekhor ghosh's picture
    sasanka sekhor ghosh
    Apr 02, 2016

    You have to buy from "Amazon.In".

  • vishnu's picture
    vishnu
    Sep 30, 2015

    which ic is used in dtmf decoder

  • Wes's picture
    Wes
    Dec 19, 2015

    Interesting project. However, there seems to be a big gap in the area of getting the audio signal from the cell phone to the DTMF module. " an aux wire is needed" does not explain much.

  • Jayant's picture
    Jayant
    Jan 01, 2016

    If you notice carefully, there is another cell phone, that is placed on the Robot and AUX wire has been used to connect that cell phone to DTMF module.

  • usman iqbal's picture
    usman iqbal
    Dec 20, 2015

    plz i need a clear image of circuit diagram pins connection to arduino

  • Maddy's picture
    Maddy
    Jan 01, 2016

    Just click on the Circuit Diagram, it will get enlarge and opens in new Tab.

  • khaja vali's picture
    khaja vali
    Jan 01, 2016

    Dtmf contolled robot with microcontroller, dtmf -dual tone muliti-frequency

  • rishu's picture
    rishu
    Jan 29, 2016

    can u tell me whole procedure of how to burn code in arduino uno.....thnks
    what library files u added while coding for dtmf decoder

  • preet's picture
    preet
    Feb 13, 2016

    this code is not working after uploading

  • Jayant's picture
    Jayant
    Feb 23, 2016

    Projects is properly tested, check you circuit connections and use mentioned components.

  • naveen's picture
    naveen
    Mar 11, 2016

    i didnt get where aux wire got connected .it is not even shown in circuit diagram

  • Ashish's picture
    Ashish
    Mar 22, 2016

    Hey in program code Pin D0,D1,D2,D3 are specified where as in circuit diagram pin D6,D5,D4,D3 are given. Can any one explain it to me

  • Abhishek's picture
    Abhishek
    Mar 28, 2016

    D0,D1,D2,D3 are for DTMF module, not for Arduino. Code means D0,D1,D2,D3 of DTMF module are connected to Arduino pins 19, 18,17,16. Please read the Description, Code and Circuit before comment.

  • suneesh's picture
    suneesh
    Sep 21, 2016

    pin number 19,18,17,16 mean....? arduino uno has only 13 pins and analog pinss....

  • Shubham's picture
    Shubham
    Mar 23, 2016

    Code is not working after uploading.....plz sir can u mail me correct code

  • Abhishek's picture
    Abhishek
    Apr 17, 2016

    Code is correct, please check your circuit connections.

  • IRFAN's picture
    IRFAN
    Apr 18, 2016

    please tell that where the program need to be feed either in ardino or DTMF module

  • sushil kr.singh's picture
    sushil kr.singh
    Apr 21, 2016

    No need of programming for dtmf ic .So feed yr program in ardino (burner port).

  • sitaram's picture
    sitaram
    Jun 07, 2016

    tell about RPM speed of dc motor(150 or 200) and dc supply.

  • Rubika's picture
    Rubika
    Aug 19, 2016

    Thanks for your detailed explanation,Can u explain how to connect the audio jack with DTMF module

  • valli's picture
    valli
    Aug 21, 2016

    please tell me the specifications of arduino used in this project

  • MENA's picture
    MENA
    Aug 26, 2016

    i cant find DTMF module in shops in my city ,, but there is MT8870 ic only ,, can i use it only ??? ,, or it should be programmed first ???

  • Maddy's picture
    Maddy
    Sep 21, 2016

    Yes you can, but then you need to connect other components with 8870 chip like Crystal etc. Check this project where we used MT8870 chip with its other needed circuitry: DTMF Based Home Automation

  • Pravin Subhash agawane's picture
    Pravin Subhash ...
    Aug 31, 2016

    Hey...
    I have one question in my mind.. You are using analog pins A2 - A5. and in void loop you are reading data digitally.. how is it possible? Analog pin only takes analog input and dtmf module decodes input digitally. So digital data should be read by Arduino.
    I am also failing to drive the motors as per this information mentioned by you... please give me directions. my all connections are well checked as per your instructions.Please help us...

  • Maddy's picture
    Maddy
    Sep 21, 2016

    You can use analog pins in digitalRead()/digitalWrite() function in Arduino to read or write digital data.

  • shraddha dhavale's picture
    shraddha dhavale
    Jan 06, 2017

    I want this mini projects based on pic microcontroller

  • anik halder's picture
    anik halder
    Jan 16, 2017

    Very good....thank u.....I made it.....in just 10 min.....no problem in coding or circuit

  • shraddha dhavale's picture
    shraddha dhavale
    Feb 26, 2017

    Plz send Me pic microcontroller coding

  • Maimoona's picture
    Maimoona
    Feb 14, 2018

    PLEASE tell us is it possible to make this project i m very interesting in making this project.....
    give me your whatsapp number

  • poojashree.s's picture
    poojashree.s
    Feb 02, 2017

    can i directly do the coding in turbo 7...ll it directly save in arduino...r shld i any other procedure for that...could you plz guide me

  • Ajith Kumar K's picture
    Ajith Kumar K
    Mar 02, 2017

    You are saying that the output of dtmf module is digital, but how you are connecting it with analog pins of arduino??

  • Maddy's picture
    Maddy
    Mar 04, 2017

    Please read all the previous comments before asking questions, we might have answered them already.

  • shaza's picture
    shaza
    Mar 13, 2017

    My motor driver(l293d) board does not have enable pins
    Is it work properly ? .

  • Rohit's picture
    Rohit
    Apr 04, 2017

    i want to make the calling using sim900A module as well as control using dtmf command set.
    since i tried using AT+DDET=1 but my module showing error. could you advice me.

  • karthik's picture
    karthik
    Apr 08, 2017

    #define D0 19
    #define D1 18
    #define D2 17
    #define D3 16 in this code u r defining the pins as 16,17,18,19 where r those pins in audrino..help me to understand

  • karthik's picture
    karthik
    Apr 08, 2017

    in this ..in l298d module both en1 and end are connected to +5v volt..is it corret ?

  • Manish singh's picture
    Manish singh
    Apr 19, 2017

    how to connect aux cable with DTMF and mobile phone. and which type of cell phone use for this project .

  • Makwana Prashant's picture
    Makwana Prashant
    Jul 29, 2017

    How to use in project of DC motor ? How many Voltage in DC Motor ?

  • Ahad's picture
    Ahad
    Aug 12, 2017

    Is it possible to get vedio feedback from receiver phone to controller phone???

  • Ahad's picture
    Ahad
    Aug 19, 2017

    I want to get vedio feedback from attached Android mobile phone to calling Android mobile phone, by using skype vedio call. Is it possible, if i use seme circuit diagram and same ardiuno code?? Plz replay.. its very urgent.

  • Rajamani's picture
    Rajamani
    Sep 01, 2017

    In the circuit diagram where should I connect the mobile phone using audio jack?

  • Aswinth Raj's picture
    Aswinth Raj
    Sep 04, 2017

    In the circuit diagram the DTMF module is shown as a block. The actual DTMF module will have a audio jack pin to which the mobile phone can be connected. 

  • surya 's picture
    surya
    Nov 08, 2017

    the project is good but will it work with normal l298d

  • AISHA's picture
    AISHA
    Feb 07, 2018

    1. You can use 3.5mm Aux cable

    2. Yes it will

    3. There is an android phone which can automatically answer calls, install it and your phone will answer the call automatically then you can use the DTMF to navigate 

  • STEPH's picture
    STEPH
    Feb 08, 2018

    Thanks AISHA :)

  • STEPH's picture
    STEPH
    Feb 08, 2018

    I found "Automatic answer" on the Nokia 130:
    Menu > Settings > Enhancement settings > Headset > Automatic answer

  • Manu MJ's picture
    Manu MJ
    Feb 07, 2018

    ThanQ its WORKING

  • STEPH's picture
    STEPH
    Feb 11, 2018

    Could you "whistle" the dtmf tones into the remote phone?

  • Mahadev's picture
    Mahadev
    May 05, 2018

    All those r very gud concepts but hw I can download the PDF of particular projects????

  • Umesh's picture
    Umesh
    Aug 25, 2018

    Please send making video

  • praveen's picture
    praveen
    Aug 31, 2018

    i have given all the connections..still the motor has not get power supply.....
    i am using l298n driver .....we have give the connections for enable or it will work without enable connections..?

Log in or register to post Comment