기초 · 난이도 보통
전원 계산 USB 하나로 센서 몇 개까지 쓸 수 있을까
센서를 많이 달면 피코가 갑자기 재부팅되거나 값이 이상해질 때가 있어요. USB와 피코 3.3V 출력이 줄 수 있는 전류, MQ 가스 센서 히터·서보·네오픽셀처럼 전류를 많이 쓰는 부품, 따로 전원을 쓸 때 GND를 잇는 법을 계산 예와 함께 정리했어요.
왜 전원을 계산해야 하나
피코에 부품을 하나씩 늘려 가다 보면 어느 순간 이런 일이 생겨요. 서보가 움직일 때마다 피코가 다시 켜지거나, 컴퓨터와 USB 연결이 끊기거나, 센서 값이 갑자기 내려가요. 전원이 부품들이 원하는 전류를 다 주지 못해서 생기는 일이 많아요. 부품을 꽂기 전에 전류를 더해 보면 이런 문제를 미리 막을 수 있어요.
전원이 줄 수 있는 양
| 전원 | 대략의 한계 | 비고 |
|---|---|---|
| 컴퓨터 USB 포트(USB 2.0) | 500mA | 피코 자신이 쓰는 전류도 여기서 나가요 |
| 피코 3V3(OUT) 36번 핀 | 300mA 이하 권장 | 피코 2 W 데이터시트 권장값 |
| 피코 GP 핀 하나 | 출력 세기 기본 4mA(2~12mA 중 설정), 모든 GP 핀 합 100mA | RP2350 데이터시트. 전원으로 쓰지 않아요 |
VBUS(40번 핀, 5V)는 USB에서 들어온 전기를 그대로 내보내요. 그러니 VBUS에 단 부품, 3V3에 단 부품, 피코 자신이 쓰는 전류를 모두 더해 USB 한계 안에 들어와야 해요.
부품별 대략 전류
| 부품 | 대략 전류 | 어디에서 |
|---|---|---|
| MQ 가스 센서 히터 | 약 150mA(히터 33Ω에 5V) | VBUS |
| MH-Z19B CO₂ 센서 | 평균 20mA 미만, 순간 최대 150mA | VBUS |
| PPD42NS 먼지 센서 | 약 90mA | VBUS |
| 릴레이 모듈(코일 켜짐) | 70mA 안팎 | VBUS |
| SG90 서보 | 움직일 때 수백 mA, 버틸 때 더 많음 | 따로 5V 권장 |
| 네오픽셀(WS2812B) LED 1개 | 흰색 최대 밝기일 때 최대 약 60mA | VBUS 또는 따로 5V |
| BME280, DHT22, MPU6050 | 수 mA 이하 | 3V3 |
| OLED(SSD1306) | 수십 mA 이하 | 3V3 |
숫자는 데이터시트와 판매처 자료의 대략값이에요. 제품마다 다르니 정확한 값이 필요하면 멀티미터로 직접 재요.
계산해 보기
예를 들어 MQ-2, MQ-135, MQ-7 세 개와 릴레이 하나를 VBUS에 단다고 해 봐요.
- MQ 세 개: 150mA × 3 = 450mA
- 릴레이: 70mA
- 합: 520mA
피코 자신이 쓰는 전류를 더하지 않아도 이미 USB 500mA를 넘어요. 이 계획은 USB 하나로는 무리예요. MQ 센서는 두 개까지만 쓰거나, 5V 어댑터를 따로 써야 해요.
네오픽셀도 생각보다 많이 써요. 8개짜리 막대를 흰색 최대 밝기로 켜면 60mA × 8 = 480mA까지 쓸 수 있어요. 코드에서 밝기를 3분의 1로 낮추면 전류도 그만큼 줄어요.
시나브로 PICO 작업대는 꽂은 부품의 대략 전류를 더해서 3.3V 줄이 300mA, 5V(USB)가 450mA를 넘으면 점검 칸에 알려 줘요.
따로 전원을 쓸 때
전류가 모자라면 5V 어댑터나 보조 배터리를 따로 써요. 이때 지킬 규칙이 세 가지 있어요.
- GND는 꼭 함께 이어요. 따로 전원의 −와 피코 GND를 이어야 신호가 같은 기준으로 읽혀요. 서보·센서 신호선만 피코에 잇고 GND를 빼먹으면 동작이 제멋대로가 돼요.
- 따로 전원의 +는 피코에 잇지 않아요. 부품의 +에만 이어요.
- USB가 꽂혀 있는데 VBUS에 다른 5V를 넣지 않아요. 두 전원이 서로 부딪혀요. 피코 자체를 다른 전원으로 켜야 할 때는 VSYS(39번 핀)에 넣는데, 데이터시트는 USB와 함께 쓸 경우 다이오드로 막는 방법을 설명해요. 처음에는 피코는 USB로, 부품은 따로 전원으로 나누는 방법이 가장 쉬워요.
전지로 작품을 돌릴 때
작품을 교실 밖에 두려면 전지가 필요해요. 이때는 "얼마나 오래 갈까"를 계산해요. 보조 배터리에 적힌 용량이 10000mAh이고 작품이 평균 200mA를 쓴다면, 이론상 10000 ÷ 200 = 50시간이에요. 하지만 보조 배터리의 mAh는 보통 안에 든 전지(약 3.7V)를 기준으로 적은 값이라, 5V로 바꿔 내보내면 전압 차이와 변환 손실만큼 쓸 수 있는 양이 줄어요. 그래서 실제 시간은 계산값보다 꽤 짧아요. 계산값은 출발점으로만 쓰고 실제로 돌려 확인해요. 몇몇 보조 배터리는 전류가 아주 작으면 스스로 꺼지니, 오래 두는 기록 장치는 이 점도 확인해요.
전류를 줄이는 방법도 있어요. MQ 센서처럼 히터가 있는 센서는 전류를 가장 많이 써요. 꼭 필요한 센서만 켜고, 기록 간격을 늘리고, 화면(OLED)은 필요할 때만 켜요. 피코의 무선(Wi-Fi)도 켜 두면 전류가 늘어요.
전원이 모자라다는 신호
- 서보나 릴레이가 움직이는 순간 피코가 재부팅돼요.
- 컴퓨터가 USB 장치를 잃었다가 다시 찾아요.
- 아날로그 값이 부품이 켜질 때마다 함께 흔들려요.
- 피코나 레귤레이터가 손으로 만지기 어려울 만큼 뜨거워요(바로 USB를 뽑아요).
이런 일이 생기면 전류를 많이 쓰는 부품부터 따로 전원으로 옮겨 봐요.
전류를 직접 재는 코드 없이 확인하는 법
전류는 피코 코드로는 잴 수 없어요. 멀티미터를 전류 모드로 두고, 부품의 + 선 중간에 끼워 재요. 이때 멀티미터의 빨간 선을 전류 단자(보통 mA 또는 10A)에 옮겨 꽂아야 하고, 다 잰 뒤에는 원래 자리로 돌려놓아요. 전류 모드인 채로 전압을 재면 합선이 생겨요. 전류를 기록하며 탐구하고 싶다면 ACS712 같은 전류 센서를 낮은 전압의 직류 회로에 써요.
# 계획 단계에서 전류를 더해 보는 작은 계산기(위 계획에서 MQ-7을 뺀 경우)
parts = [("MQ-2 히터", 150), ("MQ-135 히터", 150), ("릴레이", 70)]
total = 0
for name, ma in parts:
total += ma
print(f"{name}: {ma} mA")
print(f"DATA: vbus_ma={total}")
print("USB 하나로 괜찮아요" if total < 450 else "5V 어댑터를 따로 써요")