首页 » 通讯 » Arduino万用表之电流表_电压_电阻

Arduino万用表之电流表_电压_电阻

admin 2024-11-26 19:56:33 0

扫一扫用手机浏览

文章目录 [+]

我们都知道欧姆定律:两个端子之间的电压降即是电流值乘以这两个端子之间的电阻。

V = R I

Arduino万用表之电流表_电压_电阻 通讯

因此,利用这个大略的公式可以很随意马虎地丈量电阻器两端之间的电流。

在该图中,我们可以看到我们在负载两端施加电压VT,在这种情形下是灯泡和电阻器串联。
我们想要丈量流过灯泡的电流,由于它们是串联连接的,以是电流同样流过电阻器。
因此,如果我们知道电阻器的电阻并丈量其端子之间的电压降,我们就可以利用上面的欧姆定律打算电流。
问题是我们须要利用一个低阻值电阻,由于如果电阻过大,电阻电压降会影响到我们利用灯泡的电压。

例如,假设我们想对灯泡施加12伏电压。
流过的电流约为1安培。
如果电阻值是10欧姆,那将在地电压和10欧姆电阻之间产生电压降VR,这意味着我们向灯施加电压达不到12伏VL。
灯两端的电压只有12-10 = 2伏特。

为理解决这个问题,我们不能利用普通的电阻器。
办理方案是利用具有非常低阻值的分流电阻器。
非常低阻值的电阻器非常适于此目的,该种类电阻器常日称为分流器。
该名称源于它们在老式移动线圈式电流表的利用,个中分流器直接连接在电流表端子上。
其目的是将大部分电流“分流”阔别电流表,电流表本身设计为仅处理几毫安以使指针满量程偏转。

我从网上买了这个分流器。
当你购买它们时,你必须要看它的规格。
下面是分流器规格的一个例子。

电流:10A

电压降:75mV

准确度:0.5级

环境条件:-40~ + 60°C,相对温度≤95%(35°C)

有几个参数对付选用分流电阻非常主要。
分流电阻的最大额定电流。
电阻值由最大额定电流下的电压降打算出。
例如,额定电流为100A和电压降50mV的分流电阻的电阻为50/100 = 0.5 mOhm。
最大电流下的电压降常日为50,75或100 mV。
在这种情形下,我们的分流器为10A,最大电压降为75mA。
这让我们打算出该电阻阻值:

75mV / 10A = 7.5mOhm。

以是现在我们的电路具有一个非常低电阻的分流电阻。
现在,如果我们有1A的电流流过分流电阻器,那么电压降仅为7.5mV,这将不会影响我们想要运用于灯泡的12伏电压。

但现在我们还有另一个问题。
为了丈量电流,我们必须首先丈量分流电阻器电压降并将其除以电阻值。
但由于分流电阻器电阻较低,电压降非常小,以至于我们的Arduino ADC只能丈量较大电流值。

例如,像我们说的,我们想要丈量1A的电流。
这将使VR低落7.5mV。
Arduino ADC有10位。
这意味着它将为o伏对应0值,为5伏对应1024,这是该微掌握器的最大Vref电压。

5伏---------- 1024

0.0075volts ------- X.

如果我们打算出“X”,它将为我们供应以1.5为单位的ADC,用于7.5mV的压降。
这基本上意味着我们丈量精度会非常小。
为了能够以更高的精度进行丈量,我们必须放大此电压降。
为此,我们将利用仪表放大器。
我们不该用大略的运放,由于我们须要高增益和更高的精确度。
我们将利用AD623AN仪表放大器。
从数据表中可以看出,它的增益设置为单个1%电阻(或者,如果您想随时变动增益,可能还有预设的可变电阻)。

如果我们看一下AD623AN数据表,我们就可以看到增益取决于引脚1和8之间的Rg电阻。
我们知道,对付10安培,分流端子之间的最大电压降为7.5mV。
利用500增益,我们将从放大器输出3.75伏电压,这对我们的Arduino ADC非常有用。
但是,得到高收益可能会给我们带来缺点。
请查看数据表以查找每个增益的缺点图。
因此,对付501增益,我们必须利用200欧姆Rg电阻。
我们该当添加一个100欧姆的可调电阻以进行微调。

因此我们为arduino供应5伏的放大器,由于它不会利用太多的电流。
放大器将放大分流电阻之间的电压降。
现在我们可以丈量电压降,范围在0到5伏之间。
设置放大器的增益,使得当我们丈量最大10A电流时,输出电压将低于5伏。
现在我们须要做的便是将下面代码上传到我们的arduino并开始丈量当前。
请记住安装lyquid crystal i2C库以利用i2c LCD屏幕。

你可以下载lyquid crystal i2C库, 要安装它,我们只需转到Sketch - > Include库,然后打开我们刚刚下载的.zip文件。

库文件请关注微信公众年夜众号 电子爱好谈论分享 获取。

以下为代码:

//LCD config

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3f,20,4); //sometimes the adress is not 0x3f. Change to 0x27 if it dosn't work.

////////////////////////////////////////////////////////////////////////////////////////////////////////

int analogInputAmps = A3; //Connect the output of the amplifier to this pin

int readAmpsADC = 0;

float voltage = 0.0;

float amps = 0.0;

void setup(){

pinMode(analogInputAmps, INPUT);

lcd.init();

}

float fmap(float x, float in_min, float in_max, float out_min, float out_max) {

return (x - in_min) (out_max - out_min) / (in_max - in_min) + out_min;

}

void loop() {

readAmpsADC = analogRead(analogInputAmps);

voltage = fabs(fmap(readAmpsADC, 0.0, 1024.0, 0.00, 5.0)); //this maps the measured voltage in volts from 0 t 5V

amps = voltage (10.0/3.7575); //Because we have 10A when the voltage is 3.7575 for a 501 gain (0.0075V 501)

lcd.setCursor(0,0);

lcd.print(\"大众SCALE: 0A-10A\"大众);

lcd.setCursor(0,1);

lcd.print(amps,3);

lcd.setCursor(15,1);

lcd.print(\"大众A\"大众);

delay(500);

}

//You can always fine tune the gain at the same time that you measure the current with the

//arduino meter and a normal high precision multimeter to compare.

//Precission = 13mA

标签:

相关文章

技能|电脑无法通电怎么解决_戴尔_电脑

如果按下电源按钮后戴尔打算机无法打开,不通电,请按照以下步骤打消故障。视频加载中...01检讨电源线、互换适配器与外设首先检讨电源...

通讯 2025-01-24 阅读1 评论0