“蜂鸣器”的版本间的差异

来自Labplus盛思维基百科
跳转至: 导航搜索
Arduino示例
第22行: 第22行:
  
 
== 使用教程 ==
 
== 使用教程 ==
=== 连接示意图 ===
 
 
=== Arduino示例 ===
 
=== Arduino示例 ===
 
<pre style="color:blue">
 
<pre style="color:blue">
//程序功能:播放3个音符//
+
//各音符对应频率
int tonePin=2;
+
#define NOTE_B0  31
 +
#define NOTE_C1  33
 +
#define NOTE_CS1 35
 +
#define NOTE_D1  37
 +
#define NOTE_DS1 39
 +
#define NOTE_E1  41
 +
#define NOTE_F1  44
 +
#define NOTE_FS1 46
 +
#define NOTE_G1  49
 +
#define NOTE_GS1 52
 +
#define NOTE_A1  55
 +
#define NOTE_AS1 58
 +
#define NOTE_B1  62
 +
#define NOTE_C2  65
 +
#define NOTE_CS2 69
 +
#define NOTE_D2  73
 +
#define NOTE_DS2 78
 +
#define NOTE_E2  82
 +
#define NOTE_F2  87
 +
#define NOTE_FS2 93
 +
#define NOTE_G2  98
 +
#define NOTE_GS2 104
 +
#define NOTE_A2  110
 +
#define NOTE_AS2 117
 +
#define NOTE_B2  123
 +
#define NOTE_C3  131
 +
#define NOTE_CS3 139
 +
#define NOTE_D3  147
 +
#define NOTE_DS3 156
 +
#define NOTE_E3  165
 +
#define NOTE_F3  175
 +
#define NOTE_FS3 185
 +
#define NOTE_G3  196
 +
#define NOTE_GS3 208
 +
#define NOTE_A3  220
 +
#define NOTE_AS3 233
 +
#define NOTE_B3  247
 +
#define NOTE_C4  262
 +
#define NOTE_CS4 277
 +
#define NOTE_D4  294
 +
#define NOTE_DS4 311
 +
#define NOTE_E4  330
 +
#define NOTE_F4  349
 +
#define NOTE_FS4 370
 +
#define NOTE_G4  392
 +
#define NOTE_GS4 415
 +
#define NOTE_A4  440
 +
#define NOTE_AS4 466
 +
#define NOTE_B4  494
 +
#define NOTE_C5  523
 +
#define NOTE_CS5 554
 +
#define NOTE_D5  587
 +
#define NOTE_DS5 622
 +
#define NOTE_E5  659
 +
#define NOTE_F5  698
 +
#define NOTE_FS5 740
 +
#define NOTE_G5  784
 +
#define NOTE_GS5 831
 +
#define NOTE_A5  880
 +
#define NOTE_AS5 932
 +
#define NOTE_B5  988
 +
#define NOTE_C6  1047
 +
#define NOTE_CS6 1109
 +
#define NOTE_D6  1175
 +
#define NOTE_DS6 1245
 +
#define NOTE_E6  1319
 +
#define NOTE_F6  1397
 +
#define NOTE_FS6 1480
 +
#define NOTE_G6  1568
 +
#define NOTE_GS6 1661
 +
#define NOTE_A6  1760
 +
#define NOTE_AS6 1865
 +
#define NOTE_B6  1976
 +
#define NOTE_C7  2093
 +
#define NOTE_CS7 2217
 +
#define NOTE_D7  2349
 +
#define NOTE_DS7 2489
 +
#define NOTE_E7  2637
 +
#define NOTE_F7  2794
 +
#define NOTE_FS7 2960
 +
#define NOTE_G7  3136
 +
#define NOTE_GS7 3322
 +
#define NOTE_A7  3520
 +
#define NOTE_AS7 3729
 +
#define NOTE_B7  3951
 +
#define NOTE_C8  4186
 +
#define NOTE_CS8 4435
 +
#define NOTE_D8  4699
 +
#define NOTE_DS8 4978
 +
 +
//超级马里奥歌谱
 +
