成为订阅者(免费)

加入29,000名其他订阅者以获得用户销售折扣和 其他免费资源。
:
:
大学教师'担心 - 您的邮件地址完全是 安全的。我保证使用它 只要 to send you MicroZine.

ACS758

The ACS758 is a 非常高的电流能力测量设备,使用霍尔效应 传感器检测电流。

因为它使用磁场来检测电流没有 从测量的源直接连接到低压侧 电路。它已被称为电流隔离所内置。在图像中 您可以在顶部(厚电线)和下面的高侧电压和下面 底部的低侧电压 - 模拟输出和低压芯片电源 wires.

ACS758模块

缩略图ACS758.


通常是你 使用光耦合器将高压和低压系统分离为 提供电路危险和安全部件之间的隔离。 磁界面自动提供,是隔离 电压高达700V的电压rms..

因此,它可以安全地测量高伏特。但是,您必须采用所有高压安全性 使用超过30V的电压时注意事项。如果您没有在高压安全性中经验丰富't do it.

最低规格装置可以测量±50a - 这是通常的 在突破板上找到 - 这里使用的委员会。

ACS758数据表

下载ACS758 Sensor数据表 这里.

Allegro ACS758规范

(ACS758LCB-050B)
  Parameter
价值
  Voltage Supply (VDD.)
3v0〜5v5
  Abs.Max VDD.
-0.5V〜8V0
  Measurement range
±50A
  Interface
类似物
  主动电流(MA)(典型,最大)
10,13.5
  Conductor resistance 100µΩ
  零电流输出电压
VCC./2
  Output offset (@ 25°C,高T,低T)[3] MV ±5,±15,±35
  Sensitivity 40mV/A
  Noise
10mV
  磁偏移误差[1]
100mA
  传播延迟(当前变更OP)
1µs
  上升时间(步骤响应10%至90%)
3µs
  错误(高温,低温)[3]
-1.2%,2%
  准确性最佳[2] [2a] 5V供应
  输出负载电阻
4k7
  输出负载电容(最大值)
10nF
  Overcurrent for 1s (@ 25°C,150°C) 1200A,600A
  隔离电压(VDC. or VPK.,V.rms.)
900V,700Vrms.
  包装热阻 7°C/W
  Max junction Temp. 165°C
  工作温度
-40°C〜150°C
        [1]当设备经受高或过电流时发生。
        [2]对于3V3联系AllegromicroSystems,用于准确性数据。
        [2a] The device is 比例.   
        [3]   High temp = 25°C〜150°C,低温= -40°C〜25°C。

ACS758标记

我有标记的芯片:

    ACS758LCB-050B(这是突破板上的默认芯片)

050表示电流能力为50amps。您可以获得其他版本,最多可达200​​amps!

LCB中的B表示双向I.e.±50amps - 您可以获得单向(LCU)部分,您可以在那里衡量 电流在一个方向上。

LCB中的L可以改变为K或E.是指操作温度范围。 B具有最大范围。

ACS758框图

ACS758框图

ACS758如何工作

ACS757产生与磁场成比例的电压 使用该导体引起的"hall effect"。对于芯片类型 双向(如这里使用的那样),输出电压被设置为Vcc / 2。

磁场的变化 导致这种值从这个静止点上升或下降,表明 正或负电流。这允许测量交流电流 并且还允许大型电流成为 detected.

笔记: 该设备具有偏移量,您可以使用软件无效。

比例操作

ACS75x器件的特定含义是电源 更改使订户的比率变为相同的比例。这就是为什么零的原因 电流输出位于VCC / 2 I.E.输出不依赖于 电源电压值。

该装置应在不同电源处具有相似的精度 电压(但是由于上部和下端可能是错误的 opamp饱和度)。在数据表及以上的规范表中 (参见[2] [2a]),建议如果使用该系统会联系Allegromicro系统 在任何其他电压的设备比5V的任何电压。我怀疑这只是因为他们 尚未在其他电压测试它。

验证的简单方法是测量5V的高电流 操作然后与3V3操作进行比较。如果他们给了同样的话 结果然后没有问题。

