QC 3.0 보조배터리 전압 트리거 만들기 (5V~12V 가변 전원)

퀄컴(Qualcomm)의 **퀵 차지(Quick Charge, 이하 QC)**는 모바일 기기 충전 속도를 획기적으로 높인 기술의 대명사입니다. RC카나 로봇 제작 시, 일반 5V 전원보다 훨씬 높은 출력을 얻을 수 있어 아주 유용하죠.

현재까지 출시된 주요 버전과 특징을 정리해 드릴게요.


1. QC 버전별 변천사

버전출시 년도주요 특징최대 전압/전력
QC 1.02013단순 고전류 (5V 2A)10W
QC 2.02014전압 고정 선택 (5V, 9V, 12V, 20V)18W
QC 3.02016INOV(미세 전압 조정) 도입 (3.6V~20V 사이 0.2V 단위)18W
QC 4 / 4+2017USB-PD와 호환 시작, 효율 및 발열 개선27W+ (PD 시 60W~100W)
QC 52020100W+ 초고속 충전, 배터리 수명 연장 기술100W 이상

2. 왜 로봇 제작에 QC 3.0이 가장 인기인가요?

사용자가 구현하려는 방식(D+, D- 전압 조절)이 바로 QC 3.0의 핵심 기능이기 때문입니다.

  • QC 2.0: 정해진 전압(9V, 12V 등)만 딱딱 골라 쓸 수 있습니다.
  • QC 3.0: 사용자가 원하시는 것처럼 **0.2V 단위로 전압을 올리고 내리는 ‘가변 모드’**가 공식적으로 포함된 첫 버전입니다. 로봇의 모터 힘을 미세하게 튜닝할 때 이만한 기술이 없습니다.
  • QC 4.0 이후: USB-PD(Power Delivery) 표준을 따르기 시작하면서, 전압을 조절하는 방식이 훨씬 복잡한 디지털 통신(Protocol)으로 바뀌었습니다. 그래서 ESP32의 GPIO만으로 직접 구현하기에는 QC 3.0 방식이 가장 쉽고 직관적입니다.

3. 현재의 위치

2026년 현재는 QC 5가 플래그십 스마트폰의 표준이지만, DIY 로봇이나 소형 RC카 분야에서는 여전히 QC 3.0 규격이 가장 많이 쓰입니다. 알리익스프레스나 국내 쇼핑몰에서 구할 수 있는 보조배터리의 90% 이상이 QC 3.0을 기본으로 지원하기 때문에 호환성 걱정도 거의 없습니다.


🛠️ QC 3.0 전압 트리거의 원리

QC 3.0은 USB의 D+와 D- 라인의 전압 조합을 통해 출력 전압을 결정합니다. ESP32-C3의 GPIO에서 나오는 전압은 3.3V이므로, 저항 분배를 통해 QC 규격에 맞는 전압(0.6V, 3.3V 등)을 만들어 D+/D-에 넣어주는 것이 핵심입니다.

전압 테이블 (H: 3.3V, L: 0V, M: 0.6V)

  • 5V: D+(0.6V), D-(0V)
  • 9V: D+(3.3V), D-(0.6V)
  • 12V: D+(0.6V), D-(0.6V)
  • 가변 모드(Continuous): D+(0.6V), D-(3.3V)로 진입 후 신호를 주어 0.2V씩 조절

1. 하드웨어 구성 (회로 연결)

ESP32-C3의 3.3V 출력을 0.6V로 낮추기 위해 10kΩ과 2.2kΩ 저항을 직렬로 연결하여 분배합니다.

  • D+ 연결: GPIO 0 (High), GPIO 1 (0.6V 분배점)
  • D- 연결: GPIO 2 (High), GPIO 3 (0.6V 분배점)
  • 스위치 5개: GPIO 4, 5, 6(고정 전압), GPIO 7, 8(증감) – 모두 풀업(Pull-up) 설정

