728x90

 

아두이노 프로미니/나노를 기반으로 제작했으며 사용된 소스코드인 스케치파일을 공유하고 조작이나 화면 설명을 추가합니다.

 

 

회로도

초기 버전입니다.

 

↓↓↓

 

 

 

수정안 #1
UA741CP 버전

 

정밀도와 회로 보호를 위해 수정된 안입니다.
도움을 주신 이홈메이드클럽의 "초보의 비애"님 그리고 "slotgodoril"님 감사드립니다!!!!

수정된 내용은 ADS1115 보호차원에서 A1,A2핀에 10K 저항을 달았으며
배터리 기준 GND를 ADS에 릴레이 형식이 아닌 직접 점퍼를 날려 연결해주었습니다.

측정할 배터리의 기준 그라운드를 ADC1115의 그라운드와 맞춰주지 않으면 배터리를 연결하지 않았는데도 헛전압(?)이 발생할 수 있습니다.

 

 

↓↓↓

 

수정안 #2
LM358P(N) 버전

 

 

수원에 계시는 달다님과 무선조정님의 PCB를 참고하여 보호 소자를 수정한 회로도입니다.
결과치는 크게 차이가 없고 방전시 모스펫 소손으로 션트 파괴가 될 때 아두이노를 비롯 각 소자를 보호하기 위한 장치입니다.

 

1.
비교 테스트를 위해 LM358P(N) 을 사용했습니다.
UA741CP와 크게 차이 없습니다.

2.
보다 안정적인 전압 공급을 위해 LM7805 앞뒤단에 작은 커패시티를 추가했습니다.

3.
모스펫 S, D사이에 스너버 회로를 추가했습니다.
(
션트 전압이 낮은 관계로 서지로인한 소손은 드물다고 판단해서추가했다가 제거함)

4.
방전용 모스펫은 IRFP250M 이상을 추천합니다.
IRFP260M 혹은 그 이상의 전류를 커버할 수 있는 펫을 사용하는 것을 추첩합니다.
다만 펫을 선택할 때 Rds값이 높은 것이 방전용으로 좋습니다.

5.
방전 전류 플러스 전선 중간에 25~30A의 퓨즈를 달아주는 것이 좋습니다.
모스펫이 소손되면 도통상태가 되어 배터리 쇼트로 폭발로 이어질 수 있습니다.

 

 

PWM FAN 적용
FAN1에 선택적으로 적용가능하며 배선도는 다음과 같습니다.

PWM 적용방법은 이홈메이드 클럽의 "무선조정"님께서 의견주시고 공유해주셨습니다.
감사합니다.

참고로 NPN TR(BJT)는 칩마다 핀 넘버가 다 다른 듯 싶습니다.
데이타 시트를 참고해서 B,C,E 위치를 확인하셔야 합니다.

 
 

 

N채널 파워 모스펫 IRP250M 2개 이상... 대전력용은 4개 이상 추천
40W 이상 0.1Ω~022Ω 션트저항 1개

아두이노프로 미니 또는 나노 1개
LCD2004 I2C버전 또는 LCD1602 I2C(추천) 1개

ADS1115 1개
DAC MCP4725 1개
OAMP(UA741CP) LM358P 1개
정전압 7805CT 1개
25V 220uF
2개
NTC 10K
1개
터리 엔코더(Rotary Encoder) 1개
수동 혹은 능동 Buzzer 1개

저항 : 1KΩ 5개, 10KΩ 4개, 100KΩ 1개
104 (0.1uF) 세라믹커패시터 1개
Green LED 1개
Red LED 1개
팬 컨트롤용 N채널 모스펫 2개
혹은 NPN 트랜지스터 한개와 4.7K옴 저항 1개

대형 방열판 1개이상
CPU팬 1개 (폐 컴퓨터에서 적출)
케이스 1개 (구입)

정전압레귤레이터와 N채널 모스펫 용 미니 방열판 1~2개 (옵션, 폐기판에서 적출)
DC잭 1개
바나나잭 2개(Red, Black)
만능기판 1개

12V 아답터 모듈 (크기상 1A~2A가 적당, 적출품)
220V 파워 소켓 (아답터 혹은 PC파워에서 적출품)

 

그 밖에 만능기판 지지대와 나사, 전선 등등...

 

 

이 회로도의 원리와 이해는 원작자님 slotgodori님의 글을 기본으로 업그레이드 되었습니다.
참고하세요.

 

[ 방전기 ] 왕초보의 좌충우돌 .... 자작방전기 제작기 V6

​[ 방전기 ] 왕초보의 좌충우돌 ... 자작방전기 제작기 V6. 왕초보의 자작방전기 V 6 ( 여섯번째 ) 왕초...

blog.naver.com

 

간단(?)하게 원리를 설명하면,,
파워 모스펫 IRFP250N이 방전을 담당하고 비교기인 OAMP(UA741CP)가 설정된 전류만 흐르도록 컨트롤 하는 역할을 담당합니다.

방전 전류는 가변저항 대신 DAC 모듈인 MCP4725 이용 프로그래밍을 통해 설정하는데 쉽게 말하면 노브를 돌리면 저항이 가변하여 반응하는 아날로그 방식이 아니라 숫자(Digital)를 설정하면 그 숫자에 맵핑된 전압이 출력되는 방식입니다.

정교한 컨트롤을 위하여 ADS1115를 사용하며, 배터리와 션트(Shunt) 그리고 MCP4725의 출력 전압을 15비트의 분해능으로 데이타로 검출합니다.

그 밖의 소자들은 이러한 동작이 매끄럽게 진행될 수 있거나 소자의 소손을 방지 혹은 가시-가청 정보를 위한 부품들입니다.

정전류는 비교기를 이용하여 구현됩니다.
V=IR 공식에서 R은 션트 저항값과 전류 I값을 곱한 전압을 OAMP에 입력(IN+)
합니다.

처음 비교기 IN+에 전압이 공급되면 션트 전압(IN-)보다 크니 OUT 출력, 결과 IRFP250N의 게이트가 열려 방전이 시작됩니다.

시간이 지나면 션트전압이 상승해 IN-에서 IN+보다 커지면 OUT 출력을 끊어버립니다. 그러면 모스펫 게이트가 닫혀 방전 중단,  방전이 중단되면 전압이 다시 떨어지고 다시 게이트가 오픈, 이러한 싸이클을 매우 빠른 시간에 반복하게 되는데,, 결과 설정한 전류로 지속적인 방전이 이루어지게 됩니다.

이러한 동작을 기본으로 정확한 데이타의 산출과 조작은 프로그래밍의 몫입니다.

참고로 0.1옴과 0.2옴의 션트 저항을 사용하여 검증했습니다.
0.2옴 이상 사용시 전압 분해능이 커져 전류 조절에 좀 더 정교한 컨트롤이 가능하지만, 션트의 전력소비가 그 만큼 증가하는 점도 고려해야합니다. 반대로 0.1옴 이하의 저항은 같은 이유로 정전류를 컨트롤이 어렵습니다.

 

이후 조작이나 설명은 평서체로 되어 있으니 참고 바랍니다!!

 

 


 

 

조작방법

 

엔코더 조작 설명

1.일반(NORMAL) 대기 모드
- 2~3번 연속 오른쪽으로 돌리면 환경설정 모드로 진입
- 3초~10초 사이 누르면 방전 시작
- 대기 상태에서 클릭시 배터리 스캔을 재시작


2. 환경설정(CONFIG) 모드 :
- 한 번 누를 때마다 설정항목 순환
- 3초 정도 누르면 설정값을 저장하고 일반모드로 빠져나옴
- 10초 이상 눌렀다 떼면 모든 설정값이 초기화


3. 방전(DCG) 모드 :
- 한 번 누를 때마다 멈춤(H)/시작(D)이 전환됨
- 엔코더를 오른쪽으로 회전시 SHUNT와 DAC 전압을 모니터링 할 수 있는 디버그 화면으로 전환됨 (★★★)
- 엔코더를 왼쪽으로 3회 이상 회전시 방전 전류/전력 수정모드로 진입. 수정 후 엔코더 클릭시 방전모드로 빠져나옴

- 3초 이상 누르면 강제 종료, LCD 방전 시간 뒤에 'F'  표시가 나오고 이 때 한 번 더 클릭하면 대기화면으로 나옴
  > 종류 이후에도 3초 이상 누르면 강제 재시작

 

 

 

설정 항목

 

1. 방전 설정

대기모드에서 엔코더를 오른쪽으로 2~3회 턴을 하면 설정모드로 진입

End-Mode :

