该模块为单声道、18W,板载可调电阻用于调节音量。
这里的左边输入有电源VCC、GND和信号输入IN、GND;输出为OUT和GND。IN可以接PWM信号输入,输出OUT可接喇叭等音频输出设备。
这里的程序和前面功放喇叭的代码一样,只是在硬件上音频先通过功放模块在输出给喇叭。
/**
* 文件: 扬声器喇叭.ino by 零知实验室([url]www.lingzhilab.com[/url])
* -^^- 零知开源,让电子制作变得更简单! -^^-
* 时间: 2018/10/18 14:33
* 说明:
**/
#include "pitches.h"
#define melodyPin 9
// "HE IS A PIRATE" 加勒比海盗配音
//int melody[] = {
//NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4,
//NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4,
//NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4,
//NOTE_A3, NOTE_C4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_F4,
//NOTE_F4, NOTE_G4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_C4, NOTE_C4, NOTE_D4,
//0, NOTE_A3, NOTE_C4, NOTE_B3, NOTE_D4, NOTE_B3, NOTE_E4, NOTE_F4,
//NOTE_F4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4,
//NOTE_D4, 0, 0, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_F4,
//NOTE_G4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4, NOTE_A4, NOTE_A4, NOTE_G4,
//NOTE_A4, NOTE_D4, 0, NOTE_D4, NOTE_E3, NOTE_F4, NOTE_F4, NOTE_G4, NOTE_A4,
//NOTE_D4, 0, NOTE_D4, NOTE_F4, NOTE_E4, NOTE_E4, NOTE_F4, NOTE_D4
//};
//节奏
//int noteDurations[] = {
//4,8,4,8,4,8,8,8,8,4,8,4,8,4,8,8,8,8,4,8,4,8,
//4,8,8,8,8,4,4,8,8,4,4,8,8,4,4,8,8,
//8,4,8,8,8,4,4,8,8,4,4,8,8,4,4,8,4,
//4,8,8,8,8,4,4,8,8,4,4,8,8,4,4,8,8,
//8,4,8,8,8,4,4,4,8,4,8,8,8,4,4,8,8
//};
//int melody[] = {
//NOTE_G4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_C5, NOTE_B4, 0, NOTE_G4, NOTE_G4,
//NOTE_A4, NOTE_G4, NOTE_D5, NOTE_C5, 0, NOTE_G4, NOTE_G4, NOTE_G5, NOTE_E5,
//NOTE_C5, NOTE_B4, NOTE_A4, 0, NOTE_F5, NOTE_F5, NOTE_E5, NOTE_C5, NOTE_D5,
//NOTE_C5, 0,
//};
//
//Duration time of each melody
//int noteDurations[] = {
// 8,8,4,4,4,4,4,8,
// 8,4,4,4,4,4,8,8,
// 4,4,4,4,2,8,8,8,
// 4,4,4,2,4,
//};
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
};
// note durations: 4 = quarter note, 8 = eighth note, etc.:
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
};
void setup(){
//按音节播放
for (int thisNote = 0; thisNote < sizeof(melody) / sizeof(melody[0]); thisNote++) {
//一个音节为1000ms,则4分音符为1000/4,以此类推
int noteDuration = 1000/noteDurations[thisNote];
tone(melodyPin, melody[thisNote],noteDuration);
//延时一段时间以便区分
int pauseBetweenNotes = noteDuration * 1.3;
delay(pauseBetweenNotes);
noTone(melodyPin); //停止
}
digitalWrite(melodyPin,LOW);
}
void loop(){
}
上传到零知板后,可以调节电阻进行音量调节,更换音乐试试吧!