Go Down

Topic: DTMF decoder library (Read 104907 times) previous topic - next topic

Fuellhase

Everything works fine now. Thank You !!!

starstuff

I've uploaded the updated version to http://members.shaw.ca/el.supremo/DTMF.zip.

Pete
Hey Pete,

The above link seems to be pointing to the previous version... still the same detect function.

rob

el_supremo

Hi Rob,
Thanks for the heads up. I've uploaded the correct version this time.

Pete
Don't send me technical questions via Private Message.

Fuellhase

I realized the wrong link by myself. Thanks to everybody. My application, the detection of given 4 alarmtones between 580 and 820 Hz, works very fine!

iWantaFanta

Hey everybody,

I'm so glad this DTMF library exists.  To add to the posted code in this thread. Any ideas on how to select 2 or 4 dtmf tones sequentially to flip the LED on? 


I'm looking for:
 
if(thischar == '55') {
  digitalWrite(led, HIGH);
}


Or:


if(thischar == '55AB') {
  digitalWrite(led, HIGH);
}


I'm thinking of having a counter that counts until 2 or 4.  Once the count gets up to 2 or 4, 'thischar' would be reset to 0.  I'm having trouble expressing that as code that works. 


Thanks!

ngunduc

Hi Everybody,

I am trying to make a simple comminicator by landline which will use DTMF signals on both sides problem is , I am looking for detecting the Line busy, Call in process , other party didnt answer , Does any one can help me how to make this or which IC. can be used or is there any other way to make.

Best Regards

Emersentian

Hi Pete,

When I tried "Verify" of the "dtmf_test.ino"

I get this error message:

Quote
Arduino: 1.6.5 (Windows 8.1), Board: "Arduino Uno"

C:\Program Files (x86)\Arduino\libraries\DTMF\DTMF.cpp: In member function 'void DTMF::detect(float*, int)':
C:\Program Files (x86)\Arduino\libraries\DTMF\DTMF.cpp:179:1: error: unable to find a register to spill in class 'POINTER_REGS'
 }
 ^
C:\Program Files (x86)\Arduino\libraries\DTMF\DTMF.cpp:179:1: error: this is the insn:
(insn 42 40 44 6 (set (reg:SF 50 [ D.4208 ])
        (mem:SF (post_inc:HI (reg:HI 63 [ ivtmp.118 ])) [2 MEM[base: _50, offset: 0B]+0 S4 A8])) C:\Program Files (x86)\Arduino\libraries\DTMF\DTMF.cpp:175 99 {*movsf}
     (expr_list:REG_INC (reg:HI 63 [ ivtmp.118 ])
        (nil)))
C:\Program Files (x86)\Arduino\libraries\DTMF\DTMF.cpp:179: confused by earlier errors, bailing out
Error compiling.

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Do I need to have the arduino uno plugged in and running the program? I thought "verify" would compile without.



Thanks,
Emerson

el_supremo

See messages 24, 28 and 29 in this thread. Let me know if that doesn't help.

Pete
Don't send me technical questions via Private Message.

edprado

#38
Sep 11, 2015, 02:41 pm Last Edit: Sep 11, 2015, 04:51 pm by edprado
Hi,  I would like to use the keypad cellphone near the microphone to recognize the tones, what kind of microphone do you suggest?


edit:

Electret Microphone Amplifier - MAX4466 with Adjustable Gain - https://www.adafruit.com/products/1063

Electret Microphone Amplifier - MAX9814 with Auto Gain Control - https://www.adafruit.com/products/1713

or another in aliexpress ?

PChuma

hi

my arduino keeps reading the DTMF decoder outputs as high, what might be the problem

ulises2012

hello from Argentina, I am a rookie, you can use Arduino Uno 328 and Dtmf Dt8870 to use as joystick pc

surbyte

Yes, of course. 
Use Google: Arduino USB Joystick, there is a lot of info.

pjrc

#42
Nov 27, 2015, 11:19 am Last Edit: Nov 27, 2015, 11:48 am by Paul Stoffregen
Oh, so painful seeing floating point... so slow, times 7 tones!

You also need some relative signal strength comparisons and handling dropouts and other timing issues that occur in real-world reception of DTMF tones in the presence of noise and interference.

Here, use this if you must stay on 8 bit AVR.

https://github.com/PaulStoffregen/AVR_DTMF

If you have a 32-bit Teensy 3.x, I wrote a much better version is available in the audio library.

dvk1

#43
Dec 03, 2015, 08:20 pm Last Edit: Dec 05, 2015, 10:10 pm by dvk1
Hello, el_supremo . Please tell me whether it is possible to work your library with ATmega8 internal clock 8MHz ?

AquaRovGuy

Hi, I have been trying to use your code, but I keep getting the following errors:

Code: [Select]

Arduino: 1.6.5 (Windows 7), Board: "Arduino/Genuino Uno"

Build options changed, rebuilding all

Using library DTMF in folder: C:\Program Files (x86)\Arduino\libraries\DTMF (legacy)



C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\DTMF C:\Users\Owner\AppData\Local\Temp\build6193173364618605693.tmp\dtmf_test.cpp -o C:\Users\Owner\AppData\Local\Temp\build6193173364618605693.tmp\dtmf_test.cpp.o

C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\libraries\DTMF -IC:\Program Files (x86)\Arduino\libraries\DTMF\utility C:\Program Files (x86)\Arduino\libraries\DTMF\DTMF.cpp -o C:\Users\Owner\AppData\Local\Temp\build6193173364618605693.tmp\DTMF\DTMF.cpp.o

C:\Program Files (x86)\Arduino\libraries\DTMF\DTMF.cpp: In member function 'void DTMF::detect(float*, int)':
C:\Program Files (x86)\Arduino\libraries\DTMF\DTMF.cpp:179:1: error: unable to find a register to spill in class 'POINTER_REGS'
 }
 ^
C:\Program Files (x86)\Arduino\libraries\DTMF\DTMF.cpp:179:1: error: this is the insn:
(insn 42 40 44 6 (set (reg:SF 50 [ D.4208 ])
        (mem:SF (post_inc:HI (reg:HI 63 [ ivtmp.118 ])) [2 MEM[base: _50, offset: 0B]+0 S4 A8])) C:\Program Files (x86)\Arduino\libraries\DTMF\DTMF.cpp:175 99 {*movsf}
     (expr_list:REG_INC (reg:HI 63 [ ivtmp.118 ])
        (nil)))
C:\Program Files (x86)\Arduino\libraries\DTMF\DTMF.cpp:179: confused by earlier errors, bailing out
Error compiling.





I am very new to all this, so any help would be great. Thanks!

Go Up