산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

부품 및 소모품

부품 수량 비고
아두이노 우노 1
아두이노 나노 R3 1
XL6009 DC-DC 부스트 모듈 1
스파크펀 푸시버튼 스위치 12mm 1
16 MHz 크리스탈 1
터미널 블록 커넥터 1
가변 출력 리니어 레귤레이터 (LM317) 1
리니어 레귤레이터 7805 1
1N4007 고전압 대용량 다이오드 1
USB-A to B 케이블 1
멀티턴 정밀 포텐셔미터 10kΩ (25턴) 1
OP07 계측용 오피앰프 1
범용 소켓 박스 1
FR4 프로토 보드 1
점퍼 와이어 1
수 헤더 40핀 1열 (0.1") 1
저항 10kΩ 1
저항 22.1kΩ 1
저항 1kΩ 1
아두이노 래칭 릴레이 5V 2A 1
스파크펀 MCP4131 디지털 포텐셔미터 10k 1
아두이노 구리 테이프 1
아두이노 LM358 오피앰프 1
아두이노 1306 OLED 1

필수 도구 및 장비

도구
납땜 인두
글루건
미니 드릴 모터

앱 및 온라인 서비스

서비스
아두이노 IDE

프로젝트 소개

아이디어

취미 개발자로서 프로토타입 전원 공급, 전압/전류/전력 한계 확인, 새 부품 테스트 등 가변 전원 공급 장치가 항상 필요합니다. 하지만 벤치/랩 파워 서플라이는 비싸고 휴대하기 부피가 큽니다. 저렴하면서 휴대 가능하고 프로토타입 전원 공급과 부품 테스트에 생산적인 프로그래머블 파워 서플라이를 찾아 직접 만들기로 했습니다.

주요 특징:

저전력 전자 프로젝트용으로 가장 다재다능한 파워 서플라이입니다.

실제 동작

동작 시연 영상: 영상 링크

장치 사양

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

참고: 이 장치는 퀵 프로토타입입니다. 고용량 배터리, 추가 전자 회로, 설계 업그레이드로 0-30V, 음전원, 더 높은 출력 전류도 가능합니다.

작동 원리

설계는 하드웨어 집약적입니다. 조잡한 블록 다이어그램:

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

  1. 전원: 3.7V 리튬 폴리머 배터리 (USB 충전식). XL6009 DC-DC 부스트 모듈로 15.6V 생성. 7805 레귤레이터로 MCU용 5V 생성.
  2. MCU 모듈: 아두이노 우노 클론 ATmega328P, 인터럽트 기반 사용자 입력 스위치 2개, OLED 디스플레이, PC에서 USB/시리얼로 펌웨어 업로드용 Rx/Tx/DTR 포트.
  3. 핵심 - 스텝 전압 발생기: MCP4131 디지털 포텐셔미터 (Digipot) + LM358 오피앰프 기반. 아두이노에서 유사 SPI 명령으로 제어. LM317 가변 레귤레이터의 제어 전압으로 사용. LM317은 조정 핀 전압보다 출력 핀 전압이 항상 1.25V 높게 유지 (입력 전압이 충분히 높을 때, 여기선 15.6V).
  4. 가변 레귤레이터: 스텝 전압을 조정 핀에 입력해 사용자 필요에 따른 가변 출력 생성.
  5. ADC 측정: 배터리 전압, 부스트 전압, 충전 감지 전압, 출력 전압을 분압 네트워크로 ADC 범위(0-1.1V)에 맞춤. 아두이노 내부 레퍼런스(1.1V) 사용.
  6. 전류 감지: 출력 부하 리턴(Load GND)을 1Ω 전류 감지 저항으로 시스템 GND와 직렬 연결. 부하 전류 흐름 시 감지 저항에 전압 강하 발생. OP07 정밀 오피앰프로 증폭해 ADC 핀에 입력.
  7. 배터리 충전: USB 5V를 1N4007 다이오드와 5Ω 전류 제한 저항 직렬로 리튬 폴리머 배터리에 연결. 리튬 폴리머 충전으로는 최적 방법이 아님.

동작 요약: MCP4131 디지털 포텐셔미터가 0-5V 범위에서 약 40mV 스텝(7비트 10K 디지팟 129스텝, 5V/128 = 39mV)으로 스텝 전압 생성 → LM358이 2.5배 증폭해 0-12.5V 제어 전압 범위, 0.1V 스텝 생성 → LM317 조정 핀에 입력 → LM317이 V_Step + 1.25V 출력 전압 생성 → 외부 부하에 공급. 외부 부하 리턴은 1Ω 전류 감지 저항을 거쳐 내부 그라운드 연결. x mA 전류 흐르면 옴의 법칙(V=I×R)으로 x mV 강하 발생. 이 미세 전압을 저옵셋(10µV) OP07로 2.5배 증폭해 2.5x mV 출력. 아두이노 ADC는 1.1V 내부 레퍼런스로 0-1100mV를 약 1mV 스텝(1100/1023)으로 감지. OP07 출력을 ADC에 연결해 전류 감지. 이로 인해 전류 한계 400mA. OP07 게인 변경으로 한계 조정 가능. 부스트 전압과 LM358 게인 변경으로 출력 전압 범위 변경 가능. 다른 전압들은 분압 네트워크로 ADC 범위에 맞춰 측정. 래칭 릴레이는 2개 코일로 순간 전원 인가 시 접점 전환, 이후 전원 차단해도 상태 유지.

프로젝트 제작

  1. 싱글 스위치 소켓 박스로 시작, 배터리, USB 충전 포트, 전원 스위치 장착용 컷팅 및 정렬
  2. 구리 테이프와 동전으로 DC-DC 부스트 모듈 방열판 제작
  3. 부스트 모듈 소켓 박스 내 장착
  4. 3개 모듈 제작:
    • 아두이노 + I/O + 제어 모듈
    • 스텝 전압 및 가변 레귤레이터 모듈
    • 전류 감지 모듈
  5. 모든 보드 간 거미줄 같은 연결 납땜
  6. 핫글루로 빈 공간 채워 완성

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

펌웨어 개발 및 조작 절차

펌웨어(아두이노 스케치) 현재 버전 1.0.2 베타. 모든 기능은 아니지만 전압 제어, 릴레이 연결/해제, 정보 확인 등 핵심 기능 활성화.

void setup()에 외부 하드웨어 관련 아두이노 핀 초기화 함수들 포함.

입력: 출력 전압 증감, 메뉴 접근(이 버전 미지원)용 인터럽트 기반 입력 버튼 2개. 아두이노 핀 2, 3의 INT0, INT1을 폴링 에지 인터럽트로 코딩. 기계식 스위치와 병렬 커패시터 2개로 디바운싱. 사용자 버튼 누름 시 인터럽트 트리거로 릴레이 온/오프 또는 전압 증감 (베타).

출력: SSD1306 OLED가 ADC 데이터, 내부 타이머(디바이스 업타임), 플래그 변수로 출력 정보 표시. U8G 라이브러리 기반 텍스트/숫자 출력. 향후 그래픽(아날로그 타입) 표현 계획.

SSD1306 OLED(웨이브셰어) 5개 디지털 핀(clk, din, cs, d/c, res)을 아두이노 10, 9, 11, 13, 12핀에 연결. 메인 루프에서 update_display() 함수 매 호출마다 OLED 정보 업데이트.

내부 타이머 1을 1초마다 트리거되도록 설정해 시간 추적.

제어: MCP4131 디지털 포텐셔미터를 increment_digipot(), decrement_digipot() 함수로 제어. 핀 6, 7, 8을 CS, Clk, Data 핀으로 사용해 적절한 클로킹과 딜레이로 데이터 시프트 아웃. 하드웨어 SPI 핀을 다른 용도로 이미 사용해 소프트 SPI 방식 채택.

디지털 핀 4, 5로 래칭 릴레이 제어. 릴레이 구동 트랜지스터에 짧은 하이 펄스 인가해 2개 코일 에너자이즈로 릴레이 플립. 과부하/단락 시 자동 또는 사용자 수동으로 동작.

ADC: 메인 루프의 calc_VI() 함수에서 analogRead로 20회 평균 전압/전류 정보 획득해 변수 갱신 후 디스플레이 출력.

스케치는 ADC, Digipot, Display_Fn, Interrupt, Relay, Timer 탭으로 다중 탭 구성해 기능별 코드 정리. 주석 추가 예정이나 아두이노 기본 함수들로 구성돼 이해 어렵지 않을 것.

제한 사항

참고 자료

결론

이 프로그래머블 파워 서플라이는 멀티미터 없이 전압/전류/전력 측정하며 프로젝트/프로토타입 제작을 더 효율적으로 도와줍니다.

코드

아두이노 프로그래머블 포터블 파워 서플라이 (Ver 1.0.1, 핀아웃 정보 주석 포함)

// 핀 리셋, D0, D1: 스케치 업로드용
// 핀 D9,D10,D11,D12,D13: OLED 디스플레이 제어용
// ADC A0: V_boost 감지
// ADC A2: V_batt (LiPo) 감지
// ADC A3: I_Output (부하) 감지
// ADC A4: V_USB (충전) 감지
// ADC A5: V_Output (부하) 감지
// 래칭 릴레이 2개 코일 드라이빙 핀 D4, D5
#define RC1 4
#define RC2 5

// 사용자 입력 스위치 핀 D2, D3
#define SW1 2
#define SW2 3

// 디지털 포트 제어 핀 D6, D7, D8
#define CS_PIN 6
#define CLK_PIN 7
#define DATA_PIN 8

volatile uint8_t Switch1 = 1;
volatile uint8_t Switch2 = 1;
float V_Out = 0.0;
float I_Out = 0.0;
float V_Bat = 0.0;
float V_Bst = 0.0;
float V_Chg = 0.0;
uint32_t time = 0;

#include "U8glib.h"
// OLED 디스플레이 제어 핀
// SSD1306 oled waveshare(clk,din,cs,d/c,res); // 웨이브셰어용
U8GLIB_SSD1306_128X64 u8g(10, 9, 11, 13, 12);

void setup(void) {
  analogReference(INTERNAL);
  u8g.setRot180();
  button_init();
  relay_init();
  init_timer1();
  digipot_init();
}

void loop(void) {
  update_display();
  calc_VI();
  if (Switch1 == 0) {
    rc1_latch();
    Switch1 = 1;
    increment_digipot();
  }
  if (Switch2 == 0) {
    rc2_latch();
    Switch2 = 1;
    decrement_digipot();
  }
  delay(100);
}

Code Ver 1.0.1 Beta

미리보기 없음 (다운로드만 가능)

Code Ver 1.0.2 Beta

텍스트/박스 정렬 버그 수정
과부하 트립 버그 수정
다음 릴리스에서 추가 버그 수정 예정

미리보기 없음 (다운로드만 가능)

Code ver 1.0.3

전원 켤 때 출력 릴레이 비활성화 버그 수정
전원 켠 후 출력 전압 자동 5.00V 설정 버그 수정

미리보기 없음 (다운로드만 가능)

회로도

화이트보드에 그린 회로도

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

https://circuits.io/circuits/4762970-arduino-based-programmable-power-supply

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

컴팩트 프로그래머블 포켓 파워 서플라이 - OLED 디스플레이, 아두이노 호환

제조공정

  1. 아두이노 우노와 OLED 디스플레이로 클래식 퐁(Pong) 게임 만들기: 단계별 튜토리얼
  2. 스마트 저금통 만들기: 아두이노 나노로 동전 인식기 제어하기
  3. 아두이노 파워 컨트롤 센터: N-FET, P-FET, 릴레이 & RTC 키트
  4. 아두이노 듀(Due) + 3.2″ TFT로 만드는 실시간 시계 & 온도 모니터
  5. 아두이노 블루투스로 LED 제어하기 - HC-05 & MIT App Inventor 입문 가이드
  6. 아두이노 프로젝트를 위한 최적화된 전원 솔루션
  7. 아두이노 메가와 센서를 활용한 인터랙티브 넥시온 HMI 프로젝트
  8. 아두이노와 노키아 5110 LCD로 만드는 DIY 전압계 - 단계별 가이드
  9. 아두이노 메가 2560 종합 트레이닝 키트 – 커스텀 PCB로 만드는 올인원 학습 플랫폼
  10. Nextion 디스플레이로 Fridgeye 앱 만들기: 단계별 가이드