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://m.blog.naver.com/jhkim6363/220322893381
[Arduino Maker] 아두이노 배터리 잔량 측정 표시기 샘플(Arduino battery check/Arduino project)
https://www.youtube.com/watch?v=LBM4gkWrU3U
건전지 배터리 용량 체크 https://www.youtube.com/watch?v=AA17Le0nPsA
'임베디드 보드 > 아두이노' 카테고리의 다른 글
전압/전류 Data 전송 From Arduino to Node-RED (0) | 2020.08.13 |
---|---|
아두이노 전류량/ 전압 체크 (1) | 2020.08.12 |
디지털 차압 게이지 - 아두이노 측정 (0) | 2020.07.31 |
TF-Luna ToF Ranging LiDAR -8m 거리 측정 (0) | 2020.07.30 |
아두이노 메가 + WIFI모듈 ESP8266 + 팬모터 송풍기 제어 (0) | 2020.07.13 |