以下為Arduino Uno板的StartBuzzer實驗
需要材料:
Wire: n個
Buzzer: 一個
Arduino Uno: 一個
Breadboard: 一個
電路圖(Circuit diagram)
程式碼(Code)
#include "pitches.h" //這就是最重要的重點 int melody[] { NOTE_C5,NOTE_D5,NOTE_B0 }; //吵死了 int duration = 500; void setup() { // put your setup code here, to run once: } void loop() { for (int thisNote = 0; thisNote < 3; thisNote++) { tone(11,melody[thisNote],duration); //是的 uno 板子只有 3,5,6,9,10,11 才有 PWM //不過 tone() 內部是用 timer 控制的,所以不限定任何 pin //analogWrite() 的頻率是固定的(500Hz),沒辦法輸出不同音階的聲音 delay(500); } delay(2000); }
注意
在本程式的資料夾內建立pitches.h,如下圖
pitches.h的內容
/******* * Public Constants *******/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
參考網站:
Lab6 Buzzer:
http://coopermaa2nd.blogspot.tw/2010/12/arduino-lab6.html
參考對象: