×

Arduino圣诞压电蜂鸣器项目

消耗积分:0 | 格式:zip | 大小:0.14 MB | 2022-12-12

分享资料个

描述

在开始这个项目之前...

学分转到 https://blog.giacomocerquone.com/jingle-bell-with-an-arduino-and-a-buzzer/上的 Giacamo Cerquone

 
pYYBAGOSu_uAVb9uAABAhRUpwO0652.jpg
 
 

对于 2018 年的圣诞节,我准备了一个非常简单的 Arduino 初学者项目。它使用一个普通的压电蜂鸣器,其他几个支持组件,并且没有很多复杂的代码功能来配合项目。如果您已经有通过代码操纵压电蜂鸣器的经验,您可以轻松地进一步扩展或微调蜂鸣器发出的声音,甚至可以产生全新的旋律。这个项目的曲调是“铃儿响叮当”,准备时间约10分钟。对于这个项目,所需的组件包括:

  • 1 个 Arduino(本例中使用 Maker Uno)
  • 1 压电蜂鸣器
  • 1 220 欧姆电阻
  • 2 条跳线(公对公)
  • 1个面包板
  • 1 根 USB 数据线(取决于 Arduino)

赞助商链接:

UTSource.net评论

这是一个值得信赖的电子元器件订购网站,价格便宜,质量优良。

安装电路

 
 
 
 
poYBAGOSu_6Afe_kAABHaqqsdbg554.png
 
1 / 2
 

要开始制作电路,首先,将压电蜂鸣器的电源(正/负)线连接到面包板的不同行,如上图所示。然后,将 220Ω 电阻器的一端连接到与压电蜂鸣器的正极(+/红色)线相同的行,并将电阻器的另一端连接到它旁边的行。将一根跨接导线插入与电阻器末端引脚相同的行(引脚连接到它自己的行),并将其连接到 Arduino 的 D1(数字引脚 1)。现在,将另一根跳线插入面包板上与负极(-/黑色)线相同的行,并将该线连接到 Arduino 上的 GND (-)。如果一切都正确完成,它应该类似于上面的电路图。现在,进入下面的代码!

关于代码

首先,代码首先声明用于蜂鸣器的变量buzzerPin连接到 D8(数字引脚 8)。我们还声明变量tempo,即旋律的速度,为每分钟 200 拍。这两个变量充当整数变量。在第三行中,我们有一个 char 数据类型  notes,其中包括正在播放的每个音符的连续顺序。之后还有另一个变量  duration ,它仅说明数据类型notes中每个音符播放的秒数在下一节中,我们有一个 void 语句,   playTheTone, 这部分负责组合我们在开始时设置的变量和数据类型,为蜂鸣器创建旋律。我们从制作一个 char 数据类型  notesName开始,它只声明我们将使用的不同音符,然后我们制作另一个变量  tones ,说明数据类型char规定的各种音符的特定音调值 您可以在此处参考此页面,以获取 Arduino 编程语言中的音符列表和每个特定音调。接下来,我们有一个 for 循环,如果变量 (以 0 值开始)小于数据类型 注释的大小(字节),  则值 我 将增加 1,并且 将运行一个if 语句。if 语句指出,当一个音符等于数据类型 notesName中的特定音符名称(由变量I的值指出 )时,函数tone() 将被激活。此函数指示连接到蜂鸣器的引脚变量  buzzerPin、正在播放的音符的不同频率(在数据类型 tones中指定)以及持续时间(由变量 duration指示) 。再往下,一个 void setup 语句出现在它只是声明 buzzerPin的地方 (D8) 是一个输出引脚,信息从 Arduino 发送到蜂鸣器。对于 void 循环,我们从 for 语句开始,说明当变量 I  (以 0 值开始)小于大小(字节)数据类型 注释 负 1 时,   I的值增加 1,然后进入 if else 语句。if else 语句指出,如果数据类型 notes的 当前位置(由变量 I的值指示)等于数据类型 notes中的一个空格,则会暂停。停顿是由变量 I的值在变量中构成的duration, 乘以变量tempo  (200),以获得以毫秒为单位的暂停时间,否则 void playTheTone 语句中的序列将运行。我们将运行该 void 语句,然后,我们以在当前序列中设置延迟结束,可变 速度 (200) 乘以 2,然后乘以变量 I在变量 duration的值集中的位置,这将创建代码开始和结束之间以毫秒为单位的停顿。我们现在完成了!

惊人的机会

此外,请务必查看 PCBWay,它是 PCB 设计和制造领域的领先制造商和分销商。他们有惊人的价格和优质的服务,所以不要错过他们!

享受!如有任何疑问,请联系我们!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'Arduino圣诞压电蜂鸣器项目',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);