본문 바로가기
모빌리티 프로젝트

DIY: 리튬 배터리의 SoC 및 SoH를 표시하는 소형 LED 장치 만들기

by 모빌리티키즈 2025. 4. 2.
728x90
반응형

리튬 배터리의 충전 상태(State of Charge, SoC)와 건강 상태(State of Health, SoH)를 실시간으로 확인할 수 있는 소형 장치를 만들어보세요. 이 프로젝트는 오래된 배터리를 회수하거나 DIY 보조 배터리 프로젝트를 실현하는 데 완벽한 솔루션입니다! LED 막대와 최신 연료 게이지 IC를 활용해 사용성과 편리성을 극대화한 이 프로젝트를 소개합니다.

주요 특징

  • BQ27441 연료 게이지 IC를 이용한 실시간 모니터링.
  • SoC/SoH 듀얼 LED 막대 (WS2812B NeoPixels)로 시각적 상태 확인.
  • USB-C 충전을 지원하는 BQ24075 IC.
  • 오픈 소스 설계로 PCB, 코드, 3D 파일까지 모두 제공!

필요한 부품 목록

이 프로젝트를 시작하기 위해 아래의 주요 부품들을 준비하세요:

핵심 구성 요소

  • BQ27441 연료 게이지 IC (Texas Instruments)
  • BQ24075 충전기 IC (Texas Instruments)
  • ATmega328P MCU (아두이노 호환)
  • WS2812B LED 막대 (10x2 구성)
  • 18650 배터리 홀더
  • 0.01Ω 전류 감지 저항기 (1206 패키지)
  • USB-C 커넥터 (TYPEC-304-BCP16)

추가 도구 및 재료

  • 솔더 페이스트 (ChipQuik SMD291AX)
  • MHP50 핫 플레이트
  • 플럭스 리무버 (Chemtronics Flux-Off)
  • 납땜 스테이션 (Hakko FX888D)
  • LINKMICRO 디지털 현미경
  • ESD-안전 핀셋 (5피스 세트)
  • ANENG AN8008 멀티미터

제작 과정

1. PCB 설계 및 주문

PCB 디자인 파일은 GitHub 리포지토리에서 다운로드할 수 있습니다. Altium Designer를 사용해 설계를 수정하거나 그대로 사용 가능합니다. PCB 제작은 JLCPB 같은 서비스에서 주문할 수 있습니다.

2. 부품 조립 및 납땜

모든 부품을 PCB에 부착하고, 납땜 스테이션과 솔더 페이스트를 사용해 조립을 완료합니다. 핫 플레이트(MHP50)를 이용하면 작은 부품의 재흐름(reflow) 납땜이 보다 수월합니다.

3. LED 막대와 MCU 프로그래밍

아두이노 IDE를 통해 ATmega328P에 필요한 코드를 업로드하세요. WS2812B LED 막대는 SoC 및 SoH 데이터를 시각화할 수 있도록 설정됩니다.

4. 3D 프린팅 케이스 제작

PLA 필라멘트를 사용해 서곡 블랙 색상의 케이스를 제작하세요. 디자인 파일은 GitHub 리포지토리에서 제공됩니다. 3D 프린팅 시 M2 나사산 인서트를 활용하면 더욱 견고하게 조립 가능합니다.

5. USB-C 충전 회로 테스트

BQ24075 IC를 사용한 USB-C 충전 기능을 테스트하여 올바르게 작동하는지 확인하세요. 충전 중 LED 막대의 상태 변화도 체크합니다.

 

공급

공급

핵심 주요 구성 요소

  1. BQ27441 연료 게이지 IC (Texas Instruments)
  2. BQ24075 충전기 IC(텍사스 인스트루먼트)
  3. ATmega328P MCU(아두이노 호환)
  4. WS2812B LED 바(10x2 구성)
  5. 18650 배터리 홀더
  6. 0.01Ω 전류 감지 저항기(1206 패키지)
  7. USB-C 커넥터(TYPEC-304-BCP16)

전체 BOM 목록은 여기 ➡️(GitHub 리포지토리)

