PWM - 通过蜂鸣器播放音乐
材料准备
AmebaD [AMB21 / AMB22 / AMB23 / BW16] x 1
蜂鸣器 x 1
范例说明
声音的组成包括音量、音调与音色。音量为声波的振幅,音调为声波的频率,音色则是由声波的波形决定。
这个范例里我们使用PWM控制蜂鸣器发出想要的音调。 PWM输出的是方波,当我们想要发出中央C(C4)的声音时,C4的频率是262Hz,每个波的长度是 1/262 = 3.8ms,所以波形如下:
所以我们只要让PWM送出不同的频率,就可以让蜂鸣器发出音乐
接着我们将蜂鸣器接上要发出讯号的PWM pin脚:
AMB21 / AMB22 的接线图如下:
AMB23 的接线图如下:
BW16 的接线图如下:
BW16-TypeC Wiring Diagram:
Open the example code in “Examples” → “AmebaAnalog” → “TonePlayMelody”
Compile and upload to Ameba, press the reset button. Then you can hear
the buzzer playing music.
程式码说明
Ameba implement the tone() and noTone() API of Arduino: https://www.arduino.cc/en/Reference/Tone https://www.arduino.cc/en/Reference/NoTone
程式码里我们宣告melody的阵列, 里面摆要发出的音调, 另外宣告noteDurations的阵列, 里面放每个音调的长度, 4代表4分音符, 8代表8分音符,4分音符的长度是3000ms/ 4 = 750ms, 另外加上30%的停顿时间。