您可以使用这个小Arduino音乐曲调发生器电路为首选的应用程序,如制作一个有趣的门铃,作为汽车倒车喇叭,或音乐盒送给某人,或只是个人娱乐。
硬件要求
项目所需硬件如下:
- Arduino或Genuino板
- 压电蜂鸣器或扬声器
- 连接电线
Arduino是一个9V, 500mA电源输入,可以从任何标准的SMPS AC到DC适配器,或您也可以尝试您的手机充电器相同。
Arduino的8号引脚可以直接配置不超过8欧姆和1瓦的扬声器。
所以扬声器的一根线连接到Arduino板的8号引脚,另一根线连接到负线或板的接地线。
放大输出
对于更大或巨大放大的声音,你可以配置引脚8晶体管驱动级,包括一个TIP31晶体管,其基极可能通过1K电阻与引脚8连接,发射极对地和集电极到扬声器的一根电线,扬声器的另一根电线现在连接到正电源,即9V电源(+)。
这里,请确保扬声器额定为8欧姆,但在更高的瓦数,可能在5瓦左右的放大音乐曲调生成。
这个草图是编码来发挥和产生相当多的随机
五声音阶的旋律/*
音乐家
播放(相当)随机的曲调,直到程序停止。
8欧姆扬声器数字引脚8。
//版权所有(c) 2012 Jeremy Fonte
//这个代码是在MIT许可下发布的
/ / https://opensource.org/licenses/MIT
*/
int randomNote = 131;
int randomDuration = 2;
int noteStep = 1;
int[15]指出;
无效的设置(){
pinMode(8、输出);
指出[1]= 131;
指出[2]= 147;
指出[3]= 165;
指出[4]= 196;
指出[5]= 220;
指出[6]= 262;
指出[7]= 294;
指出[8]= 330;
指出[9]= 392;
指出[10]= 440;
指出[11]= 523;
指出[12]= 587;
指出[13]= 659;
指出[14]= 784;
指出[15]= 880;
randomNote = random(1,15);
}
无效循环(){
noteStep = random(-3, 3);
randomNote = randomNote + noteStep;
if(randomNote < 1) {
randomNote = random(1,15);
}
else if(randomNote > 15) {
randomNote = random(1,15);
}
randomDuration = random(1,8);
//计算音符持续时间,用1秒
//除以笔记类型。
/ /。四分之一= 1000/ 4,八分之一= 1000/8,以此类推。
int noteDuration = 1000/randomDuration;
语调(8指出[randomNote] noteDuration);
//为了区分音符,设置它们之间的最小时间。
//音符的持续时间+ 30%似乎很有效:
int pauseBetweenNotes = noteDuration * 1.30;
延迟(pauseBetweenNotes);
//停止播放音调:
能(8);
}
提出的Arduino曲调发生器电路连接图如下:
对于高功率放大听力,同样的设置可以升级为功率晶体管,如下图所示:
这就跟你问声好!这个例子适用于4欧姆3W扬声器吗?
是的,你可以试试,没问题。