PCB & 어셈블리

  1. JLCPB에서 맞춤형 PCB → 주문
  2. 솔더 페이스트(ChipQuik SMD291AX)
  3. MHP50 핫 플레이트
  4. 플럭스 리무버(Chemtronics Flux-Off)

도구

  1. 납땜 스테이션 (Hakko FX888D)
  2. LINKMICRO 디지털 현미경
  3. ESD-안전 핀셋(5피스 세트)
  4. ANENG AN8008 멀티미터

3D 프린팅

  1. PLA 필라멘트 (서곡 블랙)
  2. M2 나사산 인서트

소프트웨어

  1. Altium Designer → 전체 프로젝트 설계 파일(Altium 365)
  2. 아두이노 IDE

1단계: 회로 설계

🔌 회로도 개요

저는 이 시스템을 세 가지 핵심 IC를 중심으로 설계했습니다.

  1. BQ27441 연료 게이지 - I²C를 통한 정확한 SoC/SoH 측정
  2. BQ24075 충전기 - USB-C 전원 입력 및 배터리 충전 처리
  3. ATmega328P MCU - 데이터 처리 및 LED 표시기 구동

해결된 주요 설계 과제:

  1. 정밀 감지: 쿨롱 카운팅을 위한 0.01Ω 전류 감지 저항(R10) 추가
  2. 열 안전성: 이중 NTC 지원 설계(온보드 및 외부 배터리 센서)
  3. 노이즈 감소: 모든 IC 근처에 스타 접지 및 100nF 디커플링 캡 사용

🛠️ 사용된 설계 도구

  1. 회로도 캡처: Altium Designer
  2. 부품 소싱: 간편한 조립을 위해 엄선된 JLCPCB 호환 부품

전문가 팁:

마무리하기 전에 항상 설계 규칙 검사(DRC)를 실행하십시오! 내 회로도는 Altium의 실시간 검증 덕분에 오류 없이 통과했습니다.

📁 디자인 파일:

  1. 전체 회로도 PDF
  2. Altium 365 프로젝트

2단계: PCB 조립(SMD 납땜 가이드)

🛠️ 필요한 도구

  1. 솔더 페이스트(ChipQuik SMD291AX)
  2. MHP50 핫 플레이트
  3. LINKMICRO 현미경
  4. PCB 스텐실(GitHub 저장소의 Gerber 파일에 포함)

🔬 조립 과정

1. 솔더 페이스트 도포

  1. 테이프를 사용하여 보드 위에 PCB 스텐실을 고정합니다.
  2. 땜납 페이스트를 스퀴지(또는 오래된 신용 카드)로 골고루 펴십시오.
  3. 전문가 팁: 더 나은 점도를 위해 먼저 페이스트를 5분 동안 식히십시오!
  4. 솔더 페이스트 → 적용하는 데 도움이 되는 지지대를 3D 프린팅했습니다(3D STL 파일은 여기에)

 

2. 컴포넌트 배치

  1. ESD 핀셋을 사용하여 작은 부품(0402 저항기, IC)을 배치합니다.
  2. 가장 작은 부품(저항기/캡)부터 시작하여 더 큰 IC가 오래 지속→.

3. 핫 플레이트를 사용한 리플로우

  1. MHP50 핫 플레이트를 150°C로 예열합니다.
  2. PCB를 접시에 놓고 페이스트가 광택이 날 때까지 가열합니다(~220°C, 2-3분).
  3. 비판적인: 팬이 없는 자연 식히세요!

 

4. 현미경으로 검사

  1. LINKMICRO 현미경으로 각 조인트를 확인하십시오.
  2. 좋은 관절 : 매끄럽고 오목한 필레.
  3. 나쁜 관절 : 무디거나 공 모양 (뜨거운 공기로 리플 류).
  4. 다음 사항에 특히 주의하십시오.
  5. BQ27441의 작은 핀(SON-12 패키지)
  6. USB-C 커넥터(연결하기 쉬움)

⚠️ 문제 해결

  1. 브리지 패드? 플럭스가 있는 구리 브레이드를 사용하여 과도한 땜납을 wicks.
  2. 툼스톤(Tombstoning)? 다시 붙여넣기 적용, 고르지 않은 양으로 인해 이 문제가 발생합니다.
  3. 관절이 차가워졌나요? 250°C에서 열풍총으로 재가열합니다.

 

