×

设计基于Arduino的自动测量系统

消耗积分:2 | 格式:zip | 大小:0.14 MB | 2022-11-07

张文

分享资料个

描述

目标:设计基于 Arduino 的自动测量系统,可以测量范围内的电压和电流(可变)

[在这种特定情况下:{-500mV...+500mV},{-5V...+5V}]。

它会自动选择适当的范围并重新连接 AMS 的适当元件(以使用 Arduino ADC 实现最佳精度)

AMS 必须抓取一个要测量至少 5 次的值,并呈现平均值及其标准偏差 平均值和变化是使用相关单位在串行监视器上呈现的,并且必须每 5 秒更新一次。

必须足够了解 sqrt 操作相对于时间而言是昂贵的 - 因此我将在这里计算平方 STR(标准偏差)。

系统块:

块号 1:2 个输入缓冲器和一个差分放大器

 

pYYBAGNkeCiAXJMwAAELO-bUfo8188.png
 

这是我们的系统输入,两个输入信号通过缓冲器输入(对于大输入阻抗),然后是差分放大器

输出电压:V+ - V-

蓝线代表 V+,灰线代表 V- 电压。

 

pYYBAGNkeCqAaAw_AAASBMJrALE769.png
 

 

我们如何为差分放大器选择电阻:

我们想要获得 Vout=V+-V-,因此我们以下列方式选择我们的电阻器:

R1=R2=R3=R4=500[kΩ]。

我们将差分放大器输出连接到缓冲器以保持其电压。

笔记:

该模块中的所有运算放大器都具有 ±5[V] 电源电压。

为了实现 ±5[V],我们使用了两个电源,如下图所示:

 

 

poYBAGNkeCyAQwdKAAASMWYcOYw992.png
 

 

 

模块 2:±5[V] 范围的求和放大器

 

pYYBAGNkeDGAYsOtAACGtObZgWg213.png
 

该模块的工作是将 {-5[V]…+5[V]} 范围内的差分电压转换为 {0[V]…5[V]}。

我们需要进行这种转换,因为 Arduino 不能插入负电压。

该放大器的输出函数必须为 Vout=(5[V]+Vin)/2

为了做这个转换。

 

poYBAGNkeDOAR-F_AAAk56TgU8M825.png
 

 

我们如何为差分放大器选择电阻:

输入为 V1 和 V2,V2=5[V],V1=Vin(这是输出

从前一个块 1) 因此为了得到

放大器输出功能我们相应地选择了电阻。

RA=100[Ω],RB=500[kΩ],R1=R2=500[kΩ]。

在我们选择所有这些电阻之后,我们会收到以下输出

功能:

Vout=(5[V]+Vin)/2

因为 RB<

 

块号 3:带缓冲器的 ±500[mV] 范围的求和放大器

 

pYYBAGNkeDaAFzwJAADNjWA9VQ8348.png
 

该模块的工作是将 {500[mV]…+500[mV]} 范围内的差分电压转换为 {0[V]…500[mV]}。

该放大器的输出函数必须为 Vout=(500[mV]+Vin)/2 *10

为了做这个转换。

我们使用了分压器和缓冲器,因此分压器的点进入运算放大器的非反相输入端。所有这些都是为了保持我们需要这个功能的 500[mV] 电压。

我们如何为差分放大器选择电阻:

输入为 V1 和 V2,V2=500[mV],V1=Vin(这是输出

从前一个块 1) 因此为了得到

放大器输出功能我们相应地选择了电阻。

RA=450[kΩ],RB=50[kΩ],R1=R2=500[kΩ]。

在我们选择所有这些电阻之后,我们会收到以下输出

功能:

Vout=(500[mV]+Vin)/2 *10

注1 :1+RA/RB = 10,我们正在与之相乘。

注2 :对于上一张幻灯片中提到的分压器,我们使用了如下图所示的电阻:

 

poYBAGNkeDiASdgtAAALFnfvqcQ491.png
 

 

模块 4:差压整流器

 

pYYBAGNkeD-AeEwAAADIi5KiQ0M064.png
 

 

为什么我们仍然使用整流器?:

该模块用于下一个模块(模块 5)。该模块的输出是比较器 OA 非反相输入的输入。

 

poYBAGNkeEGAcvIZAAAbC5m3u-k545.png
 

 

我们通过以下方式实现了上述威廉希尔官方网站 :

当我们的输入信号(从块号 1 输出)大于 0 时,A1 放大器充当缓冲器。

A2放大器的两个输入端与输入信号电位相同,所以A2实际上输出的是正信号。

当信号小于0时,A1的输出等于0[V],A2将输入信号反相。

总体结果是输入信号的绝对值。

该模块中使用的所有电阻器都等于 R=500[kΩ]。

 

块号 5:带继电器的Comperator OA

 

pYYBAGNkeEOAFSgpAABp7pzMJ1M322.png
 

V+ 中的比较器输入是前一个模块 4 的整流差分输出电压。

在 V- 上,我们从第 3 块提到的缓冲放大器中得到 500[mV]。

我们可以从中选择两个范围:{-5[V]…+5[V]},{-500[mV]…+500[mV]}。

如果差分电压的绝对值大于 500[mV],继电器将输出处理此电压范围的模块 2 的输出。

如果差分电压的绝对值小于 500[mV],继电器将输出块 3 的输出。

继电器输出(绿线)连接到 A0,橙色线连接到引脚 2。

 

系统流程图:

 

pYYBAGNkeEaAKn5UAAAiAxasZTk133.png
 

 

一些证明系统阻抗非常高的证据:

 

poYBAGNkeEmAf6J5AAEFijcy1Dw283.png
 

在上面的附件中,我们可以看到对于不同的电压范围,无论我们有什么电压,输出电流总是0[A]。

将其除以 0[A] 输出电流将导致 Rinput = (Voltage(in)[V])/(Current (in)[A])=(Voltage(in)[V})/(0[A]) = ∞

这意味着在我们被要求设计此 AMS、差分直流电压表的范围内,我们的输入阻抗实际上是无限的。

为了达到这个结果,我们使用了缓冲运算放大器(用于两个输入),众所周知,他的特征之一是他的 Rinput 等于无穷大。

注意:即使电压==0[v] 我们得到 0/0 = '未定义',但这并不重要,因为在这种情况下无论如何都没有连接(电压或电流)。

 

 

 

 

 

 


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

评论(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.obk20.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.obk20.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);