ACS758准确性

设备的基本精度为高温和低温,如下:

    高温= 25°C〜150°C,精度为-1.2%   
    低温= -40°C〜25°C,精度为+ 2.0%

室温对于2%的最坏情况准确,如果感觉悲观,如果感觉乐观!

ACS758分辨率

设备的灵敏度为40mV / a,因此每个安培的变化 导致40mV输出变化。该决议应该如何解决 您的ADC可以衡量许多位,但也看到了"噪声对分辨率的影响".

如果你使用 arduino. ADC. (10bit)那么ADC的分辨率 假设5V参考的设备是5 / POW(2,10)= 4.88mV。所以基本 安培决议将是:
   
    40 [MV / A]灵敏度给出1.0 / 40 AMPS / MV

    (1.0 / 40)[A / MV] * 4.88 [MV] =放大器/ LSB = 1.0 / 8.1 = 0.122A / LSB

笔记: 使用Arduino ADC导致122mA的分辨率。
警告: 122mA不是 解析度 设备可以支持。
如果您要衡量最多50A,该决议并不是太糟糕。作为满量程的百分比:

    (0.122 / 50)* 100 = 0.25%

使用Arduino ADC具有更好的分辨率 设备可以输出。使用除Arduino ADC之外的ADC的唯一原因是更好的增益和偏移特性。

噪声对分辨率的影响

霍尔元素似乎具有由于热量和噪声输出相当高的噪声输出 射击噪音,因此有效分辨率受到这种噪音的限制。 将噪声除以噪音,灵敏度提供了最小的电流 可以通过ACS758测量:

    最小的电流分辨率=噪声/灵敏度

    最小电流分辨率= 10/40 [MV] / [MV / A] = 0.25A

    这专门用于ACS758LCB-050B器件。

警告: 该芯片最小电流可以测量为250mA。
笔记: 其他ACS7x芯片具有不同的噪声/灵敏度特性。

INA219 对于较低的电流具有更好的分辨率(3.2a〜15a)。然而,INA219不能用高于26VDC的电压测量。

测试套件设置

重要的是要安全地测量高压,因此修改了 现有案例是最好的主意。这里有一个电源定时器单元被修改 剥离定时器部分并将ACS758放在左侧的空间中。 切换机构留在适当位置,以便于切换电源 线(通过microSwitch)。

低压数字接线被取出壳体顶部 远离任何电源电压,从而提供arduino进入 analogue interface.

主电源计时器的内部:

主机的内部

安装了ACS758的电源定时器:

注意在模块背面是一个缓冲OP2的TLC2722 Opamp, OP1来自电容式RC滤波器(可能有错误的值150R, 100pf - 来自Web示意图) - 该滤波器输出进入Opamp 用作缓冲放大器。

使用ACS758修改了Mains Timer

上图不会显示它,而是塑料开关机构 被送回以允许微动开关运行。它有用 开/关开关。您应该确保MicroSwitch可以处理 max current.

案例关闭 - 已安装ACS758

主电源定时器用内部使用ACS758

测量

以下屏幕截图显示零电流(用于噪声评估)的各种电流波形,a 42W灯泡和一台鼓风机加热器全部电力。正如你所看到的,即使是42W 灯泡几乎没有登记在噪音之上 - 你可以看到一个正弦波所以它 注册 - 但只有。

ACS758零输入波形

对于零输入,您可以看到波形位于中心以下。偏移量 在零电流下是-10mv(从光标Δy= -20mv)(为此) 特定ACS758设备)。你也可以看到没有当前的流量 波形没有A.C.组件。

ACS758零电流波形

ACS758 42W灯泡波形

以下波形是用于42W灯泡,上面几乎寄存器 噪音。光标的ΔY显示峰值信号的峰值 approximately 38mV.

因此峰值电压为38.0 / 2,峰值电流为38.0 / 2/40 = 0.475。 IRMS = 0.475 / SQRT(2)= 0.34架构。所以权力是240Vrms * 0.34 rigms =  80W.

ACS578 42W灯泡波形