📌 프로 팁

  1. 스텐실 정렬: 완벽한 페이스트 침전물을 위해 PCB 기준을 사용합니다.
  2. 양면 보드: 바닥면을 먼저 조립합니다(더 큰 구성 요소가 마지막).
  3. 핫 플레이트가 없습니까? 프라이팬은 핀치로 작동합니다(IR 온도계가 있는 모니터).

 

3단계: 최종 장치 조립(3D 하우징 + PCB)

🛠️ 필요한 것

  1. 3D 프린팅 파트(STL 파일))
  2. M2 나사산 인서트 및 나사
  3. 조립된 PCB(2단계에서)
  4. 납땜 인두(인서트 설치용)

 

 

🔧 조립 단계

1 스레드 인서트 설치

  1. 납땜 인두로 인서트를 200°C로 가열하고 하우징 구멍에 밀어 넣습니다.
  2. 전문가 팁: M2 나사를 사용하여 냉각하는 동안 인서트를 수직으로 정렬합니다.

 

 

2 PCB 장착

  1. M2 나사로 보드를 고정하고 USB-C 포트가 하우징 컷아웃과 정렬되도록 합니다.
  2. 18650 홀더/JST 커넥터를 연결합니다.

 

 

3 LED 디퓨저 부착

  1. 3D 프린팅 라이트 가이드를 WS2812B LED 위에 끼우면 균일하게 빛납니다.

 

4단계: 펌웨어 업로드 및 실제 테스트

💻 프로그래밍 설정

  1. 필요한 도구:
  2. USBASP 프로그래머(부트로더용)
  3. Arduino IDE(펌웨어용)

⚡ 플래싱 프로세스

  1. 부트로더 업로드(ISP 포트)
  2. USBASP를 PCB의 6핀 ISP 헤더에 연결합니다.
  3. ATmega328P를 선택하고 Arduino Nano Bootloader를 굽습니다.
  1. 펌웨어 업로드
  2. Arduino IDE에서 Battery_health.ino를 엽니다.
  3. 보드를 "Arduino Nano"(동일한 칩)로 설정합니다.
  4. 셀과 일치하도록 코드의 BATTERY_CAPACITY 조정합니다(예: 3000mAh의 경우 3000).
  5. GitHub 직접 링크→ 여기에서 코드를 가져올 수 있습니다.

🔋 사용한 배터리로 테스트

  1. 셀 삽입 (3 가지 시나리오 시도) :
  2. 건강한 세포: SoH ≈100%, SoC가 원활하게 업데이트됩니다.
  3. 노후화된 셀(예: 노트북 당김): SoH <80%, LED 막대는 성능 저하를 나타냅니다.
  4. 데드 셀: SoH <20%, 충전기가 과방전을 차단하는지 확인합니다.
  1. 정확성 검증
  2. SoC 판독값을 알려진 전압의 벤치 전원 공급 장치와 비교합니다.

📌 프로 팁

  1. 부트로더 문제? 연속성 테스터로 ISP 핀 연결을 다시 확인하십시오.
  2. USBASP가 없습니까? Arduino-as-ISP ( 튜토리얼 here )를 사용하십시오.
  3. 캘리브레이션: 실험실 수준의 정확도를 위해 BQStudio(Texas Instruments의 도구)에 데이터를 기록합니다.

최종 테스트 및 사용

모든 조립이 완료되었다면, 배터리를 삽입한 후 장치를 켜서 테스트하세요. LED 막대를 통해 SoC와 SoH 상태를 쉽게 확인할 수 있습니다.

결론 및 활용

이 프로젝트는 배터리 상태를 모니터링할 수 있는 실용적인 도구일 뿐만 아니라 전자 회로 설계와 프로그래밍, 3D 프린팅 기술을 학습할 수 있는 훌륭한 기회입니다. 궁금한 점이나 개선 아이디어가 있다면 댓글로 공유해주세요!

어떤가요? 혹시 추가할 사항이나 수정이 필요하다면 말씀해주세요! 😊

728x90
반응형