Arduino 배터리 수준 표시기 회로

문제를 제거하기 위해 도구를 사용해보십시오





이 게시물에서는 Arduino 기반 배터리 잔량 표시기를 구성 할 것입니다. 여기에서 일련의 6 개 LED가 배터리 잔량을 표시합니다. 12V 배터리의 모니터링 및 유지 관리에 관심이 있다면이 회로가 유용 할 수 있습니다.

배터리 수준 모니터링이 중요한 이유

모든 배터리에는 방전에 대한 특정 전압 제한이 있으며, 규정 된 제한을 초과하면 배터리의 수명이 크게 감소합니다.



전자 애호가이기 때문에 우리 모두는 프로토 타입 회로를 테스트하기위한 배터리를 가지고있을 수 있습니다. 실험 중에 프로토 타입에 집중하기 때문에 배터리에 대한 관심이 적습니다.

제안 배터리 충전기 회로는 배터리에 얼마나 많은 에너지가 남아 있는지 보여줍니다.이 회로는 회로를 프로토 타이핑하는 동안 배터리에 연결될 수 있습니다. 이 회로가 배터리 부족을 나타내면 배터리를 충전 할 수 있습니다. 회로에는 6 개의 LED가 있으며 한 번에 하나의 LED가 켜져 배터리의 전압 수준을 나타냅니다.



배터리가 가득 차면 가장 왼쪽에있는 LED가 켜지고 배터리가 방전되었거나 곧 꺼질 경우 가장 오른쪽에있는 LED가 켜집니다.

작동 원리

Arduino 코드를 사용하는 LED 배터리 잔량 표시기

회로는 Arduino가 입력 전압을 샘플링하는 데 도움이되는 전위 분배기 인 시스템의 두뇌 인 Arduino로 구성됩니다. 미리 설정된 저항은 위의 설정을 보정하는 데 사용됩니다. 일련의 6 개의 LED는 배터리 수준을 나타냅니다.

LED 표시기 보정

LED와 배터리 잔량 간의 관계는 다음과 같습니다.

LED1 – 100 % ~ 80 %

LED2 – 80 % ~ 60 %

LED3 – 60 % ~ 40 %

LED4-40 % ~ 20 %

LED5 – 20 % ~ 5 %

LED6-<5% (charge your battery)

Arduino는 12.70V에서 11.90V까지의 좁은 전압 범위를 측정합니다. 완전히 충전 된 배터리는 충전기에서 분리 한 후 12.70V 이상의 전압을 가져야합니다. 12V 밀폐형 납축 배터리의 경우 낮은 배터리 전압이 11.90V 아래로 내려 가지 않아야합니다.

저자의 프로토 타입 :

Arduino 배터리 잔량 표시기 프로토 타입

프로그램 코드 :

//--------Program developed by R.Girish---------//
int analogInput = 0
int f=2
int e=3
int d=4
int c=5
int b=6
int a=7
int s=13
float vout = 0.0
float vin = 0.0
float R1 = 100000
float R2 = 10000
int value = 0
void setup()
{
Serial.begin(9600)
pinMode(analogInput,INPUT)
pinMode(s,OUTPUT)
pinMode(a,OUTPUT)
pinMode(b,OUTPUT)
pinMode(c,OUTPUT)
pinMode(d,OUTPUT)
pinMode(e,OUTPUT)
pinMode(f,OUTPUT)
digitalWrite(s,LOW)
digitalWrite(a,HIGH)
delay(500)
digitalWrite(b,HIGH)
delay(500)
digitalWrite(c,HIGH)
delay(500)
digitalWrite(d,HIGH)
delay(500)
digitalWrite(e,HIGH)
delay(500)
digitalWrite(f,HIGH)
delay(500)
digitalWrite(a,LOW)
digitalWrite(b,LOW)
digitalWrite(c,LOW)
digitalWrite(d,LOW)
digitalWrite(e,LOW)
digitalWrite(f,LOW)
}
void loop()
{
value = analogRead(analogInput)
vout = (value * 5.0) / 1024
vin = vout / (R2/(R1+R2))
Serial.println('Input Voltage = ')
Serial.println(vin)
if(vin>12.46) {digitalWrite(a,HIGH)}
else { digitalWrite(a,LOW)}
if(vin12.28) {digitalWrite(b,HIGH)}
else { digitalWrite(b,LOW)}
if(vin12.12) {digitalWrite(c,HIGH)}
else { digitalWrite(c,LOW)}
if(vin11.98) {digitalWrite(d,HIGH)}
else { digitalWrite(d,LOW)}
if(vin11.90){digitalWrite(e,HIGH)}
else {digitalWrite(e,LOW)}
if(vin<=11.90) {digitalWrite(f,HIGH)}
else {digitalWrite(f,LOW)}
delay(2000)
}
//--------Program developed by R.Girish---------//

회로 설정 방법 :

이 Arduino 6 LED 배터리 잔량 표시기 회로에 대한 보정은 신중하게 수행해야합니다. 올바르게 보정하지 않으면 회로에 배터리의 잘못된 전압 수준이 표시됩니다.

회로를 켜면 LED 테스트로 시작하여 LED가 약간의 지연과 함께 순차적으로 켜집니다. 이는 LED를 배열하는 동안 오류를 디버그하는 데 도움이 될 수 있습니다.

1) 가변 전원 공급 장치의 전압을 정확하게 12.50V로 설정합니다.

2) 직렬 모니터를 엽니 다.

3) 미리 설정된 저항을 시계 방향 또는 시계 반대 방향으로 돌리고 판독 값을 12.50V로 가져옵니다.

4) 이제 가변 전원 공급 장치를 12.00V로 줄이면 직렬 모니터의 판독 값이 동일하거나 12.00V에 매우 가깝게 표시됩니다.

5) 이제 전압을 13.00V로 높이면 직렬 모니터의 판독 값도 동일하거나 매우 가깝게 표시됩니다.

6) 전압을 높이거나 낮출 때 동시에 각 LED가 서로 다른 전압 레벨로 켜지거나 꺼져 야합니다.

위의 단계가 성공적으로 완료되면 배터리 잔량 표시 회로가 의도 한 목적을 충족 할 준비가됩니다.

자동 차단 추가

위에서 설명한 Arduino 배터리 잔량 표시기 회로는 자동 배터리 완전 충전 차단 기능을 포함하여 더욱 향상 될 수 있습니다.

다음 그림은 기존 설계에서이를 구현하는 방법을 보여줍니다.




이전 : 벽시계 용 1.5V 전원 공급 장치 회로 다음 : 재료 저장 레벨 컨트롤러 회로