在这个项目中,我们将讨论关于ACS712电流传感器,如何基于霍尔效应电流传感器的工作,最后如何接口的ACS712电流传感器Arduino。
介绍
如果您还记得之前的Arduino项目,我已经讨论过使用测量大于5V的电压Arduino使用电压传感器。在这个项目中,我们将学习使用电流传感器(具体为ACS712电流传感器)测量电流。
电流传感器是电力计算和管理应用中的重要器件。它通过设备或电路测量电流,并产生与被测电流成比例的适当信号。通常,输出信号是模拟电压。
输出视频
在进一步进入ACS712电流传感器模块之前看一下输出视频。
ACS712电流传感器简介
ACS712电流传感器是Allegro MicroSystems的产品,可用于交流和直流电流的精确测量。该传感器基于霍尔效应,集成了霍尔效应器件。
进入ACS712电流传感器的输出,它产生一个与交流或直流电流成比例的模拟电压(被感知到的)。
ACS712 IC可在一个8引线SOIC封装和下图显示其引脚图。
现在让我们看看ACS712的引脚描述。密码、名称和说明如下表所示。
密码 |
销的名字 | 销的描述 |
1 & 2 |
IP + | +ve端子用于检测电流 |
3 & 4 |
知识产权- - - - - - | -ve端子用于检测电流 |
5 |
接地 | 信号地 |
6 |
过滤器 | 外部电容(设置带宽) |
7 |
VIOUT | 模拟输出 |
8 |
VCC | 电力供应 |
ACS712传感器根据其电流传感范围分为三种。优化范围为+/-5A、+/-20A和+/-30A。根据变量的不同,输出灵敏度也会发生如下变化:
ACS712模型 |
优化的电流范围 | 输出灵敏度 |
ACS712 ELC-05 |
+ / - 5 |
185 mV /一个 |
ACS712 ELC-20 |
+ / - 20 |
100 mV /一个 |
ACS712 ELC-30 |
+ / - 30 a |
66 mV /一个 |
ACS712电流传感器是如何工作的?
如前所述,ASC712基于霍尔效应。内部有一个铜条连接IP+和IP-引脚。当一些电流流过这个铜导体时,就会产生一个磁场,霍尔效应传感器就会感应到这个磁场。
霍尔效应传感器然后将这个磁场转换成适当的电压。在这种方法中,输入和输出是完全隔离的。
ASC712电流传感器应用电路
ASC712电流传感器的典型应用电路在其数据表中给出,以下图片显示相同。
ACS712电流传感器模块
使用ACS712 IC的一个变体(5A、20A或30A),几家制造商开发了ASC712电流传感器模块板,可以很容易地与Arduino之类的微控制器接口。
下图显示了本项目中使用的ASC712电流传感器板。
正如您所看到的,它是一个相当简单的板,只有一些组件,包括ASC712 IC,一些无源组件和连接器。
该板由ASC712 ELC-30组成,即该板的范围是+/- 30A。下图显示了电路板上的组件和引脚。
ASC712电流传感器与Arduino接口
测量电压(直流电压)与Arduino是非常容易的。如果您的要求是测量小于或等于5V,那么您可以直接使用Arduino模拟引脚测量。如果你需要测量超过5V,那么你可以使用一个简单的分压器网络或电压传感器模块。
当测量电流时,Arduino(或任何其他微控制器)需要一个专门的电流传感器的帮助。因此,将ACS712电流传感器与Arduino接口可以帮助我们通过Arduino来测量电流。
ASC712既可以用来测量交流电流,也可以用来测量直流电流,Arduino也可以用来测量交流电流。
ASC712 Arduino电流传感器电路图
ACS712电流传感器与Arduino接口电路图如下图所示。
组件的要求
电路设计
首先,负载。我使用了一个12V直流电机和一个12V电源。ASC712电流传感器模块板的螺杆端子与电机和电源串联,如图所示。
然后将ASC712板的VCC、GND和OUT连接到Arduino的+5V、GND和A0。
现在,为了查看结果,一个16×2 LCD连接到Arduino。其RS, E, D4-D7引脚连接到Arduino的数字I/O引脚7到2。
A 10KΩ POT接LCD的引脚3,VCC和GND接+5V和GND。
代码
工作
连接并上传代码到Arduino。在代码中,有一个测量电流的小计算。
首先,假设VCC到ASC712的电压为5V,当没有电流流过IP+和IP-端子时,ACS712的VIOUT输出电压为2.5V。这意味着你需要从模拟引脚测量的电压减去2.5V。
现在,为了计算电流,将此值与传感器的灵敏度(5A传感器为185mV/A, 20A传感器为100mV/A, 30A传感器为66mv /A)除以。
下面的代码实现了相同的功能。
adcValue = analogRead (currentPin);
adcVoltage = (adcValue / 1024.0) * 5000;
currentValue = ((adcVoltage - offsetVoltage) / sensitivity);
应用程序
ACS712电流传感器可用于各种电流测量应用,如:
- 逆变器
- smp
- 电池充电器
- 汽车应用,如逆变器,动力转向等。
7反应
这篇文章很有帮助。感谢我们的团队。
什么是5000
5000mV(模拟参考电压-这是默认值)。
基于arduino传感器的Boost型dc - dc转换器(acs712 +传感器电压)
这快把我逼疯了。设置与所示完全一致(不同的LCD显示除外)
已经尝试了三种不同的微处理器,输入从A0到A7(并适当地更改了代码)。
已经尝试了两种不同的ACS712单位。尝试了四个不同的电机和一个LED条作为负载。
净结果:没有任何变化与负载或负载电压。ADCvalue是随机浮动的,绝对不会随负载而改变。我可能收到了两个坏的ACS712板吗?
“传感器的灵敏度(5A传感器为185mV/A, 20A传感器为100mV/A, 5A传感器为66mv /A)”这句话有修正。" 30A 66 mV/A .....
顺便说一句精彩的解释
纠正。
谢谢你!