欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

【Arduino】168種傳感器模塊系列實驗(146)---MT8870語音解碼

查看數(shù): 7429 | 評論數(shù): 25 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2020-3-3 12:19

正文摘要:

本帖最后由 eagler8 于 2020-3-3 17:08 編輯 37款傳感器與模塊的提法,在網(wǎng)絡(luò)上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實踐出真知(一定要 ...

回復(fù)

ID:513258 發(fā)表于 2020-3-9 15:58
  1. 【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  2.   實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路

  3.   第四項實驗:不用庫,使用MT8870芯片模塊進行DTMF解碼
  4.   1、需要材料:喇叭1個,68Ω電阻兩個,咪頭傳感器和DTMF解碼模塊,兩塊UNO板
  5.   2、合成信號硬件連接:在D11,D12引腳各接一個68Ω電阻一端,68Ω電阻另一端接喇叭,然后喇叭另一端接地。
  6.   3、咪頭模塊接線:
  7.   MAX9814  Arduino
  8.   VCC        5V
  9.   GND        GND
  10.   OUT        IN(接到DTMF)
  11.   4、DTMF解碼模塊接線
  12.   DTMF     Arduino
  13.   VCC        5V
  14.   GND        GND
  15.   Q1         12
  16.   Q2         11
  17.   Q3         10
  18.   Q4         9

  19. int keyvalue;  // 與音調(diào)相關(guān)的數(shù)字

  20. void setup()
  21. {
  22. Serial.begin(9600);
  23. pinMode(12, INPUT); //從解碼器芯片輸入二進制1的數(shù)字
  24. pinMode(11, INPUT); //從解碼器芯片輸入二進制2的數(shù)字
  25. pinMode(10, INPUT); //從解碼器芯片輸入二進制4的數(shù)字
  26. pinMode(9, INPUT); //從解碼器芯片輸入二進制4的數(shù)字
  27. }

  28. void loop()

  29. // 首先確定鍵的以10為底的值 0-11
  30. {
  31. if (digitalRead(6) == HIGH) //如果二進制1為高
  32. {
  33. keyvalue = 1;  //使鍵值等于1
  34. }
  35. else
  36. {
  37. keyvalue = 0;  //否則將其設(shè)為零
  38. }

  39. if (digitalRead(7) == HIGH)  //如果二進制2為高
  40. {
  41. keyvalue = keyvalue + 2;  //在鍵值中添加“ 2”
  42. }
  43. if (digitalRead(8) == HIGH)  //如果二進制4為高
  44. {
  45. keyvalue = keyvalue + 4;  //將“ 4”添加到鍵值
  46. }
  47. if (digitalRead(9) == HIGH)  //如果二進制8為高
  48. {
  49. keyvalue = keyvalue + 8;  //將“ 8”添加到鍵值
  50. }
  51. // 現(xiàn)在將鍵值9、10和11轉(zhuǎn)換為“ 0”,“ *”和“!
  52. if (keyvalue == 10)
  53. {
  54. Serial.println("0"); //打印零鍵
  55. }
  56. else
  57. {
  58. if (keyvalue == 11)
  59. {
  60. Serial.println("*"); //打印星號鍵
  61. }

  62. else
  63. {
  64. if (keyvalue == 12)
  65. {
  66. Serial.println("#"); //打印井號
  67. }

  68. else
  69. {
  70. Serial.println(keyvalue); //它不是特殊鍵,所以只需打印
  71. }
  72. }
  73. }
  74. delay(500);
  75. }
復(fù)制代碼


ID:513258 發(fā)表于 2020-3-9 15:03
DTMF解碼識別模塊實驗視頻
https://v.youku.com/v_show/id_XNDU3OTkzOTA4OA==.html

https://v.youku.com/v_show/id_XNDU3OTkzOTA4OA==.html


【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路

  第三項實驗:用合成DTMF雙音多頻信號測試咪頭傳感器和DTMF解碼模塊
  1、安裝 "dtmf"庫: 下載https://codeload.github.com/DFRobot/DTMF/zip/master
  2、需要材料:喇叭1個,68Ω電阻兩個,咪頭傳感器和DTMF解碼模塊,兩塊UNO板
  3、合成信號硬件連接:在D11,D12引腳各接一個68Ω電阻一端,68Ω電阻另一端接喇叭,然后喇叭另一端接地。
  4、咪頭模塊接線:
  MAX9814  Arduino
  VCC        5V
  GND        GND
  OUT        IN(接到DTMF)
  5、DTMF解碼模塊接線
  DTMF     Arduino
  VCC        5V
  GND        GND
  Q1         12
  Q2         11
  Q3         10
  Q4         9

ID:513258 發(fā)表于 2020-3-9 13:51
  1. /*
  2.   【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  3.   實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路

  4.   第三項實驗:用合成DTMF雙音多頻信號測試咪頭傳感器和DTMF解碼模塊
  5.   1、安裝 "dtmf"庫: 下載https://codeload.github.com/DFRobot/DTMF/zip/master
  6.   2、需要材料:喇叭1個,68Ω電阻兩個,咪頭傳感器和DTMF解碼模塊,兩塊UNO板
  7.   3、合成信號硬件連接:在D11,D12引腳各接一個68Ω電阻一端,68Ω電阻另一端接喇叭,然后喇叭另一端接地。
  8.   4、咪頭模塊接線:
  9.   MAX9814  Arduino
  10.   VCC        5V
  11.   GND        GND
  12.   OUT        IN(接到DTMF)
  13.   5、DTMF解碼模塊接線
  14.   DTMF     Arduino
  15.   VCC        5V
  16.   GND        GND
  17.   Q1         12
  18.   Q2         11
  19.   Q3         10
  20.   Q4         9
  21. */

  22. #include "dtmf.h"

  23. DTMF dtmf;

  24. void setup()
  25. {
  26.   Serial.begin(9600);
  27. }

  28. void loop()
  29. {
  30.   // 讀DTMF代碼并且用串行輸出
  31.   int myDtmf;
  32.   myDtmf = dtmf.getDTMF();
  33.   if (myDtmf != -1)
  34.     Serial.println(myDtmf);
  35.   delay(100); // 以避免收到重復(fù)的輸出。
  36. }
復(fù)制代碼


ID:513258 發(fā)表于 2020-3-4 20:37
  1. /*
  2.   【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  3.   實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路

  4.   第二項實驗:重復(fù)播放合成DTMF雙音多頻8675309撥號音
  5.   1、安裝 "Tone.h"庫: IDE-工具-管理庫-搜索-安裝
  6.   2、項目測試 :發(fā)送電話號碼8675309到串口
  7.   3、需要材料:喇叭1個,68Ω電阻兩個
  8.   4、硬件連接:在D11,D12引腳各接一個68Ω電阻一端,
  9.      68Ω電阻另一端接喇叭,然后喇叭另一端接地。
  10. */

  11. #include <Tone.h>

  12. Tone freq1;
  13. Tone freq2;

  14. const int DTMF_freq1[] = { 1336, 1209, 1336, 1477, 1209, 1336, 1477, 1209, 1336, 1477 };
  15. const int DTMF_freq2[] = {  941,  697,  697,  697,  770,  770,  770,  852,  852,  852 };

  16. void setup()
  17. {
  18.   Serial.begin(9600);
  19.   freq1.begin(11);
  20.   freq2.begin(12);
  21. }

  22. void playDTMF(uint8_t number, long duration)
  23. {
  24.   freq1.play(DTMF_freq1[number], duration);
  25.   freq2.play(DTMF_freq2[number], duration);
  26. }


  27. void loop()
  28. {
  29.   int i;
  30.   uint8_t phone_number[] = { 8, 6, 7, 5, 3, 0 , 9 };

  31.   for (i = 0; i < sizeof(phone_number); i ++)
  32.   {
  33.     Serial.print(phone_number[i], 10);
  34.     Serial.print(' ');
  35.     playDTMF(phone_number[i], 500);
  36.     delay(600);
  37.   }

  38.   Serial.println();
  39.   delay(4000);
  40. }
復(fù)制代碼


ID:513258 發(fā)表于 2020-3-4 16:45
視頻——第一項實驗:用arduino的PWM腳(11、12)合成DTMF雙音多頻編碼信號

https://v.youku.com/v_show/id_XNDU3MzExODkzMg==.html

https://v.youku.com/v_show/id_XNDU3MzExODkzMg==.html




ID:513258 發(fā)表于 2020-3-4 13:02
  1. /*
  2.   【Arduino】168種傳感器模塊系列實驗(資料+代碼+圖形+仿真)
  3.   實驗一百四十五:MT8870 DTMF語音解碼板模塊 電話撥號控制音頻解碼處理電路
  4.   
  5.   第一項實驗:用arduino的PWM腳(11、12)合成DTMF雙音多頻編碼信號
  6.   1、安裝 "Tone.h"庫: IDE-工具-管理庫-搜索-安裝
  7.   2、項目測試 :將喇叭貼近電話機話筒,然后發(fā)送要撥的電話號碼到串口,比如10000,即可撥通電話10000
  8.   3、需要材料:喇叭1個,68Ω電阻兩個
  9.   4、硬件連接:在D11,D12引腳各接一個68Ω電阻一端,
  10.      68Ω電阻另一端接喇叭,然后喇叭另一端接地。
  11. */

  12. #include <Tone.h>
  13. String Phone_Number = "";
  14. int i = 0, mark = 0;
  15. //定義freq1,freq2為Tone實例,并且定義雙音多頻的頻率

  16. Tone freq1;
  17. Tone freq2;
  18. const int DTMF_freq1[] = {1336, 1209, 1336, 1477, 1209, 1336, 1477, 1209, 1336, 1477};
  19. const int DTMF_freq2[] = {941,  697,  697,  697,  770,  770,  770,  852,  852,  852};

  20. void setup()
  21. {
  22.   Serial.begin(9600);
  23.   //定義聲音產(chǎn)生引腳在Arduino的D11,D12
  24.   freq1.begin(11);
  25.   freq2.begin(12);
  26. }

  27. void loop()
  28. {
  29.   //讀出串口數(shù)據(jù),串接成Phone_Number字符串
  30.   while (Serial.available() > 0)
  31.   {
  32.     Phone_Number += char(Serial.read());
  33.     delay(2);
  34.     mark = 1;
  35.   }
  36.   //播放DTMF音頻,電話號碼來自Phone_Number,持續(xù)長度200ms,間隔長度300ms
  37.   PlayDTMF(Phone_Number, 200, 300);

  38.   //如果剛才接收到串口的電話號碼,因為號碼已經(jīng)在喇叭輸出了,清空電話號碼并且重置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ù)時間)。
  49. */
  50. void PlayDTMF(String Number, long duration, long pause)
  51. {
  52.   //如果輸入數(shù)字為空,或者持續(xù)時間不為正數(shù),或者暫停時間不為正數(shù)
  53.   //則視作錯誤,立即停止執(zhí)行返回主程序。
  54.   if (Number.length() == 0 || duration <= 0 || pause <= 0) return;
  55.   //將Number逐個文字分離,
  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(i, DEC);
  65.       //輸出雙音多頻之一
  66.       freq1.play(DTMF_freq1[i], duration);
  67.       //輸出雙音多頻之二
  68.       freq2.play(DTMF_freq2[i], duration);
  69.       delay(pause);
  70.     }
  71.   }
  72. }
