BASIC4MCU | 질문게시판 | ESP32-C3 리튬폴리머 ADC 전압 체크 관련 문의
페이지 정보
작성자 cansad 작성일2022-06-30 11:32 조회455회 댓글3건본문
안녕하세요
esp32로 리튬 폴리머 배터리 잔여량 체크를 하려고 ADC 단자에 연결해봤습니다.
배터리 + 는 A4 에 - 는 GND 에 연결해 놓고 일단 값부터 보려고 터미널에 띄우고 있는데
아무것도 연결하지 않아도 A4 단자에서 전압이 자꾸 올라왔다 내려갔다 하네요
개인적인 추즉으로는,,, 다른 ADC 단자에서 센서 값을 주기적으로 받고 있는데 이게 영향을 준것인지,,
그래서 배터리를 연결하게 되면 정확한 잔량 값을 알기 어려울 것 같더라구요
잘못 알고 있거나 놓치고 있는 부분이 있는지만 코멘트 부탁드려요! 숙제는 제가 하겠습니다!!!
배터리 코드부분 --------------------------------------------------------------------------------
void checkBT(){
int val = analogRead(A4);
Serial.print(val);
Serial.print(",Volt Velue : ");
int volt = map(val,0,4095,0,3600);
Serial.print(volt);
Serial.println("mV");
delay(1000);
}
터미널 체크 부분 --------------------------------------------------------------------------------
598,Volt Value : 525mV
2318,Volt Value : 2037mV2279,Volt Value : 2003mV526,Volt Value : 462mV ....
댓글 3
조회수 455master님의 댓글
master 작성일
3.3V 보드라면 3.7V 배터리를 직접연결하면 고장 납니다.
회로에 대한 언급이 없으니 회로에 대한 조언은 패스하고
//
void checkBT(){
int val = analogRead(A4);
현재 1회 입력받고 있는데요
다른 채널의 영향을 받고 있다면 몇번 읽으면 됩니다.
void checkBT(){
int val = analogRead(A4);
val = analogRead(A4);
val = analogRead(A4);
3회 읽으면 충분히 타 채널의 영향이 없어질겁니다.(보통은 2회만 읽어도 영향받지 않음)
//
int volt = map(val,0,4095,0,3600);
전압 변환이 맞을 것으로 생각되지 않습니다.
회로를 첨부하면 체크 해드리죠
master님의 댓글
master 작성일
https://www.digikey.kr/ko/resources/conversion-calculators/conversion-calculator-voltage-divider
전압분배 계산기로 계산 해보세요
1K-3.6K 저항을 사용해서 전압 분배하면
만충전 전압 4.2V에서 3.2869565217V를 얻습니다.
좀 더 안전하게 1.2K-3.6K 저항을 사용해서 전압 분배하면
만충전 전압 4.2V에서 3.15V를 얻습니다.
4.4V에서 ADC입력은 4095입니다.
int volt = map(val,0,4095,0,4400);
master님의 댓글
master 작성일
void checkBT(){
long sum=0;
int val=analogRead(A4);
val=analogRead(A4);
for(int i=0;i<100;i++){ sum+=analogRead(A4); }
val=sum/100;
int volt=map(val,0,4095,0,4400);
Serial.print(val); Serial.print(",Volt Velue : "); Serial.print(volt); Serial.println("mV");
delay(1000);
}
평균값을 구하면 흔들림을 줄일 수 있습니다.