2. RC카/로봇 제작 시 활용 팁

  1. 가벼운 전원 시스템: 무거운 리포(Li-Po) 배터리 대신 QC 3.0 지원 보조배터리를 사용하면 충전이 간편하고 무게를 획기적으로 줄일 수 있습니다.
  2. 모터 드라이버 전압 최적화: 5V에서는 힘이 부족하고 12V에서는 모터가 과열될 때, 0.2V 단위 미세 조정 기능을 사용하여 로봇의 최적 토크 지점을 찾을 수 있습니다.
  3. 주의사항: USB 케이블의 품질에 따라 고전류 전송 시 전압 강하가 생길 수 있으므로, 되도록 굵은 전력용 케이블을 사용하는 것이 좋습니다.

ESP32-C3를 활용한 QC 3.0 전압 트리거 시스템의 회로도와 상세 가이드를 정리해 드리겠습니다.

1. 하드웨어 회로 구성 (핵심)

QC 3.0 규격에서 0.6V는 매우 중요한 기준 전압입니다. ESP32-C3의 3.3V 출력 핀 2개와 저항 분배를 조합하여 D+와 D-에 각각 0V, 0.6V, 3.3V를 만들어줍니다.

전압 분배기 구성 (D+, D- 각각 동일)

  • High (3.3V): GPIO 0 (D+용), GPIO 2 (D-용) → 직접 연결
  • Medium (0.6V): GPIO 1 (D+용), GPIO 3 (D-용) → 10kΩ과 2.2kΩ 저항을 사용하여 분배
    • 3.3V에서 10kΩ과 2.2kΩ을 거치면 약 3.3×10+2.22.2​≈0.59V가 나옵니다.

스위치 연결

  • 5V, 9V, 12V 선택: GPIO 4, 5, 6
  • 0.2V Up/Down: GPIO 7, 8
  • 모든 스위치는 한쪽은 GPIO에, 반대쪽은 GND에 연결합니다.

2. 마이크로파이썬 코드

이 코드는 처음에 ‘핸드셰이크’ 과정을 거친 뒤, 버튼 입력에 따라 D+/D- 전압을 조합하여 보조배터리에 명령을 내립니다.

Python Trigger.py

from machine import Pin
import time

# 1. QC 제어용 출력 핀 설정
dp_h = Pin(0, Pin.OUT, value=0)
dp_m = Pin(1, Pin.OUT, value=0)
dn_h = Pin(3, Pin.OUT, value=0)
dn_m = Pin(4, Pin.OUT, value=0)

# 2. 버튼 설정
sw_5v = Pin(7, Pin.IN, Pin.PULL_UP)
sw_9v = Pin(5, Pin.IN, Pin.PULL_UP)
sw_12v = Pin(6, Pin.IN, Pin.PULL_UP)
sw_up = Pin(2, Pin.IN, Pin.PULL_UP)
sw_down = Pin(9, Pin.IN, Pin.PULL_UP)

# 3. 상태 표시용 피드백 핀 (GPIO 8)
indicator = Pin(8, Pin.OUT, value=1)

# --- 상태 변수 추가 ---
is_continuous = False  # 현재 가변 모드인지 저장하는 변수

def signal_feedback():
    indicator.value(0)
    time.sleep_ms(100)
    indicator.value(1)

def set_qc_logic(dp, dn):
    # D+ 제어
    if dp == 'H':
        dp_m = Pin(1, Pin.OUT, value=0); dp_h = Pin(0, Pin.OUT, value=1)
    elif dp == 'M':
        dp_h = Pin(0, Pin.IN, None); dp_m = Pin(1, Pin.OUT, value=1)
    else:
        dp_h = Pin(0, Pin.OUT, value=0); dp_m = Pin(1, Pin.OUT, value=0)

    # D- 제어
    if dn == 'H':
        dn_m = Pin(4, Pin.OUT, value=0); dn_h = Pin(3, Pin.OUT, value=1)
    elif dn == 'M':
        dn_h = Pin(3, Pin.IN, None); dn_m = Pin(4, Pin.OUT, value=1)
    else:
        dn_h = Pin(3, Pin.OUT, value=0); dn_m = Pin(4, Pin.OUT, value=0)
    time.sleep_ms(5)

def handshake():
    global is_continuous
    print("QC 핸드셰이크 시작...")
    set_qc_logic('M', 'L') 
    is_continuous = False # 초기값은 고정 모드(5V)
    time.sleep(2)
    print("QC 3.0 인증 완료!")
    signal_feedback()

handshake()

