久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 9039|回復(fù): 2
收起左側(cè)

Arduino DIY—Arduino自制DTMF撥號(hào)器

[復(fù)制鏈接]
ID:101489 發(fā)表于 2016-1-3 18:05 | 顯示全部樓層 |閱讀模式
怎么撥打電話?也許這個(gè)問(wèn)題很簡(jiǎn)單:拿起話筒,按話機(jī)的數(shù)字鍵盤撥號(hào)碼。
但是,有沒(méi)想過(guò),我們可以拿起電話,不需要碰話機(jī)鍵盤就能撥通電話?答案是肯定的。
下面就介紹如何用Arduino生成雙音多頻信號(hào)。
用法介紹:
使用時(shí)候,我們拿起電話話筒,將喇叭貼近話筒麥克風(fēng)位置。在串口發(fā)送需要撥號(hào)的電話號(hào)碼(比如10000),稍等片刻即可撥通。
擴(kuò)展用法:
驅(qū)動(dòng)開關(guān)模擬電話摘機(jī)事件,用此電路撥號(hào),再由Arduino按照事件控制語(yǔ)音模塊(WT588D等)發(fā)出不同的語(yǔ)音到電話線。即可完成一個(gè)整體的自動(dòng)撥號(hào)機(jī),可以制作報(bào)警器,或者電話提醒器。
材料清單:
Arduino一塊,
喇叭1個(gè),
100Ω電阻1個(gè)(可以選擇100Ω~1kΩ),
1uF電容兩個(gè)(可以選擇0.1uF~10uF)。
硬件連接:

程序代碼:
1.下載Tone庫(kù),并且解壓到arduino-0022\libraries文件夾
此Tone庫(kù)相比自帶的tone函數(shù)特點(diǎn)是,可以同時(shí)在多個(gè)輸出腳輸出不同頻率的波形,但是自帶tone函數(shù)在一段時(shí)間內(nèi)只能在一個(gè)引腳輸出。
2.寫入下面代碼到Arduino:
  1. /*

  2. 使用Arduino生成雙音多頻

  3. Ansifa            2011/11/27



  4. * 軟件:需要Tone庫(kù),

  5. * 材料:喇叭1個(gè),100Ω電阻1個(gè),1uF電容兩個(gè)

  6. * 硬件連接:在D11,D12引腳各接一個(gè)1uF電容,之后合并到100Ω電阻一端,

  7.   100Ω電阻另一端接喇叭,然后喇叭另一端接地。



  8. 用法,將喇叭貼近電話機(jī)話筒,然后發(fā)送要撥的電話號(hào)碼到串口,比如10000,即可撥通電話10000

  9. */



  10. #include     <Tone.h>



  11. String     Phone_Number = "";

  12. int i = 0,     mark = 0;



  13. //定義freq1,freq2為Tone實(shí)例,并且定義雙音多頻的頻率

  14. //DTMF頻率定義參見

  15. Tone freq1;

  16. Tone freq2;

  17. const int     DTMF_freq1[] = {1336, 1209, 1336, 1477, 1209, 1336, 1477, 1209, 1336,     1477};

  18. const int     DTMF_freq2[] =     {941,  697,  697,  697,  770,  770,  770,  852,  852,  852};



  19. void setup()

  20. {

  21.         Serial.begin(9600);

  22.         //定義聲音產(chǎn)生引腳在Arduino的D11,D12

  23.         freq1.begin(11);

  24.         freq2.begin(12);

  25. }



  26. void loop()

  27. {

  28.         //讀出串口數(shù)據(jù),串接成Phone_Number字符串

  29.         while (Serial.available() > 0)

  30.         {

  31.             Phone_Number += char(Serial.read());

  32.             delay(2);

  33.             mark = 1;

  34.         }

  35.         //播放DTMF音頻,電話號(hào)碼來(lái)自Phone_Number,持續(xù)長(zhǎng)度200ms,間隔長(zhǎng)度300ms

  36.         PlayDTMF(Phone_Number, 200, 300);

  37.            

  38.             //如果剛才接收到串口的電話號(hào)碼,因?yàn)樘?hào)碼已經(jīng)在喇叭輸出了,清空電話號(hào)碼并且重置mark

  39.         if(mark == 1)

  40.         {

  41.             Phone_Number = "";

  42.             Serial.println();

  43.             mark = 0;

  44.         }

  45. }



  46. /*

  47. DTMF播放函數(shù)

  48. 調(diào)用格式:playDTMF(數(shù)字(0~9), 持續(xù)時(shí)間)。

  49. */

  50. void     PlayDTMF(String Number, long duration, long pause)

  51. {

  52.             //如果輸入數(shù)字為空,或者持續(xù)時(shí)間不為正數(shù),或者暫停時(shí)間不為正數(shù)

  53.             //則視作錯(cuò)誤,立即停止執(zhí)行返回主程序。

  54.         if(Number.length() == 0 || duration <= 0 || pause <= 0) return;

  55.         //將Number逐個(gè)文字分離,

  56.         for(i = 0; i < Number.length(); i++)

  57.         {

  58.             //如果Number屬于0~9的數(shù)字字符,

  59.             if(Number[i] >= '0' && Number[i]     <= '9')

  60.             {

  61.                 //則將它ASCII碼減去‘0’,得到純數(shù)字,

  62.                 Number[i] -= '0';

  63.                 //然后在串口輸出一份,便于查看

  64.                 Serial.print(Number[i], DEC);

  65.                 //輸出雙音多頻之一

  66.                     freq1.play(DTMF_freq1[Number[i]], duration);

  67.                 //輸出雙音多頻之二

  68.                     freq2.play(DTMF_freq2[Number[i]], duration);

  69.                 delay(pause);

  70.             }

  71.         }





  72. }
