The DTMF Shield for Arduino converts DTMF or Touch Tone signals into a format that
microcontrollers (uC) or Arduino boards can understand. DTMF tones are analog signals
that Arduino and most uC cannot read directly. This module converts those signals into a
digital format that uC can easily read.
The DTMF Module is specifically designed to plug right into the Arduino boards, but it
can also be used with a variety of microcontrollers.
1.2 DTMF decoding
The incoming audio signal goes through gain resistors and is then routed to the
DTMF Integrated Circuit. The IC input stage is an inverting amplifier where the gain is:
G = – R1 / ( R2+ R4)
When the potentiometer is at minimum (clockwise), R4=0 the the gain is:
Gain = – 100k/( 47k+ 0) = 2.12
When the potentiometer is at maximum (clockwise) R4=50k and Gain is:
Gain = – 100k/( 47k+ 50k) = 1.03
The input signal range for the DTMF IC is from 27.5mVrms to 869mVrms.
Signals outside that range will not be properly decoded. So if you use let’s say a cell
phone to inject signals into this board, you may need to lower or raise its volume to get
into the proper voltage range of the DTMF IC.
The DTMF decoder IC is the Holtek HT9170B DTMF Receiver IC.
1.2 DTMF encoding and playback
Pins A1 and A2 are optional if you want to generate DTMF signals and transmit them. With some simple code your Arduino can generate DTMF signals. The method I tested is using a modified Tone library where you can generate two tones at the same time, one tone per output pin.
2. Getting Started
2.1 Preparation Steps:
- Download & install the Arduino IDE ( http://arduino.googlecode.com/files/arduino-1.0.5-windows.exe )
- Download & unzip Test Code: https://github.com/isramos/dtmf-shield/archive/master.zip
- Move folder “Tone” folder the Arduino libraries folder ( c:\<user>\ Documents/Arduino/Libraries )
- Arduino IDE click File –> open : dtmf_plug_in_loopback.ino
2.2 The Loopback test
This test is to verify the DTMF Module is working properly. A DTMF codes are
generated and fed back into the audio input. Input is decoded and shown on Serial
- Upload the loopback Sketch into your Arduino Uno board
- Power down your Arduino board
- Remove any device from audio jack.
- Insert jumper between AIN and AOU (see image on top of this post)
- Plug the DTMF module into Arduino. Make sure of the correct pin alignment
- That’s it! Open Serial Monitor to confirm encoding and decoding of DTMF signals is working. Also, the DATA LED will blink to indicate tone has been decoded.