CC : 정전류 방전으로 Cut-Off 전압에 이르면 바로 종료됨
CV : 정전류로 방전하다 Cut-Off 전압 근처에서 Dac Power를 조정하여 좀 더 방전을 시도함
CP : 정전력으로 방전함 ( 전압이 낮아지면 전류가 상승 ) V3.5 이상
KILL : Cut-Off전압을 무시하고 0V까지 방전시킴 - 배터리 폐기시 사용

Cut-Off : 배터리의 방전 종료 전압 설정(보통 리튬이온의 종지전압인 2.7V 를 설정)
Cut-mAh : 방전량을 체크하야 설정값에 이르면 종료 (iMax b6의 Storage 모드와 비슷한 기능)
Current : CC/KILL 모드에서 방전 전류량을 설정. (0.1~ 20A까지 프로그램되어 있음)
Watt : CP 모드에서 방전 전력 (V3.5)

 

 

2. V Distribution-Ratio

처음 방전기를 자작하면 가장 먼저 해주어야 할 작업이다.

아두이노 동작 전압인 5V로 낮추기 위해 전압분배를 사용한다. 회로도의 R1, R2의 저항값에 따라 분배비가 결정되고 이를 토대로 아두이노에서 전압을 측정하게 된다.

회로도 기준 R1은 10KΩ, R2는 100KΩ를 사용시, Batt-REG값은 (100+10) / 10 = 11 이 Batt-REG 값의 기준점이 된다.
그런데 모든 저항은 - 신뢰도의 차이는 있지만 - 오차가 있기때문에 이 화면에서 그 오차를 보상해 정확한 전압 검출이 가능하다.


참고로 사진은 100K 저항이 없어 R2 저항을 125K를 사용해서 13.005의 값이 나왔다.
실제로 배터리가 연결되면 아래에 실제 전압이 표시되므로 따로 테스터기로 측정된 값과 같은 값으로 맞춰주어야 한다.

 

 

3. Drop V-Rate & Mod A-Rate

실제 방전시 전압과 전류량을 조정하는 기능으로 조정을 위해서는 신뢰할만한 테스터기가 추가로 필요하다.
실제로 배터리를 연결해서 진행하는 작업이다.

이 모드로 진입시 설정된 방전전류값으로 실제 방전이 이루어지니 주의를 요한다!!

Drop V-Rate
이 값을 조정하여 하단 왼쪽 전압값과 테스터기로 측정한 값을 일치시킨다.

Mod A-Rate
션트 전압에 이 값을 보상해서 보다 정확한 전류량을 측정할 수 있다.

이 작업까지 마치면 실제 방전시 테스터기와 대략 일치함을 볼 수 있다.

 

 

 

3. Etc Setup

 

Fan Ctrl:  팬 구동 온도를 설정한다.
방열판의 성능이 좋다면
35~40도 정도에서 1A 정도의 방전시 팬 구동이 없어 조용한 작업이 가능하다.
이와는 상관없이 방전 모스펫 온도가 250도가 되면 BEEP음이 계속 울리고 온도가 -WARN- 표시와 함께 번갈아 깜빡이도록 코딩되어 있다.

Auto-Stop: 설정한 시간 이후 자동으로 종료하는 기능이다.
Auto-Hold: 설정한 시간 이후 자동으로 멈춘다. 이후 사용자가 엔코더를 누르면 재시작 혹은 종료할 수 있다.

Lcd Light: LCD의 백라이트를 컨트롤 하는 기능이다. LCD_BACKLIGHT_ON_TIME Default로 5분 이후 꺼지도록 되어 있고 엔코더를 움직이면 다시 켜진다.
Beep : 시스템 비프음 ON/OFF

- Ver 3.4 이상 -

Auto InR : 배터리 삽입시 자동으로 내부저항 측정한다. (No시 엔코더를 클릭할 때만 측정, 회로보호 목적)
Skip Adj : 방전시작시 CC모드에서 정전류를 수치를 맞추고 시작할지의 여부
Time Tune : 아두이노 타임인터럽트 오차를 보정할지 여부 (시험목적)
mAs Tune : 방전량 튜닝, 시간까지 보상함
Dcg Max Pwr : 방전기의 최대 전력을 설정한다. 최대값은 스케치에서 하드코딩되어 있고 그 범위내에서 조정이 가능하다.

 

 

 

 

방전 화면

배터리를 연결하면 Scan Battery가 동작하고 InR(내부저항)을 측정한다.
이후 엔코더를 한 번 눌러 수동으로 내부저항 측정을 할 수 있다.

InR : 배터리 내부저항값
V: 측정된 배터리 전압
A: 배터리 내부저항 측정시 흐르는 전류값
Dac : Dac에서 송출하는 전압 (디버깅용)
Snt : 션트 뒷단에서 측정된 전압 (디버깅용)

 

 

엔코더를 3초 정도 눌렀다 떼면 방전모드로 진입한다.
이때 설정된 방전전류값과 실측한 값을 맞추는 단계를 거치게 되는데 "Adjusting..."이 깜빡이고 Amp 값이 조정되는 것을 볼 수 있다.

 

 

Adjusting이 완료되면 자동으로 방전이 시작된다.
상단에 설정된 전류값이 보이고

1A : 설정된 전류값
    > 소수점 단위는 .9 와 같이 0이 생략되어 표기 된다.
00:00:30D : 방전 시간과 상태 플래그
    > 상태플래그는 "D, H, F"가 있으며 각각 방전(Discharging), 멈춤(Hold), 종료(Finish)를 나타낸다.
28.7℃ : 방전 모스펫  온도
0.0Wh : 누적 방전 전력량
2mAh :
방전 용량
V : 배터리 전압
A : 방전 전류값
Cut : Cut-Off 전압
Mod : 방전 모드 (CV, CC, KILL)

 

 

다이얼을 한번 돌릴 때마다 Dac/Snt 값을 볼 수 있는 화면으로 바뀐다. 

H(old) 화면과 F(inish) 화면이다.
엔코더를 한 번 누를 때마다 멈춤과 시작을 전환되며, 길게 누르면 종료, 종료상태에서 한 번 더 누르면 대기모드로 빠져 나온다.

 

 


 

 

 

 

스케치 다운로드
- Download Arduino Sketch File -

추가하고 싶은 기능이 있으면 언제든지 댓글로 의견 남겨주시면 반영하겠습니다.
다만, 아두이노프로 미니의 SRAM이 무척 작습니다. 최대한 메모리 튜닝을 거쳐 이것저것 기능을 넣어보겠지만 상황에 따라 힘들 수도 있습니다.\

 

 

Version 3.9 (2021-01-12!!)

-. LCD1602 메뉴 정리
-. LCD2004 메뉴 정리
-. V3.8에서 내부저항 테스트 전류값 설정값으로 적용된 것 되돌림

 

BattDCG_M.E.HooneyPaPa_V3.9.ino
0.08MB

 

.
.
.

 

Version 3.8 (2021-01-07!!)

> 조작성과 사소한 문제점들을 정리한 버전으로 마이너 업데이트는 이 버전이 마지막이 아닐까 싶습니다.

-. LCD1602 버전 정리
-. 방전 시작 후 첫번째 전압 체크시 Drop 전류 보상이 없어 저전압 배터리의 경우 종료될 수 있는 문제 수정
-. 방전중 전류조정모드에서 엔코더를 길레 눌렀을 경우 방전 종료되는 문제
-. 방전중 전류조정모드 진입시 좀 더 쉽게 함(4Step ccw)
-. 설정 초기화 시간을 지금 보다 두 배로 길게(간혹 환경설정후 저장시 초기화되는 걸 막기 위함)

-  삭제 -

 

 

Version 3.7 (2021-01-02)

-. CP 모드 설정값이 저장 안되는 문제점 수정
-. CP 모드에서 방전중 전력값 수정시 수렴 속도 조정
-. KILL 모드 저전압 배터리 시작안되는 버그 수정
-. 방전중 전류조절 모드 진입시 다이얼 카운트를 반으로 줄임

BattDCG_M.E.HooneyPaPa_V3.7.ino
0.08MB

 

 

Version 3.6 (2020-12-29!!)

-. FET보호회로 대응, D11과 D10번 연동
-. 스케치파일 101% 초과로 인하여 TimeTune과 Beep/LCD Ctrl을 없앰 (LCD2004 Only)

LCD2004는 스케치파일 크기로 인하여 3가지 옵션 BEEP/LCD/TIME TUNE 을 비활성화 했습니다. LCD1602는 모든 기능을 사용할 수 있습니다.

-- 삭제(CP 모드 버그버전) --

 

 