復(fù)制代碼




實(shí)物效果:
1.電路連接

2.喇叭靠近電話撥號(hào)

3.串口端發(fā)電話號(hào)碼

4.等待喇叭響完撥號(hào)音之后,即可聽到10000號(hào)的應(yīng)答


回復(fù)

使用道具 舉報(bào)

ID:820444 發(fā)表于 2021-4-8 09:50 | 顯示全部樓層
這個(gè)真好,有人試驗(yàn)過(guò)嗎?
有沒(méi)有人有興趣,用這個(gè)原理,用ESP8266Wifi模塊,實(shí)現(xiàn)一下?
回復(fù)

使用道具 舉報(bào)

ID:437327 發(fā)表于 2023-4-12 11:36 | 顯示全部樓層
wangshunda 發(fā)表于 2021-4-8 09:50
這個(gè)真好,有人試驗(yàn)過(guò)嗎?
有沒(méi)有人有興趣,用這個(gè)原理,用ESP8266Wifi模塊,實(shí)現(xiàn)一下?

試過(guò),不行
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区久久久 | 福利视频1000 | 一区二区av | 亚洲欧洲视频 | 成人在线网址 | 国产精品日本一区二区不卡视频 | 欧美不卡一区 | 国产精品久久久久久影院8一贰佰 | 亚洲视频一区 | 国产不卡在线播放 | 久久久久久免费免费 | 岛国视频 | 99在线免费观看视频 | 久久99精品久久久水蜜桃 | 伊人伊人 | 亚洲一区二区在线播放 | 国产亚洲一区二区三区 | 国产精品国产三级国产aⅴ中文 | 国产激情视频在线观看 | 成人国产精品久久久 | 国产免费播放视频 | 久久中文字幕一区 | 美国av毛片 | 国产露脸对白88av | 日韩视频一区在线观看 | 精品影院 | 欧美精三区欧美精三区 | 亚洲欧美一区二区三区国产精品 | 日韩超碰在线 | 成人久久| 精品久久久久久18免费网站 | 一区二区三区精品在线 | 精品欧美一区二区在线观看欧美熟 | 日韩三级一区 | 在线观看国产精品视频 | 日韩精品免费在线观看 | 国产欧美一区二区三区久久手机版 | 综合精品久久久 | 日韩成人一区 | www精品美女久久久tv | 久久久精品视频免费看 |