728x90

 

 

얼마 전에 공개한 아두이노 소스를 객체지향형 언어인 C++로 재코딩했었다.
이유는 테스트 채널 추가를 쉽게 하기 위해서다.

일단 계획한 대로 스케줄링이 잘 돌아가는지는 검증차 진행한 작업이다.
버튼과 홀더를 하나씩 더 추가했고, OLED는 0.96인치를 사용했다.

 

 

+

노파심에서 짚고 넘어가자면 내부저항과 용량 테스트의 신뢰도는 낮은 편이다.
이렇게 얘기하는 이유는 정확한 용량은 필자도 레퍼런스급의 제대로된 방전기가 없어 신뢰도를 말 할 수 없는 데다가,,

만들 때마다 조금씩 수치가 틀어지는 것이 공식은 사용된 케이블과 접촉저항을 고려하지 않은 이론 그 자체이고,
실제는 제작할 때 사용하는 전선과 홀더 등등 각종 선로상에 저항이 존재하고 이 때문에 수치는 틀어진다.

그럼에도 폐기 수준의 배터리는 충분히 가늠할 수 있어 제법 유용하다고 할 수 있겠다.
즉, 정확한 수치의 측정용이라기 보다는 버리기 애매한 배터리 들을 골라서 버릴 수 있도록 도와준다고 생각하면 된다.

 

 

 

회로도

 

기존의 회로도에 배터리와 모스펫 그리고 LED를 그대로 카피해서 추가했다.
측 기존 테스터기에 슬롯을 하나 더 달아 하나의 아두이노로 두 개의 배터리를 동시에 테스트 할 수 있도록 했다.

아두이노 프로 미니 기준 4채널까지는 꾸역꾸역 구현할 수는 있겠으나 복잡한 배선과 문제 발생시 디버깅이 힘들 듯 보여 현재로선 회의적이다.

 

 

 

구현방법

 

스케치 파일작업이다.
채널을 추가하기 위해서는 테스트 객체를 하나씩 더 생성해서 loop()문에 넣어주기만 하면 일단 동작은 한다.

BatteryInResistTest brTestA(1, PIN_VOLTAGE_A, PIN_MOSFET_A, PIN_LED_A, COLLECT_COUNT, RESIST_TEST_TIMER);
BatteryInResistTest brTestB(2, PIN_VOLTAGE_B, PIN_MOSFET_B, PIN_LED_B, COLLECT_COUNT, RESIST_TEST_TIMER);

BatteryCapacityTest bcTestA(1, PIN_VOLTAGE_A, PIN_MOSFET_A, PIN_LED_A, COLLECT_COUNT, CAPA_TEST_TIMER);
BatteryCapacityTest bcTestB(2, PIN_VOLTAGE_B, PIN_MOSFET_B, PIN_LED_B, COLLECT_COUNT, CAPA_TEST_TIMER);

 

 

void loop()
{
  oled.drawInfo(millis());
 
  if (pushButtonA.getCurButtonState() != PRESSED)
  {
    if ( pushButtonA.getCurMode() == MODE_INRESIST_TEST )
          brTestA.doTest(millis());
    else  bcTestA.doTest(millis());
  }

  if (pushButtonB.getCurButtonState() != PRESSED)
  {
    if ( pushButtonB.getCurMode() == MODE_INRESIST_TEST )
          brTestB.doTest(millis());
    else  bcTestB.doTest(millis());
  }


  pushButtonA.checkButton(millis());
  pushButtonB.checkButton(millis());
}

 

다만, 정보를 화면에 표시할 정보가 늘어나면서 OLED 수정이 불가피한데,,
간단하게 화면을 상하 반으로 나누고 상단은 슬롯 1, 하단은 슬롯 2의 정보를 기존과 같은 형식으로 보여주도록 했다.

 

스케치 파일은 이 글의 하단부를 참고!!

 

 

 

 

 

 

 

 

 

위 회로도 그대로 만능기판에 옮겨보았다.

 

 

부하저항은 5W 2옴의 시멘트 저항을 사용했으며,
실제 테스터로 찍어보니 2.6옴이 나와 코드에 반영했다.

