acs712 电流传感器 测试[禁止转载]-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11358|回复: 4

acs712 电流传感器 测试[禁止转载]

[复制链接]
发表于 2018-3-15 04:49 | 显示全部楼层 |阅读模式
本帖最后由 胡椒就是我 于 2018-3-15 04:58 编辑

最近闲来无事,于是买了一个电流传感器,我这个的测量范围是-30A到+30A

霍尔效应的基本原理我就不多说了,不清楚的可以回去翻一下初中课本。需要注意的一点是,当通电的时候,10位AD端口显示的不是0,而是在511左右变化,也就是说,初始电压不是0V,而是在2.5V 左右上下波动。

因为我买的是-30A 到 30 A ,所以我查了一下datasheet

所以我的灵敏度是0.066A
基本注意事项解释完之后, 下面出代码。
[mw_shl_code=c,true]/*
* Author: Pfeffer
* Gassensor ACS712  Empfindlichkeit:0.066
*/

#define acs712 A0

float vpp = 0.0048828125;
float sensitivity = 0.066;

void setup(){
  pinMode(acs712,INPUT);
  Serial.begin(9600);
}

void loop(){
  int counts = analogRead(acs712)+1;
  float voltage = counts*vpp;
  voltage -=2.5;// take away 2.5 v

  float amperage = voltage/sensitivity;
  Serial.println("amperage: "+String(amperage));
  
  delay(500);
  
  
}[/mw_shl_code]




[size=14.6667px]代码上传后的提示1 :[size=14.6667px]er Sketch verwendet 5858 Bytes [size=14.6667px](18%) des Programmspeicherplatzes.[size=14.6667px] Das Maximum sind 32256 Bytes. Globale Variablen verwenden 208 Bytes (10%) des dynamischen Speichers, 1840 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
结论:  SRAM动态内存还可以优化. 我来再加点料.
程序上传之后,没有通电,串口如下:
通电之后, 用的电池(单位是安培):
[mw_shl_code=c,true]/*
* Author: pfeffer
* Gassensor ACS712  Empfindlichkeit: 0.185V/A
*/

#define acs712 A0

const float  PROGMEM vpp = 0.0048828125;//将常量存放在flash里面
const float  PROGMEM sensitivity = 0.066;

void setup(){
  pinMode(acs712,INPUT);
  Serial.begin(9600);
}

void loop(){
  float counts = analogRead(acs712)+1;
  float voltage = counts*vpp;
  voltage -=2.5;// take away 2.5 v

  float amperage = voltage/sensitivity;
  Serial.print(F("amperage: "));
  //Serial.println(“Taichi-Maker”),这个里面有字符串, 原来这个是存储在SRAM, 但是这样会消耗资源, 那么该怎么办呢? 我们可以该改写 Serial.println(F("amperage: ") ) ;

  Serial.println(String(amperage));
  
  delay(500);
  
  
}[/mw_shl_code]





[size=14.6667px]代码上传后的提示2 :Der Sketch verwendet 5642 Bytes (17%) des Programmspeicherplatzes. Das Maximum sind 32256 Bytes.
Globale Variablen verwenden 198 Bytes (9%) des dynamischen Speichers, 1850 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
结论:  SRAM动态内存明显被优化了.




TIM截图20180314214221.png
TIM截图20180314214412.png
TIM截图20180314214710.png
发表于 2018-5-4 19:44 | 显示全部楼层
请问程序开始的Vpp是什么值啊,萌新有点看不懂
发表于 2018-10-22 12:22 | 显示全部楼层
夏天的风HUST 发表于 2018-5-4 19:44
请问程序开始的Vpp是什么值啊,萌新有点看不懂

Arduino AD精度 5V/1024≈0.005V(0.00488)。
发表于 2019-3-28 06:35 | 显示全部楼层
兄弟不怎么写备注,习惯不好哦
发表于 2019-11-15 20:34 | 显示全部楼层
请问一下楼主能不能发一下实物电路图
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 08:42 , Processed in 0.157052 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表