Version 3.5 (2020-12-26!!)
-. D10/D11번 출력 FET 보호회로 대응코두 추가

-. CV모드 대신 CP(Constant Power) 모드 채용
-. 100V 이상에서 전압 표시 깨지는 현상
-. CP 모드 화면 조정(2020-12-26)

-- 삭제(CP 모드 버그버전) --

 

 

Version 3.4 (2020-10-26)
-. FAN1에 PWM 팬을 적용하고 온도에 따라 속도적응
 
//#define FAN_CTRL_1_PWM        1    /* ★★★★, V3.4, PWM Fan을 사용할 경우 활성화 */

  //#define FAN_CTRL_2                1     /* ★★★★, V3.4, Fan2를 사용할 경우 활성화 */
PWM핀을 사용하려면  FAN_CTRL_1_PWM의 주석"//"을 제거하면 됨

## Time Tune 항목을 YES로 설정하고 사용하세요. 다음 릴리즈에서 해당 메뉴 삭제예정입니다.!!

BattDCG_M.E.HooneyPaPa_V3.4.ino
다운로드

 

 

Version 3.3 (2020-10-24)
-. 방전량 최대치 설정 기능 및 체크 기능, Default 150W Max500W

-. Skip ADJ 모드에서 방전 속도 조절
-. 대기모드에서 현재 설정 전류 표기
-. Drop A값 조정시 오른쪽으로 턴시 증가하도록 수정시
-. 스케치 사이즈가 프로그램 공간을 초과해서 일부 코드 튜닝
-. FAN2 Define으로 활성화할 수 있도록 함 (Default Disable)
-. 따로 파일을 선택해서 추가해야 했던 Rotary.h 라이브러리를 코드에 포함

BattDCG_M.E.HooneyPaPa_V3.3.ino
다운로드

 

LCD1602 버전 조작화면

 

LCD2004버전 조작화면

 

 

Version 3.2 (2020-10-18) - TEST Version

-. 50V 이상의 팩을 테스트하기 위해 전압분배비 R1값 Define 처리
-. 배터리 연결시 내부저항 계산을 옵션으로 처리함 (환경설정)
-. 방전시작시 ADJ 단계를 Skip 할 수 있도록 함 -> 설정 전류까지 천천히 상승함
-. 방전시 디버그 모드에서 Dac 전압대신 Watt 표시
-. 내부저항 체크시 방전전류를 1.5A로 계산
-. Time Tune 설정항목에서 아두이노 타임 적용을 선택할 수 있도록 함

- 삭 제 -

 

Version 3.1 (2020-10-14)
-. 방전시 홀딩후 재시작 오류 수정

-. 전압분배비에 따라 유연하게 적용할 수 있도록 BattReg 값 범위값 늘림

BattDCG_M.E.HooneyPaPa_V3.1.ino
다운로드

 

Version 3.0 (2020-09-19)
-. mAs 조정 단위 수정 및 방전시간에 반영

-. 아두이노 클락 시간 초당 0.024ms over 치 반영
-. 방전전류가 같으면 Adjust시 이전 측정치로 시작하도록 함
-. mills() 를 loop()에서 실행한 값으로 통일함 (Fine Tune)
-. Mod A_Rate값을 션트 저항 값에 직접 반영 -> 조정 범위 필요(초기화 필요)
-. 방전 종료시 시리일 로깅 추가
-. 기타 불필요 코드 수정

 

Version 2.9 (2020-08-31)
-. Cutt Off 전압 설정 단위 수정 (4.2V 이상 0.2V 단위에서 0.1V 단위로 수정할 수 있도록 함, 이전 버전에서 3S 7.5V 설정이 안됨)

Version 2.8 (2020-08-30)
-. 설정화면 진입시 방전전류를 가장 먼저 설정할 수 있도록 수정

-. Adjust flag 오류로 두 번째 방전 실패 현상 수정

Version 2.7 (2020-08-28)

-. LCD2004/LCD1602로 각자 분리된 파일을 하나로 통합
    LCD2004로 사용할 경우
        #define DISPLAY_LCD2004 1
        //#define DISPLAY_LCD1602 1

    LCD1602로 사용할 경우
        //#define DISPLAY_LCD2004 1
        #define DISPLAY_LCD1602 1

-. LCD1602 모드에서 전류 조정시 Mod A-Rate값이 10.000이상일 경우 Display 깨지는 현상 수정

 

Version 2.6 (2020-08-22)
-. 방전 전류값 100mA 단위로 수정(이홈메이드클럽 넘버원님 의견)

-. 방전 플래그 D를 없애고 초를 00:00의 ':'을 깜빡이도록 함
-. 90에 Auto Hold 이후 온도가 70도까지 떨어지면 Auto Restart!!
-. Serial Logging Enable..(sram 사용률 74%, LCD2004 버전)

LCD 2004 버전
-- 삭제 --

LCD 1602 버전
-- 삭제 --


Version 2.5 (2020-08-17)

-. LCD11602 적용
-. KILL 모드일 경우 Cut-Off mAH 동작하지 않도록 함
-. Serial Logging 활성 (1602사용으로 메모리 감소효과)
-. 외부전원 사용시 부팅 이후 전원 플러그 모양의 캐릭터 깨지는 문제점 수정

 

Version 2.4 (2020-08-17)
-. Adjust 단계를 좀 더 세분화하고 실제 방전시는 출렁임 방지를 위해 0.5V 이상일 경우 조정하도록 함
-. Tune mA/Sec 기능 추가, 초단위 측정치에 튜닝값을 가감할 수 있도록 함( Default 0.0, -0.1~1.0 )
   레퍼런스 방전기가 있을 경우 수치를 맞출 수 있도록 하는 기능

-. Adjust와 방전중 전류값 수정시 조정단계 및 수치 조정
-. Serial Logging Disable ( Enable할 경우 sram 사용율이 66% -> 76% )
-. 방전시 loop문에서 scanVoltages 방지 (중복)

[참고]
0.22옴 션트와 무선조종님 PCB 사용하여 만든 자작 3호기에서 방전시간이 조금 더 나옵니다.

원인을 찾기 전까지 Tune mA/Sec 기능으로 보정할 수 있도록 했습니다.

1시간 방전시 200mAh가 더 나왔다고 하면, 초단위 200/3600=0.05 가 되고 설정에서 -.0.05를 적용해주면 됩니다. 레퍼런스 방전기가 있다면 이 기능을 사용하여 비교하여 비슷하게 맞출 수 있습니다.

Version 2.3 (2020-08-16)
-. 기본 션트 저항 0.22로 조정, 가장 먼저 수정하세요.
-. 온도 경고 Holing 값을 90도 조정 (모스펫 소손을 방지하기 위해)
-. 초기화시 백라이트 항상 켜짐으로 수정

Version 2.2 (2020-08-15)
-. 션트 0.2옴 이상 적용 검증 버전

Version 2.1 (2020-08-02) - FAN2 Version
-. FAN2가 적용된 버전입니다.
   기존 회로와 호환되며 모스펫 온도 50도가 넘어가면 6번핀을 통하여 FAN2가 컨트롤 됩니다.
   N채널 모스펫 하나가 더 필요하며, 아래 버전과 호환되는 옵션입니다.

Version 2.0 (2020-07-23) - Major Update!!
-. mAh 버그 수정 및 arduino millis() 인터럽트 주기인 1.024ms를 elapsedTime에 반영
-. KILL 모드 보완
-. 다이얼을 돌려 환경설정 진입 동작 후 END모드 설정값이 증가하는 증상 보완
-. 모스펫 온도 경보 온도 100도로 조정하고 해당 온도에 이르면 Holding!!
   RFP250N은 동작 온도 -55~175도이며 125도를 기준으로 20A 밑으로 떨어져 20A 방전시 모스펫이 소손될 수 있습니다.
-. 코드 정리

Version 1.9 (2020-07-22)
-. 내부저항 계산 수정 (회로 GND 수정후 Drop V가 정확해짐)
-. CV 모드로 방전시 너무 느린 시간을 보완
-. LCD 백라이트 켜져 있는 시간을 5분에서 10분으로 조정
-. 방전 종료시 Sound Disable 설정이면 엔코더 클릭시 바로 Normal 모드로 전환
-. 방전 전류값을 Define 처리(DCG_MAX_CURRENT) 해서 한 번에 바꿀 수 있도록 함
-. 사용한 Shunt 의 저항값 설정에 따라 수치값 자동 조정 (테스트 X)

