×

小白学单片机(22) IO口:蜂鸣器的使用/三极管的工作原理介绍资料下载

消耗积分:2 | 格式:pdf | 大小:409.64KB | 2021-04-19

哈哈哈

分享资料个

这一篇继续的内容,我们来做实验四:按键控制有源蜂鸣器,按下按键蜂鸣器响,释放按键不响。 蜂鸣器 实验四之前简单介绍下蜂鸣器。蜂鸣器有两种,无源蜂鸣器和有源蜂鸣器,一般用于发出报警的声音。声音是由震动产生的,大家都见过喇叭,喇叭里面有磁铁和线圈。给线圈通上不断变化的电压,在磁铁产生的磁场中就会运动。于是和线圈固定在一起的振膜就会震动,于是就能听见声音了,而无源蜂鸣器和喇叭效果基本一样。和无源蜂鸣器不同的是,有源蜂鸣器内部就有发声电路,通上电压合适的直流电就会发出叫声。另外,有源蜂鸣器有正负极之分。图中是常用的一种工作电压为5V的有源蜂鸣器,正面标有加号的一侧引脚为正极,如果器件是全新的没有剪过引脚,正极引脚比负极长。 驱动电路 从上面的介绍来看,有源蜂鸣器和LED一样,只要通电就能工作(如果没有特殊说明,后面蜂鸣器就是指有源蜂鸣器)。但是为什么要单独作为一个实验呢? 前面我们说了,单片机IO口能通过的电流是有限的,过大的电流可能会烧坏管脚,或者不能正常工作。蜂鸣器和LED相比最主要的区别,就是蜂鸣器比LED需要的电流大很多,电压一般也会高一些。 为了让单片机驱动蜂鸣器,也就是控制蜂鸣器工作,我们需要使用一些特别的电路。不知道大家是否了解继电器,继电器的特点就是用小电流低电压,控制大电流高电压电路。但是一般的继电器控制端需要的电流,对于单片机来说还是太大了,而且继电器价格比较高,能控制很大的电流,用在这里大材小用了。而这里我们要用的器件是三极管。 三极管基本介绍 三极管的作用主要是放大电流。和名字一样,三极管有三个管脚:发射极、基极、集电极,分别简写为E、B、C。有两种类型,PNP型和NPN型,两种类型的三极管工作时电流方向恰好相反,电路符号也不相同,如图所示。发射极上的箭头正是表示工作时电流方向的。 三极管有很多参数,实际的三极管也有很多种,封装也各种各样。下图是常见的TO-92封装的直插式小功率三极管。注意,这种外形只是封装,并不是三极管专用,也有其他器件会用这样的封装,具体要看上面标示的器件型号,例如图中的S9012表示它是9012三极管。像图中一样管脚朝下放置,半圆柱的平面正对自己,从左往右三个管脚分别是E、B、C。 三极管作为电子开关使用 三极管有三种工作状态,截止区、放大区、饱和区。在放大区,可以放大电信号,我们用的扩音器等设备就可以通过三极管实现。在单片机中我们主要利用三极管的截止区和饱和区,作电子开关使用,常用下面这样的电路图。 左图和右图分别是NPN、PNP型三极管的电路图。R1、S1和R2、S2相当于单片机IO口,三极管集电极接蜂鸣器。NPN型电路控制蜂鸣器高电平有效,即IO口输出高电平的时候,蜂鸣器就会响。PNP型反之。为了方便观察,我接的是LED,和蜂鸣器是一样的道理,可以看到图中LED就点亮了。注意三极管的管脚位置不可接反,要驱动的负载即图中的LED也不能接反。 常用PNP三极管有9012、8550等,NPN三极管有9013,8050等。 三极管的原理和很详细的工作情况分析,需要不少的计算过程,有兴趣的读者可以查看模拟电路相关的书籍资料。文章末尾也会简单分析三极管工作机制,有兴趣的同学可以看看。如果觉得难以理解,学习单片机过程中,可以不做深入研究。 电路设计 程序的实现和点亮LED差不多,不过要看你的电路确定是高电平还是低电平有效。按照前面的三极管电路,我们可以用9012实现蜂鸣器驱动电路,低电平有效,电路图如下,注意蜂鸣器的正负极不能接反。 图中P1.0上接的LED还放在那(当然也可以去掉),P2.0上接了按键开关,P2.1上连接了三极管驱动的蜂鸣器。 我用面包板搭建的电路。 备注:三极管在这里起到开关的状态,建议优���考虑使用PNP型三极管电路。因为三极管的作用是放大电流,对于同一个三极管而言,如果要输出更大的电流,一般就要在基极输入更大电流。而使用PNP型电路时,IO口输出低电平有效,对于单片机来说是灌电流,此时基极能提供的电流更大,从而提供更大电流以驱动蜂鸣器。我在实际测试时,如果使用NPN型三极管9013,可以驱动LED,但不足以驱动蜂鸣器,除非自己给IO口再外接一个上拉电阻。 程序实现 首先是定义LED、按键、蜂鸣器三个IO口 sbit LED = P1^0; sbit KEY = P2^0; sbit BUZZER = P2^1; 然后先设置KEY=1,然后在主循环中处理即可。这里我用的是PNP驱动,蜂鸣器和LED一样,是低电平有效。 void main() { KEY = 1; while(1) { LED = KEY; BUZZER = KEY; } } 搭建完电路并烧写好程序,按下按键,LED会被点亮,同时蜂鸣器就能发出声音了。 三极管工作机制简要分析 三极管的特性分析比较复杂,这里我通过仿真进行简单介绍,三极管的原理和更多的深入知识,可以查阅相关模拟电路书籍。下图是我用Multisim软件仿真的电路(如果有兴趣自己仿真,请自行安装学习Multisim软件)。 图中左边的VCC通过可调电阻Rp分压,接到三极管基极,右边VCC通过一个电阻接到三极管集电极,三极管发射极接地。两个绿色箭头是Multisim中的探针,可以在黄色的框中显示导线上通过的电流大小,以及导线上的电压(也就是相对于GND的电压)。 我们把这个电路看成两个电流通路,分别是由紫色和橙色箭头标注。调节Rp到合适的位置,就会有电流通过基极,大小为Ib,也就是紫色通路的电流。由于三极管的特性,Ic即橙色通路的电流也会根据Ib而变化。从图中也可以看出来,左右两个探针显示的直流电流I(dc)分别为1.71nA和172nA(即Ib和Ic)。 如果调节Rp,如图Ib=3.33uA,此时Ic=333uA。多调整几次并观察结果,可以发现在一定范围内,始终近似有Ic=100*Ib(在模拟电路中,常直接用等号代表约等于,误差在所难免)。这正是三极管的放大特性。如果在基极接的是话筒,在集电极接喇叭,就可以放大声音信号了。当然实际电路还需要添加一些器件。而这里的100就是图中三极管的放大倍率,是三极管很重要的一个参数(所谓参数,就像电阻的阻值一样的道理)。 如果调节Rp,使基极电流Ib很大,例如图中Ib=1mA,此时Ic只有4.95mA,而不是100mA,不满足前面的条件了。前面说的是在一定范围内,Ic=100*Ib,也就是两者成正比,叫做三极管的线性区,也叫放大区。而如果基极和发射极之间电压太大,超过一定范围,就进入了三极管的饱和区,Ic的值比较大;反之,如果电压太小就会进入截止区,在截止区,Ic很小,几乎为0。正是利用这个特性,我们可以把单片机IO口接在基极,而在三极管集电极连接蜂鸣器,从而进行控制。 备注1:仿真电路有很大的局限性,只能在一定程度上模拟实际电路。实际电路很复杂,例如导线有电阻,但是仿真软件的设计很难考虑这么多因素,还有一些目前仍然未知的问题也不能考虑到。所以仿真结果只能作为参考。例如上面这个电路,我发现即使不断调节Rp,让滑片直接移动到5V的那一端,基极电压却仍然没有达到5V,和实际电路中并不相符。 备注2:前面说单片机IO口使用了电子开关,就类似于上面的三极管电路,不过单片机中实际用的一般是MOS管。

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

评论(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:'小白学单片机(22) IO口:蜂鸣器的使用/三极管的工作原理介绍资料下载',//标题 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);