电流 - 检测:20A 通道数:1 输出:比率,电压 灵敏度:100mV/A 线性度:±1.5% 精度:±1.5% 响应时间:5μs 电流 - 电源(最大值):13mA
const int analogInPin = A0;
// 样本数量:样本越多出来的数值越平均,但是要注意缓冲区溢出
const int avgSamples = 10;
int sensorValue = 0;
float sensitivity = 100.0 / 500.0; //每500mV 100mA = 0.2
float Vref = 2500; // 没电流时模块io的输出电压: ~ 2500mV or 2.5V
void setup() {
//初始化串口通信:
Serial.begin(9600);
}
void loop() {
// read the analog in value:
for (int i = 0; i < avgSamples; i++)
{
sensorValue += analogRead(analogInPin);
delay(2);// 等待2微秒,缓冲时间
}
sensorValue = sensorValue / avgSamples;
// 内置ADC精度是10位 -> 2^10 = 1024 -> 5V / 1024 ~= 4.88mV
float voltage = 4.88 * sensorValue;
// 计算实际电流 (mA)
float current = (voltage - Vref) * sensitivity;
Serial.print(voltage); //打印电压
Serial.print("mV");
Serial.print(current); //打印电流
Serial.print("mA");
Serial.print("
");
sensorValue = 0; // 重置读数
}
!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。
欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。
EEWorld Datasheet 技术支持