
标准版
基于ACS712的20A大电流AC/DC电流检测模块
1.9k
0
0
2
简介
本项目将介绍一种基于 Allegro 公司的 ACS712 霍尔电流传感器芯片、支持 IIC 连接的 1602 液晶显示模块和 Arduino Uno 开发板的大电流传感系统,电路图为电流传感器模块。
简介:本项目将介绍一种基于 Allegro 公司的 ACS712 霍尔电流传感器芯片、支持 IIC 连接的 1602 液晶显示模块和 Arduino Uno 开发板的大电流传感系统,电路图为电流传感器模块。开源协议
:GPL 3.0
(未经作者授权,禁止转载)创建时间:2023-12-09 12:39:23更新时间:2024-07-11 16:14:21
描述

//引入依赖,注意安装液晶屏I2C库
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//初始化LCD1602液晶屏,地址为0x27,16列2行
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600); //Start Serial Monitor to display current read value on Serial monitor
lcd.init(); //初始化液晶屏
lcd.backlight(); //打开背光
}
void loop() {
unsigned int x = 0;
float AcsValue = 0.0, Samples = 0.0, AvgAcs = 0.0, AcsValueF = 0.0;
for (int x = 0; x < 150; x++) { //Get 150 samples
AcsValue = analogRead(A0); //Read current sensor values
Samples = Samples + AcsValue; //Add samples together
delay (3); // let ADC settle before next sample 3ms
}
AvgAcs = Samples / 150.0; //Taking Average of Samples
AcsValueF = (2.5 - (AvgAcs * (5.0 / 1024.0)) ) / 0.100; //Calculate the current value in Ampere
Serial.print(AcsValueF, 3); //Print the read current on Serial monitor with 3 decimal places
delay(50);
//显示电流值在液晶屏第一行
lcd.setCursor(0, 0); //设置光标位置
lcd.print("Current: "); //打印前缀
lcd.print(AcsValueF, 3); //打印电流值,保留3位小数
lcd.print(" A"); //打印单位
//显示报警范围在液晶屏第二行
lcd.setCursor(0, 1); //设置光标位置
lcd.print("AlarmRange:0-5 A"); //打印报警范围
//如果电流值超过5A,让液晶屏闪烁
if (AcsValueF > 5.0 || AcsValueF < 0.0) {
lcd.noBacklight(); //关闭背光
delay(500); //延时0.5秒
lcd.backlight(); //打开背光
delay(500); //延时0.5秒
}
}
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程添加到专辑
0
0
分享
侵权投诉
工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论