변환 결과 화면에는 "자동으로 추가된 회로 (N개)" 목록이 있습니다. 코드에는 없던 커패시터, 저항, 다이오드가 넷리스트와 BOM 에 들어가 있습니다. 사용자가 몰라도 되지만, 알고 싶을 때 알 수 있어야 합니다. 교육 제품이기 때문입니다. 이 가이드는 그 목록의 각 항목이 왜 필요한지 설명합니다.
자동으로 추가된 회로 (7개)
┌ C1~C4 디커플링 커패시터 0.1µF [왜?]
│ IC 전원핀 옆에서 순간 전류 요동을 흡수합니다.
│ 없으면 간헐적 리셋·오동작이 발생합니다.
│
┌ D1 플라이백 다이오드 1N4148 (릴레이 K1) [왜?]
│ 릴레이 코일이 꺼질 때 발생하는 역기전력을 흘려보냅니다.
│ 없으면 트랜지스터가 파괴됩니다.
│
┌ U3 레벨 시프터 (3.3V ↔ 5V, I²C) [왜?]
│ ESP32는 3.3V, 선택하신 센서는 5V 로직입니다.
│ 직결하면 ESP32 GPIO가 손상됩니다.디커플링 커패시터
IC 가 스위칭할 때마다 전원 핀에서 아주 짧은 순간 큰 전류를 당깁니다. 전원선은 인덕턴스를 가지므로 그 순간 전압이 출렁이고, 심하면 MCU 가 브라운아웃 리셋을 겪습니다. 전원 핀 바로 옆의 0.1 µF 세라믹 커패시터가 그 순간 전류를 대신 공급합니다. 브레드보드에서는 개발보드 안에 이미 있었기 때문에 보이지 않았을 뿐입니다.
- 규칙: IC 전원 핀당 0.1 µF 1개.
- ESP32 모듈 3V3 에는 추가로 10 µF 벌크 커패시터. Wi-Fi 송신 순간 수백 mA 의 펄스 전류가 흐르기 때문입니다.
- 레귤레이터 입출력에는 데이터시트 권장값(AMS1117: 입력 10 µF, 출력 10 µF + 100 nF).
풀업 저항
오픈 드레인 신호선은 스스로 HIGH 를 만들지 못합니다. 누군가 전원 쪽으로 당겨 주어야 하고, 아무도 당기지 않으면 선은 떠서 노이즈에 반응합니다.
- I²C SDA / SCL — 버스당 정확히 1세트 (2.2 k–10 k). 모듈에 이미 풀업이 실장되어 있으면 중복해서 넣지 않습니다. 총합 저항이 너무 낮으면 MCU 가 LOW 를 끌어내리지 못하므로 ERC 가 버스당 총합을 계산합니다.
- DS18B20 1-Wire DQ — 4.7 kΩ. 데이터시트 값입니다.
- ESP32 EN — 10 kΩ 풀업 + 0.1 µF. 전원이 안정된 뒤에 리셋이 풀리도록 RC 지연을 만듭니다. 없으면 부팅이 불안정합니다.
- ATmega328P RESET — 10 kΩ 풀업. 없으면 노이즈로 임의 리셋됩니다.
플라이백 다이오드
릴레이 코일, DC 모터, 솔레노이드는 유도성 부하입니다. 전류를 끊는 순간 코일은 흐르던 전류를 유지하려고 수십~수백 V 의 역기전력을 만들어 냅니다. 그 전압은 코일을 구동하던 트랜지스터나 GPIO 로 그대로 향합니다. 코일과 병렬로 거꾸로 달린 다이오드(1N4148, 1N4007)가 그 전류에 돌아갈 길을 만들어 줍니다. 릴레이 모듈을 쓰던 분은 모듈 안에 이미 있었습니다. L3 에서 릴레이를 보드에 직접 올리면 직접 넣어야 하고, ibouPCB 가 넣습니다.
레벨 시프터와 분압기
ESP32 · Pico · 라즈베리파이는 3.3 V 로직이고, HC-SR04 나 많은 5 V 아두이노용 모듈은 5 V 로직입니다. 5 V 출력을 3.3 V 입력에 직결하면 GPIO 가 손상됩니다 — 바로는 아니어도 몇 주 뒤에.
- 단방향 5 V → 3.3 V 입력(HC-SR04 ECHO 등): 저항 분압기 2개. 가장 싸고 충분합니다.
- 양방향 버스(I²C): MOSFET 기반 양방향 레벨 시프터.
- 3.3 V → 5 V 출력(WS2812B 데이터 등): 74AHCT125 같은 버퍼. 3.3 V 신호를 5 V 네오픽셀이 못 읽는 경우가 실제로 잦습니다.
보호 소자와 그 밖의 것
| 부품 | 언제 | 왜 |
|---|---|---|
| 직렬 저항 | LED 직결 | GPIO 전류 한도 안에서 LED 전류를 정합니다 |
| 역전압 보호 다이오드 / P-MOSFET | 외부 전원 입력이 있을 때 (L3) | 전원을 거꾸로 꽂아도 보드가 살아남습니다 |
| TVS 다이오드 | 외부로 나가는 커넥터 (L3, 제안) | 사람 손의 정전기(수 kV)가 MCU 에 들어가지 않게 합니다 |
| 드라이버 트랜지스터 (MOSFET) | GPIO 전류 한도를 넘는 부하 | AVR GPIO 는 핀당 40 mA, 릴레이 코일은 70 mA 이상입니다 |
| 테스트포인트 | L3 | 조립 후 전원 · 시리얼을 프로브로 확인할 자리 |
자동 삽입과 제안의 차이
답이 하나뿐인 것은 자동으로 넣습니다(디커플링, 풀업, 플라이백, 분압기). 선택이 필요한 것은 제안만 하고 결정은 사용자에게 남깁니다 — 더 큰 레귤레이터, 주소를 바꿀 수 있는 다른 모듈, 핀 재할당. 어느 쪽이든 목록에 근거(골든 패턴 출처 또는 ERC 규칙)가 붙고, 넷리스트 · BOM · explain.json 에서 확인할 수 있습니다.
레벨에 따른 차이
L2 Shield / HAT 에서는 개발보드가 전원과 리셋을 이미 가지고 있으므로 풀업과 직렬 저항 정도만 추가됩니다. L3 모듈 온보드에서는 개발보드가 사라지므로 전원 트리(레귤레이터 + 입출력 캡), 모듈 지원 회로(EN · IO0), 디커플링, 보호 소자, 테스트포인트가 모두 들어갑니다. 자동으로 추가된 부품 수가 L3 에서 훨씬 많은 이유입니다.