while True:
    # --- 고정 전압 모드 ---
    if not sw_5v.value():
        print("Set: 5V")
        signal_feedback()
        set_qc_logic('M', 'L')
        is_continuous = False # 가변 모드 해제
        time.sleep(0.3)
        
    elif not sw_9v.value():
        print("Set: 9V")
        signal_feedback()
        # 가변 모드였다면 5V 리셋 후 이동
        if is_continuous:
            set_qc_logic('M', 'L')
            time.sleep_ms(150)
            is_continuous = False
        set_qc_logic('H', 'M')
        time.sleep(0.3)
        
    elif not sw_12v.value():
        print("Set: 12V")
        signal_feedback()
        # 가변 모드였다면 5V 리셋 후 이동
        if is_continuous:
            set_qc_logic('M', 'L')
            time.sleep_ms(150)
            is_continuous = False
        set_qc_logic('M', 'M')
        time.sleep(0.3)

    # --- 가변 전압 모드 (+0.2V / -0.2V) ---
    elif not sw_up.value():
        print("Step: +0.2V")
        signal_feedback()
        is_continuous = True # 가변 모드 진입 표시
        set_qc_logic('M', 'H'); time.sleep_ms(20)
        set_qc_logic('H', 'H'); time.sleep_ms(15)
        set_qc_logic('M', 'H')
        time.sleep(0.2)

    elif not sw_down.value():
        print("Step: -0.2V")
        signal_feedback()
        is_continuous = True # 가변 모드 진입 표시
        set_qc_logic('M', 'H'); time.sleep_ms(20)
        set_qc_logic('M', 'M'); time.sleep_ms(15)
        set_qc_logic('M', 'H')
        time.sleep(0.2)

    time.sleep_ms(10)

3. 로봇/RC카 적용 시의 장점

  1. 배터리 효율: 12V 모터를 돌리기 위해 7.4V 배터리 두 개를 직렬로 연결할 필요 없이, 가벼운 보조배터리 하나로 5V(로직용)와 12V(모터용)를 동시에 해결할 수 있습니다.
  2. 안전성: 보조배터리 자체에 과전류/과방전 방지 회로가 내장되어 있어 자작 로봇의 화재 위험을 크게 줄여줍니다.
  3. 정밀 제어: 단순히 모터를 켜고 끄는 게 아니라, 전압 자체를 0.2V씩 조절하여 로봇의 속도 한계를 물리적으로 튜닝할 수 있습니다.

💡 주의사항

  • 측정 필수: 실제 전압이 변하는지 반드시 멀티미터(테스터기)로 확인한 후 로봇의 모터 드라이버나 메인 보드에 연결하세요.
  • 공통 접지(GND): 보조배터리의 USB 출력 GND와 ESP32-C3의 GND는 반드시 연결되어 있어야 신호가 전달됩니다.

4. 블로그용 한 줄 요약 (Key 포인트)

  1. 회로의 핵심: 3.3V×10kΩ+2.2kΩ2.2kΩ​≈0.6V 의 전압 분배 법칙을 이용하여 QC 규격 신호를 생성합니다.
  2. 가변 모드 비결: D+ 혹은 D- 라인에 15ms~20ms 사이의 짧은 펄스를 주어 전압을 0.2V씩 조절합니다.
  3. 모드 전환: 가변 모드에서 고정 전압으로 돌아갈 때는 반드시 5V 리셋 시퀀스를 거쳐야 보조배터리가 오류 없이 반응합니다.

코멘트

“QC 3.0 보조배터리 전압 트리거 만들기 (5V~12V 가변 전원)”에 대한 2개 응답

  1. micro2iot 아바타

    [구매정보] 블로그에서 사용한 부품 구매정보입니다.
    아래 링크를 통해 구매 시 소정의 수수료를 제공받으며, 채널 운영에 큰 도움이 됩니다.

  2. micro2iot 아바타

    [구매정보] 블로그에서 사용한 부품 구매정보입니다.
    아래 링크를 통해 구매 시 소정의 수수료를 제공받으며, 채널 운영에 큰 도움이 됩니다.

    기성품 QC3.0 트리거 부품입니다. 딥 스위치를 이용해서 고정적으로 9v, 12v 전압을 쉽게 빼서 쓸 때 좋아요.

micro2iot에 답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다