这个结果看起来有点偏离(约100%off!) - 原因是 光标设置为外噪声水平,并且因为 信号与噪声相比慢,噪声结果很小 显着影响结果。

以下波形显示光标以中间为中心 噪音。要在微控制器中实现此目的,请使用RC平滑 电路(芯片的内部电阻负载算 - 4K7) 或者将其缓冲A并在此后添加过滤器,然后添加另一个缓冲区Opamp。 另一种方法是使用Arduino过滤器库保存任何额外的 hardware.

这是ΔY是23mV。因此,峰值电压为23.0 / 2,峰值电流为23.0 / 2/40 = 0.288。 IRMS = 0.288 / SQRT(2)= 0.2甲级。所以电源是240Vrms * 0.Rems = 48W。
 
这与您可以在视觉上使用示波器光标如此接近。平滑会有所帮助。

ACS758 42W灯泡光标设置在示波器上的噪音中

ACS758鼓风机加热器

以下波形是为家用加热器表示 ACS758真的仅适用于测量非常高的电流:

ACS758测量鼓风机加热器电流

因为与实际信号相比,噪音低,所以它被忽略了 可以使用最大和最小测量值。

MAX - min = 430 - -445 = 857mv。

因此峰值电压为875/2,峰值电流为875.0 / 2/40 = 10.93。 IRMS = 10.94 / SQRT(2)= 7.57架构。所以权力是240Vrms * 7.57MIRS = 1817W。

ACS758最大功率

该芯片可以测量的最大功率(±50A chip version) is:

    Ipeak  = +50A
    IRMS = IPEAK / SQRT(2)= 50 / SQRT(2)= 35.36 arms
    POWER = VRMS * IRMS = 240 * 35.36 = 8485W〜8KW

对于您可以测量的±200a芯片版本:

    Ipeak  = +200A
    IRMS = IPEAK / SQRT(2)= 200 / SQRT(2)= 141.42 arms
    POWER = VRMS * IRMS = 240 * 141.42 = 33941W〜33KW

测量RMS电流

从阅读模拟输入引脚获得的结果是a 连续变化的输入值,从最大值变为最小值 率50 / 60Hz。获得RMS(均方根)当前值, 要求处理器识别最大值和最小值。

还要注意这个最大值。和闵。值应定期重置 如果单位降低其功率水平使用率。如果发生这种情况(没有 重置是制作的)然后仅使用以前的高值作为 输出表示当前消耗!

用过滤器提高操作

利用低级电流使芯片工作的初步思考 you'll想要过滤输出。过滤器以下递归过滤器 噪音并在低电流下提供更好的测量,但影响了 更高的电流输出太多。

在测试两个过滤操作之后,零滤波比较:

  1. 十点滚动平均值。
  2. 递归平均。

事实证明,您根本不应过滤输入信号。这 原因是过滤器将平均推出推动它的峰值值 下来,在更高的价值观中将更加明显。

在使用10AMPS的较高值下 重量因子0.4的递归过滤器(似乎最适合过滤低电平 输出),将输出从10.6a(峰值)变为9.6a(峰值)〜10% difference.

警告: 使用算法的平均是一个错误的想法(减少峰值)。

如果你不'T过滤输出,那么错误是由于噪音 从设备。由于这是10mV,10.6a信号为850mv a 1.1% error.

临界测量

对于A.c.电流测量关键参数是峰值 由于这导致峰值电流并因此导致RMS电流(平均值 当前的)。为了按照上述过滤衡量它,不应该是 在拖延峰值时完成。

有两种影响测量输出:

  • arduino.参考。
  • ACS758电流传感器输出范围。

其他关键参数是Arduino参考电压。 假设参考是5V是一个坏主意。在我的arduino nano上 电压为4.7V,因此它已有6%不准确。

提示: 使用已知的准确性至关重要。

ACS758输出电压范围

(ACS758LCB-050B)

  ACS758
输出电压
ACS758三角洲
from VCC/2 (V)
ipeak(a)
权力(w)
  2.5V + 0.01
0.01
0.125
21
  2.5V + 0.1V 0.1
