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

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

QQ登錄

只需一步,快速開始

搜索

【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(146)---MT8870語(yǔ)音解碼

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

正文摘要:

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

回復(fù)

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

  3.   第四項(xiàng)實(shí)驗(yàn):不用庫(kù),使用MT8870芯片模塊進(jìn)行DTMF解碼
  4.   1、需要材料:喇叭1個(gè),68Ω電阻兩個(gè),咪頭傳感器和DTMF解碼模塊,兩塊UNO板
  5.   2、合成信號(hào)硬件連接:在D11,D12引腳各接一個(gè)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); //從解碼器芯片輸入二進(jìn)制1的數(shù)字
  24. pinMode(11, INPUT); //從解碼器芯片輸入二進(jìn)制2的數(shù)字
  25. pinMode(10, INPUT); //從解碼器芯片輸入二進(jìn)制4的數(shù)字
  26. pinMode(9, INPUT); //從解碼器芯片輸入二進(jìn)制4的數(shù)字
  27. }

  28. void loop()

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

  39. if (digitalRead(7) == HIGH)  //如果二進(jìn)制2為高
  40. {
  41. keyvalue = keyvalue + 2;  //在鍵值中添加“ 2”
  42. }
  43. if (digitalRead(8) == HIGH)  //如果二進(jìn)制4為高
  44. {
  45. keyvalue = keyvalue + 4;  //將“ 4”添加到鍵值
  46. }
  47. if (digitalRead(9) == HIGH)  //如果二進(jìn)制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("*"); //打印星號(hào)鍵
  61. }

  62. else
  63. {
  64. if (keyvalue == 12)
  65. {
  66. Serial.println("#"); //打印井號(hào)
  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解碼識(shí)別模塊實(shí)驗(yàn)視頻
https://v.youku.com/v_show/id_XNDU3OTkzOTA4OA==.html

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


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

  第三項(xiàng)實(shí)驗(yàn):用合成DTMF雙音多頻信號(hào)測(cè)試咪頭傳感器和DTMF解碼模塊
  1、安裝 "dtmf"庫(kù): 下載https://codeload.github.com/DFRobot/DTMF/zip/master
  2、需要材料:喇叭1個(gè),68Ω電阻兩個(gè),咪頭傳感器和DTMF解碼模塊,兩塊UNO板
  3、合成信號(hào)硬件連接:在D11,D12引腳各接一個(gè)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種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
  3.   實(shí)驗(yàn)一百四十五:MT8870 DTMF語(yǔ)音解碼板模塊 電話撥號(hào)控制音頻解碼處理電路

  4.   第三項(xiàng)實(shí)驗(yàn):用合成DTMF雙音多頻信號(hào)測(cè)試咪頭傳感器和DTMF解碼模塊
  5.   1、安裝 "dtmf"庫(kù): 下載https://codeload.github.com/DFRobot/DTMF/zip/master
  6.   2、需要材料:喇叭1個(gè),68Ω電阻兩個(gè),咪頭傳感器和DTMF解碼模塊,兩塊UNO板
  7.   3、合成信號(hào)硬件連接:在D11,D12引腳各接一個(gè)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種傳感器模塊系列實(shí)驗(yàn)(資料+代碼+圖形+仿真)
  3.   實(shí)驗(yàn)一百四十五:MT8870 DTMF語(yǔ)音解碼板模塊 電話撥號(hào)控制音頻解碼處理電路

  4.   第二項(xiàng)實(shí)驗(yàn):重復(fù)播放合成DTMF雙音多頻8675309撥號(hào)音
  5.   1、安裝 "Tone.h"庫(kù): IDE-工具-管理庫(kù)-搜索-安裝
  6.   2、項(xiàng)目測(cè)試 :發(fā)送電話號(hào)碼8675309到串口
  7.   3、需要材料:喇叭1個(gè),68Ω電阻兩個(gè)
  8.   4、硬件連接:在D11,D12引腳各接一個(gè)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
視頻——第一項(xiàng)實(shí)驗(yàn):用arduino的PWM腳(11、12)合成DTMF雙音多頻編碼信號(hào)

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

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

  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音頻,電話號(hào)碼來(lái)自Phone_Number,持續(xù)長(zhǎng)度200ms,間隔長(zhǎng)度300ms
  37.   PlayDTMF(Phone_Number, 200, 300);

  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(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個(gè)頻率。一個(gè)高頻信號(hào)和一個(gè)低頻信號(hào)疊加組成一個(gè)組合信號(hào),代表一個(gè)數(shù)字。DTMF信號(hào)有16個(gè)編碼。利用DTMF信令可選擇呼叫相應(yīng)的對(duì)講機(jī)。

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

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

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

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