int melody[] = {
 +
NOTE_E4, NOTE_E4, NOTE_E4, NOTE_C4, NOTE_E4, NOTE_G4, NOTE_G3,
 +
NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3,
 +
NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3,
 +
NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_C5, NOTE_C5, NOTE_C5,
 +
NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_DS4, NOTE_D4, NOTE_C4,
 +
NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4,
 +
NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3
 +
};
 +
//歌谱节拍
 +
int noteDurations[] = {
 +
8,4,4,8,4,2,2,
 +
3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,3,
 +
3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,2,
 +
8,8,8,4,4,8,8,4,8,8,3,8,8,8,4,4,4,8,2,
 +
8,8,8,4,4,8,8,4,8,8,3,3,3,1,
 +
8,4,4,8,4,8,4,8,2,8,4,4,8,4,1,
 +
8,4,4,8,4,8,4,8,2
 +
};
 +
#define musicPin 2    //定义蜂鸣器引脚
 +
 
 
void setup() {
 
void setup() {
 
 
}
 
}
 
   
 
   
void loop() {        
+
void loop() {
   tone(2, 440, 300);
+
   delay(2000);
   delay(300);
+
   for (int thisNote = 0; thisNote < 98; thisNote++) {
   noTone(2);
+
   int noteDuration = 800/noteDurations[thisNote];   //一个节拍时间800ms
   tone(2, 494, 300);
+
   tone(musicPin, melody[thisNote],noteDuration);   //播放各音符、持续持续时间
   delay(300);
+
   int pauseBetweenNotes = noteDuration * 1.30;     //每个音符间隔等待时间
   noTone(2);
+
   delay(pauseBetweenNotes);
   tone(2, 523, 300);
+
   noTone(musicPin);
   delay(300);
+
   }
  noTone(2);
 
 
}
 
}
  
第57行: 第165行:
 
      
 
      
 
</pre>
 
</pre>
 
=== 图形化示例 ===
 

2018年1月8日 (一) 17:11的版本

黑色传感器最终版12.20-03.png

概述

采用无源蜂鸣器,可通过Arduino或者其他控制器就能轻松的控制蜂鸣器发出声音甚至MIDI音乐


技术参数

  • 工作电压:VCC 3.3-5V
  • 输出音量:0~5V
  • 模块尺寸:24x46x7.5mm

引脚定义

VCC 电源
NC 空脚
DI 数字输入
GND

使用教程

Arduino示例

//各音符对应频率
#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978
 
//超级马里奥歌谱
int melody[] = {
NOTE_E4, NOTE_E4, NOTE_E4, NOTE_C4, NOTE_E4, NOTE_G4, NOTE_G3,
NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3,
NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3,
NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_C5, NOTE_C5, NOTE_C5,
NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_DS4, NOTE_D4, NOTE_C4,
NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4,
NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3
};
//歌谱节拍
int noteDurations[] = {
8,4,4,8,4,2,2,
3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,3,
3,3,3,4,4,8,4,8,8,8,4,8,4,3,8,8,2,
8,8,8,4,4,8,8,4,8,8,3,8,8,8,4,4,4,8,2,
8,8,8,4,4,8,8,4,8,8,3,3,3,1,
8,4,4,8,4,8,4,8,2,8,4,4,8,4,1,
8,4,4,8,4,8,4,8,2
};
#define musicPin 2     //定义蜂鸣器引脚

void setup() {
}
 
void loop() {
  delay(2000);
  for (int thisNote = 0; thisNote < 98; thisNote++) { 
  int noteDuration = 800/noteDurations[thisNote];   //一个节拍时间800ms
  tone(musicPin, melody[thisNote],noteDuration);    //播放各音符、持续持续时间
  int pauseBetweenNotes = noteDuration * 1.30;      //每个音符间隔等待时间
  delay(pauseBetweenNotes);
  noTone(musicPin);
  }
}

MicroPython示例

from microbit import *
import music   #加载music库
#音阶数组
tune = ["C3:4","D3:4", "E3:4", "F3:4", "G3:4","A3:4","B3:4" ,"C4:4","D4:4", "E4:4", "F4:4", "G4:4","A4:4","B4:4"  ]     
display.off()

while True:
    music.play(tune)     #播放tune音阶数组