1.25
212
  2.5V + 1V
1V
12.52121
  MAX 2.5 + 2V
2V
50.0
4242

还要注意 无论如何,Arduino ADC是2LSB不准确的(见数据表) 外部ADC可能更好。

对于双向设备(此处使用),完整的AC波形是 强加于VCC / 2级别。通过存储最大值来检测峰值值 和最小值。然后减半和计算。

动态范围受最大电流的影响,可以改进(见下一个)。

使用单端ACS758提高准确率

测量A.c.电流时,您只需要峰值电流。这个 通过测量最小值和最大值来检测。区别 然后减半。如果您只对AC电流感兴趣,那么拥有 全波形只需将ADC分辨率降低一半即可。

由于您可以假设游览等于两侧 零用来仅显示正电流的设备是有意义的 作为产出。在数据表中,单向+ 50a设备具有一个 60mV / A的敏感性(与双向的40mV / a相比) 即,它具有每个放大器的提高输出,因此它更为敏感。

示例测量草图

以下示例使用ACS758进行ARDUINO的AC电流 uno或nano。它只是将芯片的模拟电压读入A0。

此示例测量通过1秒间隔提取的电流 最大值和最小值。然后计算iPeak和Power(假设 恒定的电源电压 - 这里240V)。

这里仅使用递归平均来确定信号是否高 足以衡量。即便如此,低功耗设备也不会显示正确 电流使用(分辨率太低),因为噪声信号与所需的低功率输出信号相当。

您必须测量参考电压以在附近的任何位置 准确输出 - 进入程序。最好使用外部 ADC和外部良好的参考电压。

// acs758
//
// Copyright: John Main
//
// Only none allows correct current reading at high current.
// The noise value at this level is ignored as it is
// small compared to the signal.
//
////////////////////////////////////////////////////////////
// IMPORTANT: You must measure the power supply
// or use an external reference.
//
#define MEASURED_VCC       4.70

#define ACS758_SENSITIVITY 40e-3    // 40mV per AMP
#define ACS758_NOISE       10e-3    // 10mV noise
#define ACS758_OFFSET_LIM  35e-3    // +/-35mV Max offset.
#define MAINS_VOLTS_RMS    240      // 240 or 120 Usually.
#define V_PER_LSB          (MEASURED_VCC/1024.0)
#define ACS758_NOISE_LSB   (ACS758_NOISE/V_PER_LSB) // Noise in LSBs

#define MIN_LSB            (ACS758_NOISE_LSB*1.5) // Ignore system noise

// ACS758 Starts at Vcc/2
static 在 t offset = 512; // Calculated at start.

///////////////////////////////////////////////
// Returns offset = average value.
在 t get_offset(void) {
long avg=0;

   for (在 t i=0; i<200; i++) {
      avg += analogRead(A0);
      delay(1);   // Let analogue settle.
   }

   return avg/200;
}

///////////////////////////////////////////////
// Store max min
//
void assign_max_min(float val, float *pmax, float *pmin) {
   if (*pmax < val) *pmax = val;
   if (*pmin > val) *pmin = val;
}

///////////////////////////////////////////////
void setup(void) {
   Serial.begin(115200);
   Serial.println("ACS758...");

   offset = get_offset();
   Serial.println("Offset "); Serial.print(offset);
}

