아두이노, 라즈베리파이, ESP 및 센서류 등 다양한 오픈하드웨어에 사용가능한 전원변환장치 입니다.
11.1~12V 리튬배터리(XT60단자) 호환 및 12V외부전원(아답터, SMPS 등)을 입력하여
3.3V 최대 1A, 5V 최대 5A, 12V(입력사양A) 전압출력이 가능합니다.
12V배터리를 아두이노등의 ~5V입력 하드웨어 스팩으로 확인이 가능하도록
DATA단자 0-5V출력기능을 활용하면 배터리 용량확인이 가능합니다.
(비례 전압으로 오차발생 가능성 있음 , 사용자의 배터리사양에 적합하게 코딩상 최소~최대전압을 수정하여 보완하여야함)
아두이노 코드로 배터리 용량을 확인하는 예시코드입니다.
const int analogPin = A0; // 아날로그 입력 핀
const float referenceVoltage = 5.0; // 참조 전압 (일반적으로 5V)
const int analogMax = 1023; // 아날로그 핀의 최대 값 (10비트 ADC)
const float batteryMaxVoltage = 5.0; // 배터리의 최대 전압 (5V)
const float batteryMinVoltage = 0.0; // 배터리의 최소 전압 (0V)
void setup() {
Serial.begin(9600); // 시리얼 통신 시작
}
void loop() {
int analogValue = analogRead(analogPin); // 아날로그 값 읽기
float voltage = analogValue * (referenceVoltage / analogMax); // 전압으로 변환
// 배터리 잔량 계산
float batteryPercentage = (voltage - batteryMinVoltage) / (batteryMaxVoltage - batteryMinVoltage) * 100;
// 배터리 잔량을 0%와 100% 사이로 제한
if (batteryPercentage > 100) {
batteryPercentage = 100;
} else if (batteryPercentage < 0) {
batteryPercentage = 0;
}
// 결과 출력
Serial.print("Voltage: ");
Serial.print(voltage);
Serial.print(" V, Battery Percentage: ");
Serial.print(batteryPercentage);
Serial.println(" %");
delay(1000); // 1초 대기
}
[제품사이즈]