
标准版
基于ACS712的20A大电流AC/DC电流检测模块
832
0
0
1
简介
本项目将介绍一种基于 Allegro 公司的 ACS712 霍尔电流传感器芯片、支持 IIC 连接的 1602 液晶显示模块和 Arduino Uno 开发板的大电流传感系统,电路图为电流传感器模块。
简介:本项目将介绍一种基于 Allegro 公司的 ACS712 霍尔电流传感器芯片、支持 IIC 连接的 1602 液晶显示模块和 Arduino Uno 开发板的大电流传感系统,电路图为电流传感器模块。开源协议
:GPL 3.0
(未经作者授权,禁止转载)创建时间:2023-12-09 04:39:23更新时间:2024-07-11 08:14:21
描述
//引入依赖,注意安装液晶屏I2C库
#include
#include
//初始化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秒
}
}
设计图
原理图
PCB
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | 100nF | C1 | C1206 | 1 |
2 | 1nF | C2 | C0603 | 1 |
3 | PZ254V-11-03P_C2937625 | H1 | HDR-TH_3P-P2.54-V-M | 1 |
4 | FC-A2012BK-470H2 | LED1 | LED0805-R-RD | 1 |
5 | WJ128V-5.0-2P | P1 | CONN-TH_2P-P5.00_WJ128V-5.0-2P | 1 |

添加到专辑
0
0
分享
侵权投诉
评论