復(fù)制代碼


ID:513258 發(fā)表于 2020-3-3 13:07
DTMF
雙音多頻 DTMF(Dual Tone Multi Frequency),雙音多頻,由高頻群和低頻群組成,高低頻群各包含4個頻率。一個高頻信號和一個低頻信號疊加組成一個組合信號,代表一個數(shù)字。DTMF信號有16個編碼。利用DTMF信令可選擇呼叫相應(yīng)的對講機。

在編碼時將擊鍵或數(shù)字信息轉(zhuǎn)換成雙音信號并發(fā)送,解碼時在收到的DTMF信號中檢測擊鍵或數(shù)字信息的存在性。一個DTMF信號由兩個頻率的音頻信號疊加構(gòu)成。這兩個音頻信號的頻率來自兩組預(yù)分配的頻率組:行頻組或列頻組。每一對這樣的音頻信號唯一表示一個數(shù)字或符號。電話機中通常有16個按鍵,其中有10個數(shù)字鍵0~9和6個功能鍵*、#、A、B、C、D。由于按照組合原理,一般應(yīng)有8種不同的單音頻信號。因此可采用的頻率也有8種,故稱之為多頻,又因它采用分別從高低頻中任意抽出1種進行組合來進行編碼,所以又稱之為“8中取2”的編碼技術(shù)。根據(jù)CCITT的建議,國際上采用的多種頻率為697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和1633Hz等8種。用這8種頻率可形成16種不同的組合,從而代表16種不同的數(shù)字或功能鍵。

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

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

快速回復(fù) 返回頂部 返回列表