//////////////////////////////////
void loop(void) {
static unsigned long update_time_was = millis();
static float nmax=0, nmin=0, rmax=0, rmin=0, y=offset, w=0.4;
在 t a0;

   a0 = analogRead(A0); // Don't remove offset.
   delay(1);   // Let analogue settle.

   // Recursive averaging.
   // Used to detet low level signal in noise.
   y = w*a0 + (1-w)*y;

   if (nmax < a0) nmax = a0;   // No averaging.
   if (nmin > a0) nmin = a0;   // No averaging.
   if (rmax < y)  rmax = y;    // Recursive averaging.
   if (rmin > y)  rmin = y;    // Recursive averaging.

   if (millis()-update_time_was > 1000 )  { // 1 sec. update rate.
      update_time_was = millis();

      // No averaging.
      在 t __max  = nmax;
      在 t __min  = nmin;
      nmax = offset;
      nmin = offset;

      // Recursive averaging.
      在 t _rmax = rmax;
      在 t _rmin = rmin;
      rmax = offset;
      rmin = offset;

      float navgIpeak =( (__max-__min)/2 * V_PER_LSB) / ACS758_SENSITIVITY;
      float navgIrms  = navgIpeak/sqrt(2);
      float navgPower = navgIrms * MAINS_VOLTS_RMS;

      // Output
      if (_rmax-_rmin > MIN_LSB)  { // Ignore too low
         Serial.println("\n------");
         Serial.print(" max");  Serial.println(__max);
         Serial.print(" min");  Serial.println(__min);
         Serial.print(" Peak Current ");  Serial.print(navgIpeak);
         Serial.print("A\n Power ");      Serial.print(navgPower);
         Serial.println("W");
      } else
         Serial.println("Too low");

   }
}

结论

当测量非常高的电流时,ACS758将进入自身 电流明显高于内部噪音 限制可用的分辨率。最小电流分辨率为0.25A for this device.

您将努力衡量消耗设备的任何东西 低于〜60W的任何东西 - 对于您需要的最低当前分辨率 电源使用的设备大于0.25 * 240Vrms = 60W。例如 you won't看到11W的测量值 LED bulb!

在240VRMS系统中,50A版可以测量高达8kW,并与 200A版本,您可以测量高达33kW。如果使用120Vrms那么 功率测量能力一半。

如果您需要较低的电流测量,则使用 ACS712, 这可以测量±5a,±20a,±30a,用不同的芯片版本。如果你 在台面电压下需要精确的电流(低于26V)然后使用 INA219.



新的! Comments

让你说到你刚刚阅读的东西!留下下面的框中的评论。




隐私政策 | 接触 | 关于我

网站地图 | 使用条款


ezoic.报告此广告

访问我们的Facebook页面:

   点击这里



最近的文章

  1. 如何使用ADS1115

    使用ADS1115精度16位ADC进行教程进行低功耗。

    阅读更多

  2. arduino.模拟输出...易模拟输出生成

    arduino.模拟输出:如何创建最精确的PWM模拟输出以及如何创建模拟PWM正弦波。

    阅读更多

  3. 数号和等效的快速宏。加快代码!

    了解DigitalWrite()的工作原理......现在使用17倍宏宏!

    阅读更多

  4. TCS230颜色传感芯片:如何运作以及如何使用它。

    如何使用TCS230(/ TCS3200)彩色检测器芯片并轻松将其添加到您的任何项目中。

    阅读更多

  5. 如何使用ADXL345进行运动感测等。

    使用ADXL345 Acellerometer,您可以检测到16G!您还可以了解如何使用它来点击检测等。

    阅读更多

  6. HMC5883L 3轴数字MAGENTOMTER如何运作

    HMC5883L - 如何制作数字罗盘,了解HMC5883L和QMC5883L之间的差异以及它们是否兼容。

    阅读更多



读者 Comments

"I wanted to thank
你 so so so much
对于所有信息
你 have provided in
你r site it's

高超极好的."

- 逃亡Potthath.

"This site really is
最好的和我最喜欢的。
我发现这里有很多很有用
项目和提示。"

- 米兰

Bursach.<at>gmail.com<

"Awesome site,
非常,非常容易和好
导航!"


-
镭_tr.<at>
wolf359.cjb.net.


学习微控制器

"Interested in
微控制器?"

注册
免费7天指南:

自由 GUIDE : CLICK HERE


"I am a newbie to PIC
我想说
 how great your
网站一直在为我。"


- 戴夫

de_scott.<at>bellsouth.net

"Your site is a great
和完美的工作。
恭喜。"


- SURESH.

IntegratedInfosys.<at>
Yahoo.com.

"I couldn't find the correct
要定义的词语
你rweb site.

非常有用,揭开,
诚实明确。

非常感谢
你r time and works.
问候。"


- Anon.
ezoic.报告此广告

回到顶部