-- 이미지 삭제 --
>> mAh 계산식에 실제 방전시간을 체크한 타임이 아닌 1000(1초)으로 fix되어 결과가 150mAh 정도 작게 나오는 문제점이 있어 배포 이미지를 잠시 삭제 합니다. (23일 저녁에 2.0 릴리즈 예정)

 Version 1.8 (2020-07-21)
# Drop률을 낮추기 위해 회로를 수정해가며 디버깅하다보니 업데이트가 잦습니다.
# V2.0을 최종 버전으로 생각하고 있습니다.
-. 내부저항 계산 알고리즘 개선 - 0.3A로 방전하고 Drop률을 배제함!! (TODO : 합산예정)
-. 0.1옴 이외의 션트저항 적용을 위한 선작업
-. 환경설정에서 V_Drop Rate 설정시 전압 표시 오류 ( V Drop Rate이 반영안되어 표시되는 문제 수정!! )

Version 1.7 (2020-07-19)
-. 수동부저 지원
   수동부저의 tone()함수가 인터럽트 서비스 루틴과 충돌하여 동작하지 않는 현상을 우회 지원
-. 1.6의 사이드 이펙트로 전압칼리브레이션 때 Gate를 닫지 않도록 함

Version 1.6 (2020-07-14)
-. 환경설정에서 소리를 설정할 수 있도록 함 ( 회사에서 몰래 방전할 경우??? ^^;; )
-. V1.5에서 대기모드에서 버튼클릭시 내부저항 체크 안되는 문제 수정

Version 1.5 (2020-07-13)
-. 내부저항 체크 로직에서 BEEP음이 간헐적으로 울리는 현상 수정
-. BEEP음 로직 수정
-. 방전모드에서 일반모드로 전환될때 배터리 스캔하지 않도록 함(매뉴얼로 할 수 있음)
-. 엔코더 무효클릭 보강

Version 1.4 (2020-07-12)
-. 내부저항 버그 수정
-. 경고 온도 수정 : 250 --> 150
-. 방전 중 방전 전류값 조정할 수 있도록 수정
-. 시리얼 로깅 항목 간소화 --> Time, Voltage, Current, mAh, Wh
  로깅 제목정보를 부팅시에서 방전 시작전으로 옮기고
콘솔로그 출력 타임 조절 - 20초 마다 1번씩
-. 백라이트가 꺼진 후 다이얼을 돌렸을 때 백라이트만 켜도록 함
-. 문자열대신 심볼 적용 (배터리 ON/OFF)
-. 방전종료후 엔코더 클릭시 비프음이 꺼지고,
   이 상태에서 한번 클릭시 노멀모드로 전환, 길게 누르면 다시 방전시작합니다.

-. 방전화면에서 Mod를 End로 변경

 

콘솔출력 이용법

전체를 복사해서 메모장에 넣고 확장자를 csv로 저장!!
더블클릭하면 엑셀로 열림


Version 1.3 (2020-07-07)
1. LCD 백라이트 5분 후 처음 한 번 꺼졌다가 다시 켜지는 증상 수정
2. 방전시 LCD 깨지는 증상 수정
3. 메모리 사용량 74->71%
-- 삭제 --

Version 1.2 (2020-07-06) : 최초배포
1. sram 사이즈 튜닝
2. CSV 형태로 방전 데이타를 콘솔로 전송함 --> 이 데이타로 엑셀에서 챠트를 그릴 수 있습니다.

3. 방전 종료 조건에 mAh Cut 추가 (이홈메이드클럽의 무선조종님 의견)
4. 방전전류(cURRENT) 0.x 대 저장이 안되는 문제 수정
5. 대기 모드에서 엔코더를 한 번 누르면 배터리 스캔을 다시 시작
6. Auto Stop 기능을 Auto Hold 기능으로 변경

-- 삭제 --

 VERSION 1.1
1. 화면 구성과 조작 방법 개선


VERSION 1.0 (2020-07-03) 
1. 최초 작성 후 테스트 OK

 


 

라이브러리

 

#include <EEPROM.h>                   // 방전전류보정용 값 저장을위한 라이브러리
#include <Wire.h>
#include <Adafruit_ADS1015.h>         // 전압측정용 ads1115용 라이브러리
#include <LiquidCrystal_I2C.h>        // i2c clcd 를 사용하기위한 라이브러리
#include <Adafruit_MCP4725.h>         // 정전류제어를위한 GATE 제어용 DAC 라이브러리
#include <PinChangeInterrupt.h>
#include <Rotary.h>

설치는 아래 "아두이노를 하나도 모르는 사람들을 위한 글" 참고하시고 라이브러리 매니저에서 #incldue 의 이름을 검색해서 설치하시면 됩니다.

Rotary.h는 소스코드에 반영하여 따로 추가하실 필요없습니다.
혹시 몰라 첨부합니다.

Rotary.zip
다운로드

 

 

주의사항

1. 모스펫 방열에 매우!! 신경써야 합니다.
   특히 1
0A 이상 방전테스트시에는 방열판과 팬등의 성능이 떨어지면 모스펫이 소손될 수 있습니다.


2.
내부저항 측정값은 매우 많은 변수가 있어 정확한 값을 산출하기 어렵습니다.
  
가늠의 용도로 사용하시고 내부저항값과 용량체크를 병행해서 판단해야 합니다.


4. 본 스케치 파일은 자유롭게 수정 및 재배포가 가능하나, 개인이나 집단의 판매 목적으로 동의 없이 사용시에는 라이선스 문제를 제기하겠습니다.

 

 

 

아두이노를 처음 접하는 사람들을 위한 글

 

개발자가 아닌 아두이노 스케치만 보드에 올려 사용하려는 사람들을 위한 백서 - 아두이노 프로

스폿용접기를 만들면서 아두이노를 처음 알게 되고, 그 가능성에 놀랐습니다., 이후 스폿회로를 시작으로 EMF 디텍터, 방전기, AC 릴레이타이머 등등 거의 대다수를 아두이노 프로 미니 기반으로

mindeater.tistory.com

 

Pro Mini를 이용하여 Nano 보드에 부트로더 올리는 법

 

아두이노 나노 (Arduino Nano) 부트로더 굽기 - 프로미니(Pro mini) 사용

아두이노 프로미니만 사용하다가 뜻하지 않게 Nano를 사용하게 됐다. 헌데,,, 2 천원 중후반대 저렴한 호환보드를 구입하면 부트로더가 없는 것들이 많은데... 이 경우 부트로더를 직접 구워주어��

mindeater.tistory.com

 

 

 

관련글

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

 

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

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

mindeater.tistory.com

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

 

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

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

mindeater.tistory.com

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

 

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

지난 주 비교기와 파워 모스펫을 이용한 방전기를 만든 이후,, 카페 회원분이신 아이스커피님께 테스트 시료인 배터리를 지원 받았다. 원래는 하나 만들고 잘 쓰면 되는데,, 지원까지 받은 입장

mindeater.tistory.com

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

 

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

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

mindeater.tistory.com

 

 

 