2.6옴 기준으로 만충상태에서 1.5A이상의 방전전류가 나와 두 개를 동시에 방전시 열이 상당할 듯 보인다.
따라서 방열판을 달고 미니팬까지 달아주었다.

 

 

 

기본 모드은 내부저항 측정이다.
2채널 표시를 위해 아래와 같이 수정했다.

#1-F: 2.95V 0.13R
#2-F: 3.07V 0.34R

#1, #2는 슬롯번호이고,
뒤에 FFinish이다. 버튼을 누르면 재시작 혹은 S(top)가 토글된다.
2.95V현재 배터리의 전압이고 0.13R 내부저항 값이다.

 

 

슬롯 1번의 배터리를 방전 모드로 전환한 모습이다.
B1 리셋 버튼을 5초 정도 누르면 모드가 변환된다.

 

 

 

 

상단에 LED도 각 채널별로 달아주어서,
채널별로 부하가 걸리는 상태를 LED로 알 수 있게 했다.

LED가 켜져 있으면 모스펫이 켜져서 부하저항과 연결, 방전중이라고 생각하면 된다.

 

 

 

 

 

 

 

 

 

12V 미니팬인데,,
5V 입력 전원에서 바로 연결해주었다.
소음 거의 없고 내부 방열판이 있어 이정도면 충분하지 싶다.

 

 

아두이노 메인전원은 5V DC잭을 사용하도록 했다.

 

 

메인 스위치다.
이번엔 배터리의 마이너스 라인과 입력전원(VCC)의 마이너스 라인을 모두 함께 스위칭해서,,
스위치가 꺼지면 완전하게 기기가 꺼지도록 했다.

이전에는 A0핀으로 들어가는 전류가 아두이노를 구동되어 켜지는 문제점을 이렇게 수정했다.

 

 

 

배터리를 역스왑할 경우 - 이런저런 이유로 - 아두이노가 소손된 경험을 해서,,
스티커로 확실하게 표시를 해두었다.

 

 

왼쪽이 2채널, 오른쪽이 이전에 만든 1채널 테스터기다.
앞서 말했지만, 저항치가 조금씩 차이를 보이지만 그렇다고 큰 수준은 아니라 맘 편하게 '대충'이라는 생각으로 쓴다.

 

 

 

 

 

테스트 영상

 

 

Arduino Sketch Source

Version : 20191028_01

battery_checker_2ch_v20191028_01.ino
다운로드

> 2채널 1차 배포 버전

 

 
 

 

 

테스터기로 시멘트 저항값 측정법 추가

 
1. 테스터기를 저항모드에 두고 테스트 리드끼리 접촉했을 때의 저항을 측정한다.
2. 시멘트 저항의 저항값을 측정한다.
3. 2번 측정값에서 1번 측정값을 뺀다.

 

 

 

아두이노를 하나도 모르는 사람들을 위한 글

 
 
 

관련글

 

리튬이온 18650 배터리 내부저항 및 방전 테스트를 위한 체커 회로도와 아두이노 스케치 파일 공유

일전에 아두이노를 이용하여 18650 배터리의 내부저항을 측정하는 회로도와 스케치파일을 공개했는데,, 그 회로도를 조금 업그레이드 해서 방전기능을 추가했습니다. - 아래 관련글 참고 - 내부저항은 배터리의..

mindeater.tistory.com

 

아두이노 리튬이온 배터리 내부저항 테스터기 만들기 - VCC값을 반영한 아두이노 스케치, 부저 추가

며칠 전 아두이노로 배터리의 내부저항을 측정할 수 있다는 걸 알게 되고 쾌재를 불렀다. 부품도 간단하고 누구나 쉽게 만들 수가 있을 것 같다. 중고 리튬이온 배터리를 많이 사용하는 데 배터리의 상태를 체크..

mindeater.tistory.com

.
.
.

 

N채널 파워모스펫과 비교기를 이용한 50V/20A 방전기 스케치파일

 

비교기(OAMP)와 파워 모스펫을 사용한 아두이노 정전류 방전기 스케치 파일 공유합니다.

앞서 자작 정전류 방전기의 제작기를 올렸습니다. [DIY] 파워모스펫과 비교기(OAMP)를 이용한 500W급 아두이노 정전류 방전기 자작기 요번 알리 세일에 EBD-A20H 방전기를 구입할 까 하다가,,, 이홈메��

mindeater.tistory.com

[DIY] 파워모스펫과 비교기(OAMP)를 이용한 50V/20A급 아두이노 정전류 방전기 자작기

 

[DIY] 파워모스펫과 비교기(OAMP)를 이용한 50V/20A급 아두이노 정전류 방전기 자작기

요번 알리 서머 세일에 많이들 구입하는 EBD-A20H 방전기를 구입하려고 했다가,,, 네이버 이홈메이드 카페에 slotgodori님의 자작 방전기글이 떠올라 공부도 할 겸 직접 만들기로 마음이 바뀌었다. 참

mindeater.tistory.com

CPU쿨러와 인두기 케이스 활용하여 아두이노 모스펫 정전류 배터리 방전기 2nd DIY

 

CPU쿨러와 인두기 케이스 활용하여 아두이노 모스펫 정전류 배터리 방전기 2nd DIY

지난 주 모스펫을 이용한 방전기를 만들고, 카페 회원분에게 테스트 시료인 배터리를 지원 받았다. 원래는 하나 만들고 잘 쓰면 되는데,, 지원까지 받은 입장이라 방전기 하나로 테스트하기엔

mindeater.tistory.com

20A 방전 테스트를 위하여 자작한 아두이노 정전류(CC) 방전기 3번째 - 테스트 성공

 

20A 방전 테스트를 위하여 자작한 아두이노 정전류(CC) 방전기 3번째 - 테스트 성공

배터리 용량테스트를 위한 방전기다. 이번에 3번째로, 이전가지 낫셀 테스트를 좀 빠르게 하고 싶어 제작한 2호기와 1호기 모두 실제 방전은 10A 정도에 머문다. 가장 큰 문제는 방열이다. 몇 번의

mindeater.tistory.com

200W급(?) 아두이노 정전류 방전기 리미티드 에디션!? 제작기 ^^

 

200W급(?) 아두이노 정전류 방전기 리미티드 에디션!? 제작기 ^^

다다익방전기!! 시작한 지는 조금 되었는데 일부 부품이 없어 중단했는데 자꾸 눈에 밟혀 최근에 퇴근이후 조금씩 짬을 낸 결과다.. 마음에 들어 몇 개 사둔 하코인두기 케이스와 CPU팬을 이용한

mindeater.tistory.com

 

728x90

HI!! 궁금한 점은 편하게 댓글로 문의주세요~

  1. 2020.10.29 15:03  address  modify / delete  reply

    비밀댓글입니다

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.10.29 15:12 신고  address  modify / delete

      이 회로도는 낫셀(4.2V)을 간단하게 체크하기 위함입니다.

      그 이상은 조금 복잡해지는데
      https://mindeater.tistory.com/2428
      이 글을 참고하시면 될 듯 싶네요.

      간단하게 꾸미려면 저항 두 개를 사용하여 전압분배형식으로 5V 이하로 만든 이후에 분배비를 적용하면 3S도 측정가능합니다.

      제작 의뢰는 받지 않고, 소스만 공유한 상태이며 이미 다른 분이 제작하여 PCB를 분양하고 있습니다.
      네이버에서 이홈메이드 클럽에 "이훈섭"님의 글을 참고하시면 구하실 수 있습니다.
      현재 6셀을 동시에 테스트할 수 있는 걸 배포하고 계시네요.

      3. 배터리 내부저항은 측정 장비에 따라 매우 민감하고 매우 고가입니다.
      이유는 이론은 쉽지만 회로를 꾸미면서 사용되는 배선 그리고 단자등에서 저항이 끼기 때문입니다.
      그래서 정확한 수치를 얻기보다는 동일 배터리간 눈에 띄게 차이를 보인 배터리를 선별하는데는 도움을 줄 수 있기 때문입니다.

      그래서 내부저항값보다는 방전테스트로 배터리의 상태를 체크하시는 것이 더 좋습니다.

      3S는 EBG-A20H로 손쉽게 측정이 가능한데...
      https://mindeater.tistory.com/2440
      이 글을 참고하시면 됩니다.