相關(guān)推薦
您可能對下面課程感興趣
Arduino視頻教程基礎(chǔ)篇

75小節(jié)已有138544人學過

蜂鳴器發(fā)聲
發(fā)布時間:2022-03-11 10:37 [ 我要自學網(wǎng)原創(chuàng) ] 發(fā)布人: 小劉2175 閱讀: 1240
這里使用的是無源蜂鳴器。
直接上程序:arduino控制蜂鳴器播放《小星星》
  1. int speakerPin = 9;

  2. int length = 15; // the number of notes
  3. char notes[] = "ccggaagffeeddc "; // a space represents a rest
  4. int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
  5. int tempo = 300;

  6. void playTone(int tone, int duration) {
  7.   for (long i = 0; i < duration * 1000L; i += tone * 2) {
  8.     digitalWrite(speakerPin, HIGH);
  9.     delayMicroseconds(tone);
  10.     digitalWrite(speakerPin, LOW);
  11.     delayMicroseconds(tone);
  12.   }
  13. }

  14. void playNote(char note, int duration) {
  15.   char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
  16.   int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };

  17.   // play the tone corresponding to the note name
  18.   for (int i = 0; i < 8; i++) {
  19.     if (names[i] == note) {
  20.       playTone(tones[i], duration);
  21.     }
  22.   }
  23. }

  24. void setup() {
  25.   pinMode(speakerPin, OUTPUT);
  26. }

  27. void loop() {
  28.   for (int i = 0; i < length; i++) {
  29.     if (notes[i] == ' ') {
  30.       delay(beats[i] * tempo); // rest
  31.     } else {
  32.       playNote(notes[i], beats[i] * tempo);
  33.     }

  34.     // pause between notes
  35.     delay(tempo / 2);  
  36.   }
  37. }
復制代碼
將蜂鳴器輸入接在arduino9號數(shù)字IO上,輸出接地,便可聽到小星星播放曲了。
再獻上一例程:通過模擬電位器模塊控制蜂鳴器發(fā)聲頻率
Arduino視頻教程基礎(chǔ)篇
我要自學網(wǎng)商城 ¥40 元
進入購買
文章評論
0 條評論 按熱度排序 按時間排序 /350
添加表情
遵守中華人民共和國的各項道德法規(guī),
承擔因您的行為而導致的法律責任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。
V
特惠充值
聯(lián)系客服
APP下載
官方微信
返回頂部
相關(guān)推薦
您可能對下面課程感興趣
Arduino視頻教程基礎(chǔ)篇

75小節(jié)已有138544人學過

分類選擇:
電腦辦公 平面設(shè)計 室內(nèi)設(shè)計 室外設(shè)計 機械設(shè)計 工業(yè)自動化 影視動畫 程序開發(fā) 網(wǎng)頁設(shè)計 會計課程 興趣成長 AIGC