728x90

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

  1. 이전 댓글 더보기
  2. 무선조종 2020.11.10 17:02  address  modify / delete  reply

    오늘 2채널로 48V 배터리 방전 테스트를 해 보았습니다.

    400W 까지 해 보았는데 잘 동작합니다. 다만 5mA 정도의 Idle 전류가 흐르는 현상은 여전하고,
    전류 검출을 션트저항 한 곳에서만 하기 때문인지 전체 전류가 0.5% ~ 1% 정도의 오차를 보입니다.
    사실 이 정도의 오차이면 실용상 큰 문제는 없을 것으로 봅니다.
    정확도를 높이기 위해서는 션트 저항을 정밀하게 측정하여 짝을 맞추어 사용하는 방법이 있는데
    이 점이 제가 마이크로옴미터를 자작하려는 이유이기도 합니다.

    배선을 길게 해서 그런지는 몰라도 축정된 전류값이 계속 변하는데, ADC 의 샘플링 문제일 수도
    있겠습니다.

    현재 코드 상에서 전압 측정 시 한 번의 샘풀링 값만을 반영하는지요. 다른 전압 측정 장치 자작기를 보면
    여러번 샘플링한 값을 평균하여 사용하는 것을 보았기에 문의드립니다.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.11.10 18:37 신고  address  modify / delete

      다채널 잘 동작하는군요..
      2채널로 분리시 션트는 각각 반으로 낮추고 션트 전류는 한 곳에서만 측정해서 2배해준거겠죠..

      ADC 남는 핀이 한 개밖에 없어 2채널이라면 각각 측정이 가능하겠지만 그 이상이면 오차 잡기가 쉽지는 않겠네요..
      마이크로 옴메타로 채널끼리만 동일한 값으로 맞추어도 어느 정도는 해결될 것 같습니다.

      처음에 여러 번 샘플링해서 평균치를 사용하려고 했다가 ADC가 상대적으로 튀는 데이타가 적고 장시간 방전을 하다보니 굳이 필요성을 느끼지 못했습니다.

      2채널 구성하실 때 코드상으로 수정한 부분이 있나요??
      단순하게 션트전압만 곱하기를 해주신건지...

      +
      일단 추가된 부품이랑 이것저것 디바이스마트 장바구니에 넣어두긴 했습니다만 생각나는 부품 더해서 조만간 주문할 것 같습니다.
      혹 내일 광군절때 중국에서 구입할 수 있는 모스펫이 있을지 모르겠습니다.

  3. 무선조종 2020.11.10 19:07  address  modify / delete  reply

    제가 2채널로 구성한 방법은 스케치는 손대지 않고 션트 저항값만 변경해서 사용했습니다.
    현재 스케치상에는 션트저항이 0.1옴으로 설정되어 있는데, 실제의 션트저항은 채널별로
    0.2옴을 사용했습니다. 따라서 한 채널만 사용 시(션트 저항 0.1옴)는 1A당 0.1V 이지만
    0.2옴을 사용했으므로 채널별로 0.5A당 0.1V가 검출되므로 자동적으로 2배로 되어 스케치 수정없이
    적용 가능했습니다.

    중국산 부품 특히 FET 나 TRIAC 구매 시는 조심해야 합니다. 저도 전에 스폿 용접기용으로
    구매한 BTA41-600 이 자주 나가서 확인해 보니 비품이더군요.

    최근에는 정품이 30불 정도하는 FET를 2불 정도에 팔기에 판매자에게 문의해 보니 정품이
    아니라고 솔찍이 시인하더군요.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.11.10 19:22 신고  address  modify / delete

      아.. 보내주신 회로도를 보니 이해가 갑니다.
      LM358과 LM324가 캐스캐이딩 되어 있고 Shunt1의 전압만 검출해서 사용하는 구조네요.

      방전 전류를 구하는 것도 크게 손볼필요는 없는 것 같고,,
      방전 시작/종료시 게이트 접지를 위한 핀컨트롤 기능만 들어가면 되는 건가요??

  4. 무선조종 2020.11.10 20:32  address  modify / delete  reply

    맞습니다.
    현재는 션트전압 검출용으로 ADC 1개 채널만 사용하므로 전류 검출은 4개 FET 중 1개에서만 됩니다.
    LM358은 Voltage Follower 즉 Buffer 인데 이게 있으면 오히려 Idle 전류가 증가하여 저는 Bypass 시켜
    버렸습니다.

    처음 시작 시 FET Gate 접지용 신호는 다시 생각해 보니, 처음 전원 스위치를 켯을 때 바로 신호가 출력
    되어야만 이 신호로 Gate를즉시 접지시켜 배터리를 보호할 수 있는데 아두이노의 부팅 시 걸리는 시간(아주
    짧겠지만) 때문에 신호가 지연 출력되어 보호기능을 할 수 없을 듯 합니다.

    따라서 이 보호 기능은 별도의 H/W(Logic IC로 구성 가능함)로 구현하여 전원 투입 시는 즉시 Gate가
    접지되도록 해야 할 듯 합니다. 그런데 이 회로는 Latch 형태로 동작하기 때문에 방전을 할 때에는
    기계식 스위치던 소프트웨어적이던 Reset을 시켜줘야 하므로 아두이노에서 방전 시는 High, 중지 시는
    Low인 신호를 출력해 주면 좋겠습니다.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.11.11 08:29 신고  address  modify / delete

      네 저도 시험시 bypass 하도록 하겠습니다. LM358을 실장하지 않고 입력 전압을 아웃풋으로 점퍼를 날리면 될것 같네요.

      접지기능은 혹시 배터리를 먼저 연결하고 방전기 전원을 켰을때를 보호하는 용도인지요? 아님 그것 포함해서 방전 시작의 문제인지요??
      핀 하나에 GAGE_OPEN/CLOSE에서 반영해주면 되니 코딩은 어렵지 않으나 원리를 모르니... ^^;;


  5. 무선조종 2020.11.11 12:42  address  modify / delete  reply

    LM358 바이패스는 그렇게 하면 간편합니다. LM358을 실장하지 않고 2번 핀을 1번 핀이나 3번 핀에 연결해 주면 됩니다.

    FET 보호 회로의 구조는 FET마다 NPN TR을 하나씩 설치하는데 Gate에 TR의 컬랙터를, 접지에 에미터를 연결하고
    베이스에 제어용 신호를 인가하는 구조입니다.
    여기에 Power-On 시 Latch가 되는 회로를 구성하여, 전원이 투입되면 이 회로의 High 출력을 TR의 베이스에 인가하여
    FET를 차단시키는 구조입니다.

    그런데 이 Lath 회로는 일단 High가 되면 별도로 리셋해 주지 않는 한 계속 High 상태를 유지하여 FET가 계속 차단
    상태에 있으므로 방전 시작 신호를 받아 리셋을 시키도록 하면 될 듯 합니다.

    그렇지 않으면 현재 제가 다른 방전기에 적용하고 있는 것처럼 단순히 Latch 회로 와 TR만 부가하여 전원 투입 후
    방전 준비가 완료되면 기계적인 스위치로 리셋시키는 방법도 있습니다.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.11.16 09:59 신고  address  modify / delete

      아직 일부 부품이 도착하지 않아 PCB에 풀실장을 못해봤는데...
      몇 개의 부품이 빠진채로 아두이노 실장하고 USB로 전원을 넣으니 나노에서 연기가 올라오네요.. ㅜㅜ
      제가 실장하고 납땜하면서 어딘가 붙은 단자가 있는지 확인해보고 있지만 조금 의하하네요..

      부품 도착하면 다시 풀 실장해서 테스트해보고 최종업그레이드 해 볼생각입니다.

  6. 무선조종 2020.11.16 17:45  address  modify / delete  reply

    아두이노 보드가 나간 건 좀 의아하네요.

    저는 금일 2대째 조립 및 테스트했는데 LM358 및 LM324N이 나가버렸습니다. 교체하니 정상 동작하고요.
    전에 MCP4725 모듈이 고장나서 부품함에 넣어 두었는데 모르고 이걸 사용했기 때문인 것으로 보입니다.
    두 대 모두 PCB 자체는 문제가 없는 것으로 결론지었습니다.

    회로가 전체적으로 무언가 하나가 잘 못 되면 다른 곳에 큰 영향을 끼치는 구조인 것 같습니다.

    스폿용접기 기판은 오늘 밤에 배달하러 온다고 합니다.

  7. 무선조종 2020.11.21 17:21  address  modify / delete  reply

    Idling 전류 방지 및 FET 보호 기능을 가진 새로운 회로를 설계 중입니다.
    기본 회로는 동일하지만 6채널에 보완된 기능을 넣으니 회로가 무척 복잡해 지네요. 완성 시까지는
    시간이 좀 걸릴 듯 합니다.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.11.21 19:29 신고  address  modify / delete

      헉 접지회로를 포함시켜 리비전하는 건가요??
      복잡해지긴 하겠지만 그래도 대용량 팩까지 무리없이 방전이 가능하니 의미있는 작업이 될 듯 싶습니다.
      전 접지회로는 잘 몰라서 말씀듣고서도 하려고 엄두를 내지도 않았네요.. ㅎㅎ
      스케치는 예전처럼 특정 핀 하나에 게이트 온/오프와 반대로 설정해주면 되는 거겠죠???

  8. 무선조종 2020.11.22 11:45  address  modify / delete  reply

    FET 파손 방지를 위한 회로 수정 및 보완으로 인해 다음과 같은 코드 상 변경 필요 사항은 다음과 같습니다.

    1. OP AMP 전원 스위칭
    확인해 보니 아두이노 부팅 완료 전에는 OP AMP 출력이 High 상태로 유지되어 만일 배터리가 연결되어 있는 상태에서
    전원을 투입하면 FET가 멋대로 On 되어 파손된 가능성이 있습니다.
    이에 대한 대책으로 아두이노 부팅 전에는 OP AMP용 전원 공급을 차단했다가, 부팅 완료 후에 전원 공급이 되도록
    설계했습니다. 이에 따른 코드 상 반영 필요 내용은,

    - 부팅완료 전 까지는 D10 출력을 Low 로 유지.
    - 내부 저항 측정 시, 방전 개시 시, Calibration 중, Adjust 중에만 High로 유지
    - 방전 Hold 시에도 Low로 유지

    2. 과전류 시 릴레이를 사용하여 배터리 차단
    동작 이상, FET 단락 등으로 인해 30A 이상의 전류가 감지되면 릴레이를 동작시켜 배터리를 차단.
    퓨즈를 사용해서 보호 중이라 해도 퓨즈는 워낙 동작 속도가 느리고 정확히 규격 전류에서 차단되는 것도 아닌 점에
    대한 보완책임
    코드상 반영 필요 내용은,

    - 션트저항을 통해 측정된 전류가 설정 값 이상일 경우 D11 출력을 High로 유지
    - 이 출력은 한 번 High로 되면 아두이노 전원 차단시까지는 High로 Latch 되어야 함
    - 차단 전류 값은 필요에 따라 스케치 내에서 용이하기 변경 가능했으면 함
    - 이 기능은 필요에 따라 사용하지 않을 수도 있음 - 릴레이만 설치하지 않으면 됨

    3. 기타 - 전원 투입되는 즉시 FET의 Gate를 접지 상태로 유지
    방전을 위한 모든 준비가 완료되면 리셋 버튼을 눌러 접지 상태에서 해제. 이 기능도 사용 불요할
    경우 본 기능 제어용 IC를 장착하지 않으면 됨.

    지금까지 방전기를 제작 테스트하면서 발생한 문제점 해결을 위해 제가 가진 경험 및 자료 검색을 통해
    종합적으로 반영한 결과입니다만, 또 다른 문제가 발생 및 대책이 필요할지는 모르겠네요,

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.11.22 13:50 신고  address  modify / delete

      3가지모두 스케치입장에선 핀컨트롤만 해주면 될 거 같네요.
      사용여부는 Define으로 처리하고, 모든 기능 활성화시 기존 불필요기능 이를테면 백라이트와 비프음 컨트롤을 없애면 간당간당하게 나노에서 구현이 가능하지 싶네요.

      현재 메모리는 다소 여유가 있는데 스케치파일 영역이 거의 찼거든요..

      +
      기존 방전기 뜯어야는데 살짝 굼뜨네요..
      12월 중순까지 긴급프로젝트에 투입되서 틈나는대로 조금씩 진행해보겠습니다.

  9. 무선조종 2020.11.22 14:15  address  modify / delete  reply

    저 같은 초보가 생각해도 핀 출력만 제어하면 되고 Menu 등은 손댈 필요가 없어서 비교적 단순한
    작업이 될 듯 합니다. 하나 업무가 우선이니 천천히 반영해 주시기 바랍니다.

    회로가 엄청나게 복잡해 져서 저항만 해도 52개나 들어 가므로 이제는 초보자는 도전하기가 힘든
    DIY가 될 듯 합니다. PCB 설계도 착수했는데 부품 수가 워낙 많아서 상당한 시간이 소용될 것으로
    보입니다. 저도 의뢰 받은 일이 있어 방전기 부문은 시간이 날 때에만 들여다 봐아할 상황이 되었으므로
    서서히 진행해 갈 예정입니다.

  10. 무선조종 2020.12.12 12:19  address  modify / delete  reply

    테스트

  11. 무선조종 2020.12.12 12:41  address  modify / delete  reply

    이제 글쓰기가 되네요.
    그 동안 틈틈이 테스트하면서 하드웨어 최종본 및 PCB 아트웍을 완료했습니다.

    1. 총 6개 채널로 구성
    2. D10, D11 출력을 이용한 FET 보호회로 구성(OP AMP용 전원 공급제어, 배터리 차단용 릴레이 제어)
    3. Gate 접지회로는 회로가 너무 복잡해지고 2번의 기능과 중복되는 면이 있어 제외시킴

    제가 기 제작한 기존 PCB를 이용한 방전기는 충전개시 표시 LED의 출력을 이용해서 OP AMP 전원
    공급을 제어하여 FET를 보호할 수 있도록 보조 기판을 구성해서 장착했습니다.

    그리고 150V 배터리까지 방전할 수 있도록 배율기를 변경해서 테스트해 보니 100V를 넘으면 화면이
    깨져 표시되되네요. 100V 이하에서는 소수점 3자리, 100V 부터는 소수점 2자리까지만 표시되도록
    보완했으면 합니다.

    또하나, 현재는 션트 저항값이 0.1옴 ~ 0.2옴 이어서 열이 많이 발생하고, 션트 저항에서의 전압 강하로
    인해 저 전압 배터리(1셀 등)의 대전류 방전 시 장애 요인이 되고 있는데, 현재 스케치 상에서 션트 저항값의
    제한을 두고 있는지요 ? 제가 0.01옴(10밀리 옴)으로 테스트해 보니 전류 측정을 하지 못하더군요.
    장기적으로는 10밀리옴 정도까지 내리는 것이 바람직할 것으로 생각됩니다.


    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.12.12 21:20 신고  address  modify / delete

      션트 저항을 밀리옴으로 낮추면 그 만큼 DAC Power를 맞추기 힘들 수 있습니다.
      예를 들면 dac_power 1을 더하거나 뺐을 때 움직이는 전류량이 너무 커지거든요..

      일단, 4채널로 준비하려다 시멘트 저항으로는 조금 그래서 0.8옴 권선저항을 4개 주문했습니다. 도착하면 조금씩 만들어봐야지 싶습니다.

      요구하신 기능들도 가능하면 적용하도록 하겠습니다.

  12. 무선조종 2020.12.13 19:08  address  modify / delete  reply

    0.8옴 저항 4개이면 2개씩 병렬하여 2채널까지는 구성할 수 있겠네요.

    ADC 문제로 더 이상 션트 저항을 낮출 수 없다면, 정 필요한 경우는 밀리옴 저항을 사용하고 계측기용 OP AMP로 증폭하여
    인가하는 방법을 사용할 수 밖에 없겠습니다.

    그리고 이건 최종적인 변경 사항으로 볼 수 있는데, 방전 모드에서 KILL 모드 대신 CP(Constant Power) 모드가 들어 가면
    좋겠습니다. 물론 아두이노 메모리 한계로 인해 CP 모드를 추가 가능할 수 있을지는 모르겠고요. 급한 건 아니므로 시간이 될 때
    검토해 주시기 바랍니다.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.12.13 19:13 신고  address  modify / delete

      0.8옴을 4채널로 0.2옴으로 계산하려고 했는데 2채널로 말씀하신 이유가 궁금해집니다.
      CP모드는.... KILL 모드는 그대로 유지하고 CV모드를 사용하는 것도 좋겠네요.
      실제로 CV모드는 시간도 오래걸리고 거의 사용하질 않아서요..

      아마 다음 주면 업그레이드 작업을 할 수 있지 않을가 싶습니다. ^^

  13. 무선조종 2020.12.14 11:26  address  modify / delete  reply

    션트 저항은 제가 잘 못 생각했습니다.
    0.2옴으로 설정하고 4채널을 사용하면 채널당 0.8옴이 되므로, 0.8옴 4개로 4채널 구성이
    가능하겠습니다.

    CV 모드는 리튬계열 배터리 보관 전압(셀당 3.8V 대)으로 방전 시 필요하기는 한데 말씀 하신대로
    시간이 너무 걸리더군요. 스케치상 전압 감소율을 좀 더 높이면 어떨지 모르겠습니다.

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

      일단 요청 하신 기능들을 넣어보면서 코드영역의 점유율을 보고 고민을 해보겠습니다.
      제 생각엔 CV모드 대신 3A 방전을 기준으로 CC모드에서 컷전압을 3.4-5V 정도로 실행하면 되지 않을까 싶네요. 어차피 보관목적이면 정확히 전압을 맞출 필요는 없으니깐요.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.12.17 11:02 신고  address  modify / delete

      부품이 모여서 슬슬 업그레이드 해봐야겠다 싶어 추가 기능들을 정리하고 있습니다.

      1. D10번 D11번 핀은 FET Gate와 동시에 HIGH/LOW로 설정한다.
      2. 전압이 100V가 넘는 경우 출력부 수정
      3. CV모드 추가

      이중 3번의 경우...
      메모리 절약을 위해 설정된 전류값으로 시작시 Watt를 산출하고, 이후 전압이 떨어지면서 A를 늘려주면 되는데...
      걱정되는 부분이 시작하자마자 전압 Drop이 생기고 전류 증가하고 그럼 또 전압 Drop이 생기고 또 전류 증가...
      이런 패턴이 반복되면서 오동작하지 않을까 싶네요.
      보통 어떤식으로 구현하는지 조사를 해봐야지 싶습니다.

  14. 무선조종 2020.12.19 07:48  address  modify / delete  reply

    D10 은 FET Gate On/Off와 연동시키는 것이 맞으나
    D11 은 션트저항에 흐르는 전류를 상시 감시하여 만일 30A 가 넘는 경우에는 High로 변경해야만
    릴레이를 작동시켜 배터리를 차단하는 것이 가능합니다.

    CP 모드는 먼저 배터리 전압을 측정한 후 설정된 CP 값(전력)으로 전류 값을 계산(배터리전압/방전전력)하여 적용 후,
    배터리 전압이 떨어짐에 따라 전류를 계속 변경시켜 CP값이 일정하게 유지되도록 해야할 것으로 보이네요.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.12.20 20:21 신고  address  modify / delete

      아.. D11번의 용도가 이제 생각나네요.
      D10번과 D11번은 제가 확인할 수가 없으니 일단 코드로만 적용해두고 Define으로 막아둘 생각입니다.

      CP모드는 CP전력값을 따로 저장하면 EEPROM 관련 코드가 추가되니 일단 처음 설정한 전류량으로 계산하는 것이 어떨까 싶습니다.
      대신 스펙이상으로 방전이 될 수 있으니 초기 설정전류값을 평소보다 조금 낮게 셋팅하고 시작해야할 듯 싶은데 이건 실제로 테스트를 해보면서 조금씩 보완할 생각입니다.

  15. 무선조종 2020.12.27 14:01  address  modify / delete  reply

    아, 그리고 과전류를 검출하여 D11의 릴레이 제어용 신호 출력 시 동시에 D10 Low 로 하여
    FET Gate도 차단시키는 것이 좋겠습니다.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.12.28 11:13 신고  address  modify / delete

      넵. 반영해서 스케치 업데이트 해두겠습니다.
      4채널 작업하다 모스펫 망가져서 이홈에서 알려주신 방법으로 보호회로까지 넣어서 업그레이드 해야할까봅니다.
      감사합니다.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.12.29 14:32 신고  address  modify / delete

      적용해서 V3.6 배포했습니다.
      해당 기능이 동작할 때 자동 Hold와 BEEP도 추가했습니다.
      다만 LCD2004의 경우 스케치파일 공간 부족으로 부득이하게 BEEP/LCD BackLight/Time Tune 설정항목을 고정하고 비활성화 시켰습니다.
      참고하세요..
      행복한 연말되시구요~

  16. 무선조종 2020.12.31 13:51  address  modify / delete  reply

    고생하셨고 감사합니다.

    최근에 배터리를 좀 제대로 테스트해 보고 있는데 시간 경과에 따라 화면에 표시된 방전 전류 대비
    실제로 측정한 전류 간에 차이가 발생하네요.

    그 이유는 대 전력 방전 시 션트 저항 발열로 인해 저항값이 상승하여 전류 ADC 값이 실제보다 높게
    높게 측정되므로 설정된 전류값 유지를 위해서는 전류를 감소 시키기 때문인 것으로 보입니다.
    48V 팩을 5A로 방전시켰을 때 최대 90mA 정도의 차이가 발생하는데, 션트 저항을 아주 대형으로 사용하거나
    아니면 수 밀리옴 대의 저항을 사용하고 검출 전압을 증폭시켜 인가하는 해결책이 있기는 합니다.
    물론 이 정도의 오차는 저같은 경우는 무시하고 사용할 수 있는 정도입니다.

    그리고 방전 전류 교정 작업은 테스트할 전압에 따라 케이스 바이 케이스로 해 주어야 하겠습니다. 일반적인
    정전류 회로의 특성 상 아무리 정전류 회로라고 할지라도 인가된 전압에 따라 정전류 유지 능력이 달라지기 때문입니다.
    즉 10V에서 교정한 값은 50V에서는 달라지기 때문에 다시 교정해 주어야 하더군요.


    올 한 해 방전기 제작을 위해 애써 주신 점 깊이 감사드리고 새해에도 좋은 일 많이 생기기를 기원합니다.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2020.12.31 17:55 신고  address  modify / delete

      네 몇 번 만들다보니 100mAh 안밖의 차이는 별 의미가 없다고 느껴집니다.
      최근 50.4V 팩실험 전원 ON/OFF하고서 모스펫 나가서 멘붕이었다가 어제 또 모스펫이랑 보호회로에 맞는 부품들 모아서 주문했네요.

      무선조종님 덕분에 한 해 방전기로 재미있게 즐긴 듯 싶습니다.
      새해 복 많이 받으세요!!

  17. 무선조종 2021.01.02 13:02  address  modify / delete  reply

    힘들게 조립했는데 테스트 중 문제가 생겨 좀 힘이 빠지시겠지만 심기일전하여 천천히 해결 하시기 바랍니다.
    남이 완성시켜 놓은 것이 아닌, 자작품을 테스트 하면서 완성을 시켜 나가야 하는 취미인의 어려움이
    아닌가 합니다.

    오늘 버젼 3.6을 올려 테스트해 보았는데 그 결과는 다음과 같습니다.

    1. FET 보호를 위한 OP AMP 전원 제어용 출력 => 정상적으로 동작
    2. FET 보호를 위한 과전류 시 릴레이 구동용 출력 => 보호 전류를 22A로 설성해 놓고 테스트해 본 결과 정상 동작
    3. CP 모드 => 보완 필요
    - 설정 화면에서 CP 값을 변경 저장해도 Default 값인 10W로 되돌아와 버림. 즉 설정한 전력값 저장이 되지 않음
    - 기본적인 CP 기능은 정상적으로 동작함(기본값인 10W로 테스트)


    기타 보완되었으면 하는 기능들
    1. 방전 종지 시 부저 비프음이 무한 계속되게 설정되어 있는 것으로 보이는데 30초 ~ 1분 정도만 울리도록 보완
    2. 엔코더 좌/우 회전으로 방전 중 전류 조절, 세팅 메뉴로 진입 시 여러 번 시도해야만 진입이 되는데 단 번에
    진입 가능했으면 함. 물론 제가 사용한 엔코더의 특성일 수도 있음.


    오래 전에 400W/50A 급 아날로그식 방전기를 만들었는데, 여러 가지로 불편하여 개선을 시켜야겠다고 늘 생각해
    왔는데 프로그래밍 실력이 전혀 되지 않아 쳐다만 보고 있다가 후니파파님 덕에 소원을 푼 듯 합니다.

    새해에 복 많이 받으시고 만사 형통하시길 기원합니다.

    (그런데 후니파파님은 코딩 분야에서 일하는 지요. 방전기 코드만 보아도 너무 복잡하여 웬만한 코딩 능력으로는
    작성하지 못할 것으로 보이네요.)




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

      CP모드 수정시 버그가 있었네요.
      검증이 충분히 안되었던 것 같습니다.
      방전시 엔코드 왼쪽으로 회전수를 반으로 줄여 쉽게 진입하도록 수정해서 V3.7을 올렸습니다.

      방전시 Beep음 수정은 스케치파일에 영향을 주어 일단 그대로 두었습니다.
      원래 가청정보는 사용자가 끄는 것을 원칙으로 하고 한번 클릭시 Confirm 그리고 다시 한 번 클릭시 대기모드로 빠져나오도록 설계했습니다.

      네 네트워크 장비를 만드는 회사에서 SW쪽에서 업무를 보고 있네요..
      이 소스도 처음엔 간단했다가 엔지니어링이 쉬운쪽으로 업그레이드를 계속 하다보니 조금 복잡해진 면이 없잖아 있네요. ^^;

      +
      CP모드 테스트중에 방전중 전력값 수정시 수렴속도가 너무 느려 추가 패치했습니다.

  18. 무선조종 2021.01.02 21:12  address  modify / delete  reply

    소프트웨어 부문 전문가가 맞군요.
    저는 재무부문에서 근무하다가 6년 전에 정년 퇴직하여 현재는 거의 백수 상태입니다. 전공은 인문계이지만
    전자공작에 워낙 관심이 많아 어렸을 때부터 주욱 자작을 즐겨해 오고 있습니다.

    오늘은 6채널 구성을 위해 본격적인 테스트를 진행하고 있네요. 물론 PCB 제작을 언제할지는 모르지만 준비를
    하고 있습니다. 일단 방열판에 6개의 IRFP260M을 부착하여 먼제 싱글 채널부터 테스트 하고 있는데 오늘만
    2개를 날려 먹었습니다. FET를 절연시킨다고 절연지를 사용해서 부착했는데 100W만 넘어 가면 여지 없이
    연기가 나면서 터져 버리네요.

    절연지를 제거하고 부착하니 FET 자체에 열은 많이 나지만 160W 까지는 문제 없어 보입니다. 방열판이 대형이다
    보니 FET 자체 온도와 방열판의 온도 차이가 심하므로 온도 센서를 FET에 바로 부착하여 온도 감지가 제대로 되도록
    해야 할 듯 하네요.

    테스트 중에 전원(배터리) 연결 상태에서 구동 전원을 Off 했다가 On 하니 보호 회로를 부착했음에도 불구하고
    과전류가 흐르는 현상은 여전합니다. 테스트 대상을 Power Supply 로 했기에 정전류 제한으로 인해 FET가
    나가지는 않았네요.

    션트 저항 온도 상승으로 인한 전류 변동 방지를 위한 실험으로 션트 저항으로 2밀리 옴을 사용하고 50배
    증폭해서 인가했더니 온도 상승에 따른 문제는 보이지 않네요. 방전 진행에 따른 배터리 전압 변화로 인한 전류
    변동도 거의 없는 듯 하고요.

    그리고 전부터 있었던 현상인데 방전 중 방전 전류 표시가 약간씩 진동한다는 점입니다. 배선을 길게 해서
    그런지는 모르겠지만 어떤 때는 안정적으로 표시되기도 하니 원인 파악이 쉽지 않네요.

    개선된 CP 모드는 아직 테스트해 보지 못했으며, 차후 스케치를 올려 테스트 예정입니다.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2021.01.03 18:44 신고  address  modify / delete

      저도 이거 시작하고 날려먹은 모스펫이 ㅠㅠ
      저도 이번에 기존에 만들어 둔 방전기 업그레이드 중에 한 대가 7A 이상 방전 전류가 올라가지 않아 또 분해해야할 듯 하네요..
      몇 가지 크로스 체크를 해봤는데 모스펫쪽 문제로 좁혀지네요.
      여튼 모스펫 다루기가 생각보다 쉽지 않네요.

      참 전원 ON/OFF시에 명시적으로 Gate 전압을 0V로 지정해주면 도움이 될런지요..

  19. 무선조종 2021.01.04 09:01  address  modify / delete  reply

    FET 보호를 위해 아두이노에서 제어하는 것은 한계가 있어 보입니다.
    코드에 보호 기능을 반영해 놓았다 하더라도 아두이노 부팅 완료 시까지는 동작을 하지 못하므로
    보호 기능을 수행하지 못하는 문제가 있네요.

    완벽한 보호를 위해서는 초기 전원 투입 시 포함하여 방전을 하지 않는 동안에는 TR을 사용해서 FET의 게이트를
    접지측에 연결하여 절대로 FET가 무작위로 On되는 것을 막는 하드웨어적인 방법 외에는 없는 듯 합니다.

    제가 이 방법을 알리산 150W 방전기에 적용해서 사용 중인데, 물론 조심해서 사용하기 때문인 점도 있지만
    부가회로 사용 이후에는 FET가 파손된 적이 한 번도 없었네요.

    6채널 설계 시 이 방법을 적용해 보려다가 12개의 TR이 추가되어야 해서 너무 복잡해 지므로 제외시킨 상태입니다.

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

      아 아두이노 부팅 전에 이미 FET이 나가버리는군요..
      뭐든 그렇지만 실제 동작보다 그 기능을 잘 수행할 수 있게 들어가는 수고가 훨씬 더 많네요. ^^;;

  20. 무선조종 2021.01.04 19:42  address  modify / delete  reply

    미뤄 놓으면 언제 할지 몰라서 오늘 PCB 보완 작업을 했습니다.

    전원이 투입되면 바로 FET Gate 가 접지로 연결되어 의도치 않게 FET가 도통되어 파손되는 현상을 원천적으로
    방지했습니다. 내부저항 측정이나 방전 개시 시는 D10 신호를 이용해서 접지로 연결된 것을 해제하여 FET가
    정상적으로 동작하게 했습니다.
    이 수정 사항은 초기의 1채널을 2채널로 확장한 PCB 및 6채널용 PCB에 반영했으며 향후로는 이 두 가지 PCB만
    제작 예정이며, 현재로서는 언제 제작할지는 모르겠습니다.

    또 한가지 보완 필요 사항은 배터리 극성을 역으로 접속했을 때의 보호 기능인데 파워 FET 를 사용해서 쉽게
    구현 가능하나 외부 PCB로 제작하여 부착하면 되므로 PCB에는 반영하지 않았는데, 이 회로를 추가하면
    새로운 그라운드 전위가 생기므로 배터리 전압 측정 시 오차가 생기는 부작용이 있기 때문이기도 합니다.
    (오차는 크지 않으며, 아두이노 메모리만 확보되면 코드로 보정 가능한 사항입니다.)

    앞으로 보완 사항이 추가적으로 발생할지는 모르겠으나 현재로서는 하드웨어 측면에서는 마지막 버젼으로
    생각됩니다.



    [이상적인 방전기 완성을 위한 저의 희망 사항 ]
    현재로서도 사용하는데 있어 문제는 없으나 더 고급화를 기한다면 필요한 사항을 정리해 보았습니다.

    1. 메모리 부족 문제에서의 해방을 위해 아두이노 메가를 사용(메모리 용량 8배)
    2. CC, CP, KILL, CV 모드 외에 CR(Constant Resistence) 모드 추가
    3. 방전 듀티 조절 기능(10초 방전 후 5초 휴지 등등 - 배터리를 실제 사용 환경에 맞게 설정하여 방전). 이 외에도 방전 전류값을 서서히 증가시켰다가 감소시키는 등 사용자가 방전 방법을 프로그래밍 가능
    4. 2.8인치 TFT LCD를 사용하여 한 화면에 필요한 모든 정보를 컬러풀하게 표시
    5. 알리산 150W 방전기 처럼 화면을 몇 가지 구비해 두고 선호하는 화면 종류를 선택

    생업이 우선이므로 추진한다 하더라도 장기적으로 진행해야 할 듯 하네요...
    (만일 필요하시다면 아두이노 메가와 2.8인치 TFT LCD는 지원해 드릴 수 있습니다.)


    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2021.01.05 21:39 신고  address  modify / delete

      나노에서는 스케치파일 초과로 더이상 기능추가는 어렵고, 말씀처럼 메가에서는 가능할 듯 보입니다.

      2. CR모드는 처음 들어보는 건데 공부해보겠습니다.
      3번은 초창기 낫셀 방전기 제작시 전압측정을 위하여 사용한 방법인데 고려해봄직도 합니다.
      4.5번은 프로파일 형태로 지원하면 되겠지만 손이 많이 가는 작업이겠네요..

      올초부터 정신없이 바쁘네요..
      외근도 많구요..
      말씀처럼 장기적으로 봐야할 듯 싶습니다.
      수고 많이 하셨습니다.

  21. 무선조종 2021.01.06 11:20  address  modify / delete  reply

    CR모드는 사용자가 저항값을 설정하면 그 저항값을 유지하면서 전류값을 조절해 가면서 방전하다가 종지 전압에
    도달하면 정지하는 방전 방법입니다. CP 모드와 유사하다고 볼 수 있는데, 예를 들어 10옴으로 설정했다면
    배터리 전압이 20V일 때는 2A로 방전하다가 19V로 떨어졌다면 1.9A로 로 줄이는 방식입니다.
    (CP 모드에서는 설정한 전력을 유지하기 위해 전류를 늘렸다면 CR 모드에서는 반대로 전류를 줄이는 방식)

    TFT LCD는 잠깐 테스트해 보니 2004 LCD와 유사하기 때문에, 커서 위치에 추가하여 컬러 및 폰트 크기만 지정해
    주면 되는 것으로 보입니다. 라이브러리에서 처리해 주기 때문에 고수들에게는 문제도 아닐 겁니다.

    새해부터 일이 바쁘다는 것은 요즈음 같은 상황에서는 긍정적인 것으로 보이네요. 저도 간단한 제품 개발 및
    배터리팩 조립 등의 부업과 같은 일이 좀 생길 듯합니다.

    • Favicon of https://mindeater.tistory.com BlogIcon MindEater™ 2021.01.07 07:46 신고  address  modify / delete

      CR모드 동작이 신기합니다.
      개인적으론 크기때문에 1602가 뚝딱 자작하기엔 좋겠지만, 고성능의 방전기라면 알리발 방전기처럼 컬러풀한 화면도 나쁘지 않겠네요. ^^