임베디드 보드/아두이노

아두이노 배터리량 체크

ZEROWIN.TECH 2020. 8. 11. 10:40
728x90

아두이노 어레이키트를 이용하여 전압/ 퍼센트를 표시합니다.

 

아두이노를 이용하여 배터리 전압 측정으로 배터리 잔량을 체크합니다.

프로그래밍

보드의 전압을 체크하여 LCD 에 표시합니다.

위 표를 이용하여 전압에 따른 퍼센트를 표시합니다.

float arduVolt = 4.86;// 아두이노 전압 멀티메터 실측치
float r_1K = 975.0;//1K옴 저항 실측치
float r_3K = 3265.0;//1K옴 저항 실측치
float r_4K = (r_1K + r_3K+ 100); // 4270.0;// 총 저항

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD I2C 주소를설정한다. 16칸2줄LCD 사용
// 0x27 대신 스캐닝 된 주소를 넣는다.

void setup() {

  lcd.init();
  lcd.backlight();                // 백라이트를켠다. (lcd.noBacklight() 는 백라이트 끈다.)
  lcd.write(12);
  
  // put your setup code here, to run once:
  Serial.begin(9600);
}

#define MAX_NUM_BATTERY_PERCENT_NUM 10
float battery_voltage_percent_array[MAX_NUM_BATTERY_PERCENT_NUM] =
{
  11.51, // < 10
  11.66, // < 20
  11.81, // < 30
  11.96, // < 40
  12.10, // < 50
  12.24, // < 60
  12.37, // < 70
  12.50, // < 80
  12.62, // < 90
  12.73, // < 100
};

void loop() {
  
  lcd.clear(); // 화면을 지운다.
  
  // put your main code here, to run repeatedly:
  int v_1k = analogRead(A0);// 0-1023
  Serial.print(v_1k); Serial.print(',');
  float volt_1k = arduVolt * v_1k /(1024);//A0에서의 전압 환산
  Serial.print(volt_1k); Serial.print(',');
  float i = volt_1k/r_1K;//1K옴 저항에서 전류 계산
  float volt_4k = i * r_4K;//옴 법칙에 의해 배터리 전압 계산
  Serial.print(volt_4k); Serial.print(',');

  char temp[32] = { 0x00, };
  sprintf(temp, "VOLTAGE %02d.%02d V", 
    (int)volt_4k, (int)(volt_4k*100)%100);

  lcd.setCursor(0, 0);
  lcd.print(temp);        // 읽은 문자를 LCD에 써라.

  float percent = 0;
  for(int i = 0; i < MAX_NUM_BATTERY_PERCENT_NUM; i++)
  {
    if(battery_voltage_percent_array[i] < volt_4k)
    {
      percent = (i + 1) * 10;
    }
  }
  
  Serial.print(percent); Serial.println("%");

  sprintf(temp, "BATTERY %02d.%02d %%", 
    (int)percent, (int)(percent*100)%100);

  lcd.setCursor(0, 1);
  lcd.print(temp);        // 읽은 문자를 LCD에 써라.
  
  
  delay(1 * 1000);
}

 

 

https://steemit.com/kr/@codingart/22

참조사이트

 

https://steemit.com/kr/@codingart/22

 

초보자를 위한 아두이노 코딩-22: “코딩에 의한 배터리 전압 정밀 측정” — Steemit

자동차에 사용되는 납배터리의 표준 전압은 12.6V이며 또는 12V로 표현하기도 한다. 엔진 시동을 위한 크랭킹 시에 순간적인 전압 강하가 일어나며 12V 기준 20% 즉 9.6V 이하로 강하 여부를 측정하여

steemit.com

 

참조사이트

배터리용량과 전압과의 상관관계

https://joonnoh.net/2013/02/11/%EC%9E%90%EB%8F%99%EC%B0%A8%EC%9A%A9-%EB%B0%B0%ED%84%B0%EB%A6%AC%EC%99%80-%EB%B3%B4%EC%A1%B0%EB%B0%B0%ED%84%B0%EB%A6%AC%EC%97%90-%EB%8C%80%ED%95%9C-%EC%83%81%EC%8B%9D%EC%A0%95%EB%A6%AC/

 

자동차용 배터리와 보조배터리에 대한 상식정리..

리튬인산철(LiFe) 보조 배터리를 처음 제작하게 된 동기가 12.8V LiFe배터리가 12V 자동차 시동배터리(SLA)와 충전전압이 같았기 때문입니다. Pb 배터리 (Sealed Lead Acid) : 셀당 2.0V x 6 = 12V , 충전전압: = 14

joonnoh.net

납축전지에 관하여 자세하게 설명되어 있습니다.

https://m.blog.naver.com/jhkim6363/220322893381

 

납 축전지(Lead Acid Battery) 이야기

납 축전지(Lead Acid Battery) 이야기 >> 앞서 '충전용 배터리' 와 '충전기' 이야기를 하면서 '납...

blog.naver.com

 

[Arduino Maker] 아두이노 배터리 잔량 측정 표시기 샘플(Arduino battery check/Arduino project)

https://www.youtube.com/watch?v=LBM4gkWrU3U

건전지 배터리 용량 체크 https://www.youtube.com/watch?v=AA17Le0nPsA