DIY 프로젝트를 진행할 때 ESP32나 아두이노 같은 MCU에 12V 이상의 유도성 부하(모터, Solenoid 등)를 직접 연결하면, 역기전력(Back-EMF) 스파이크나 돌입 전류로 인해 MCU가 리셋되거나 파손되는 문제가 자주 발생합니다.
이 문제를 근본적으로 해결하기 위해 PC817 포토커플러를 사용해 제어부(3.3V)와 구동부(12V)의 GND까지 완전히 분리(Galvanic Isolation)하는 안전한 모터 제어 회로를 구성해 보았습니다.
1. 부품 구성 및 핵심 역할
- ESP32-C3: 3.3V 로직 제어기 (PWM 제어 신호 출력)
- PC817 포토커플러: MCU와 12V 회로 사이를 빛(Opto)으로 전달하여 전기적으로 완벽히 격리
- IRLZ44N N-Ch MOSFET: 12V 2A급 모터 전류를 스위칭하는 Power FET
- 1N5822 (쇼트키 다이오드): 모터 OFF 시 발생하는 고전압 역기전력을 흡수하는 플라이백(Flyback) 다이오드
- 저항: 220Ω (LED 전류 제한), 1kΩ (포토커플러 수광부 풀업), 10kΩ (게이트 풀다운)
2. 왜 포토커플러(PC817)를 추가해야 할까?
IRLZ44N은 Logic-Level MOSFET이라 ESP32의 3.3V GPIO로도 직결 구동은 가능합니다. 하지만 다음 두 가지 이유로 포토커플러 추가를 강력히 권장합니다.
- 전기적 격리 (MCU 보호): 모터 동작 시 발생하는 스파이크 노이즈가 ESP32의 GND로 흘러 들어가지 않아 MCU 튕김 현상을 100% 방지합니다.
- 게이트 전압 확보 (VGS=12V): ESP32의 3.3V 대신 12V 전원을 직접 MOSFET 게이트에 인가할 수 있어, MOSFET이 완전 턴온(Turn-On) 상태가 됩니다. 결과적으로 온저항(RDS(on))이 최소화되어 발열이 획기적으로 줄어듭니다.
3. 전체 회로도 (Schematic)
아래 회로도처럼 MCU 영역(3.3V GND)과 모터 영역(12V GND)을 절대 서로 묶지 않고 독립적으로 유지하는 것이 핵심입니다.

4. 핀 연결 가이드 (Pin-to-Pin)
- PC817 1번 핀 (Anode): ESP32 GPIO 8 → 220Ω 저항 거쳐서 연결
- PC817 2번 핀 (Cathode): ESP32 GND에 연결
- PC817 3번 핀 (Emitter): 12V GND에 연결
- PC817 4번 핀 (Collector): +12V에서 1kΩ 저항을 거친 후 연결 + IRLZ44N 1번 핀 (Gate)으로 연결
- IRLZ44N Gate (1번 핀): 12V GND 사이에 10kΩ 풀다운 저항 병렬 연결
- IRLZ44N Drain (2번 핀): 모터 (-) 단자 및 1N5822 다이오드 애노드(A) 연결
- IRLZ44N Source (3번 핀): 12V GND에 연결
- 모터 (+) 단자: +12V 및 1N5822 다이오드 캐소드(K, 띠 있는 쪽) 연결
5. 소프트웨어 설정 시 주의사항
PC817과 같은 광학 포토커플러는 턴온/턴오프 응답 속도에 한계가 있습니다. 따라서 ESP32-C3에서 PWM 제어를 적용할 때 주파수를 1kHz ~ 2kHz 수준으로 설정해야 합니다. PWM 주파수가 10kHz 이상으로 너무 높으면 포토커플러가 신호를 제대로 정형화하지 못해 MOSFET 발열이 심해질 수 있습니다.
PC817 포토커플러와 IRLZ44N MOSFET을 활용한 ESP32-C3 기반 12V 2A 안마기 모터 제어 회로의 상세 배선도 및 핀 번호 가이드입니다.
이 회로는 3.3V 제어 전원(ESP32)과 12V 구동 전원(모터)의 GND까지 완벽하게 분리(절연)하여 모터 역기전력 및 스파이크 노이즈가 ESP32-C3로 넘어오는 것을 근본적으로 차단합니다.
1. 주요 부품 및 핀 맵 (Pin-out)
- PC817 (4핀 딥 타입):
- 1번 핀 (Anode): 내부 LED (+)
- 2번 핀 (Cathode): 내부 LED (-)
- 3번 핀 (Emitter): 내부 트랜지스터 에미터 (Output GND)
- 4번 핀 (Collector): 내부 트랜지스터 컬렉터 (Output Signal)
- IRLZ44N (TO-220 패키지, 글자가 보이는 전면 기준):
- 1번 핀 (Gate): 제어 신호 입력
- 2번 핀 (Drain): 모터 (-) 연결
- 3번 핀 (Source): 12V 전원 GND 연결
- 쇼트키 다이오드 (1N5822 / SS34 등):
- 띠가 있는 쪽 (K, Cathode): +12V 전원
- 띠가 없는 쪽 (A, Anode): MOSFET Drain (모터 – 핀)
2. 상세 핀-투-핀 배선 표 (Pin-to-Pin Wiring)
[절연 영역 A: ESP32-C3 제어부 (3.3V 전원)]
| 출발지 | 연결 대상 | 사용 저항 / 비고 |
|---|---|---|
| ESP32-C3 GPIO 핀 (예: GPIO 8) | PC817 1번 핀 (Anode) | 220Ω 직렬 저항 거쳐서 연결 |
| ESP32-C3 GND 핀 | PC817 2번 핀 (Cathode) | 직접 연결 (3.3V GND) |
[절연 영역 B: 모터 및 MOSFET 구동부 (12V 전원)]
| 출발지 | 연결 대상 | 사용 저항 / 비고 |
|---|---|---|
| +12V 파워 Supply (+) | PC817 4번 핀 (Collector) | 1kΩ 직렬 저항 거쳐서 연결 |
| +12V 파워 Supply (+) | 안마기 모터 (+) 단자 | 직접 연결 |
| +12V 파워 Supply (+) | 다이오드 Cathode (띠 있는 쪽) | 역기전력 방지용 다이오드 |
| PC817 4번 핀 (Collector) | IRLZ44N 1번 핀 (Gate) | 1kΩ 저항 뒷단에서 MOSFET Gate로 직접 연결 |
| IRLZ44N 1번 핀 (Gate) | 12V 파워 GND (-) | 10kΩ 풀다운 저항 연결 |
| PC817 3번 핀 (Emitter) | 12V 파워 GND (-) | 직접 연결 (12V GND) |
| IRLZ44N 3번 핀 (Source) | 12V 파워 GND (-) | 직접 연결 |
| 안마기 모터 (-) 단자 | IRLZ44N 2번 핀 (Drain) | 직접 연결 |
| 안마기 모터 (-) 단자 | 다이오드 Anode (띠 없는 쪽) | MOSFET Drain과 함께 연결 |
★ 가장 중요한 핵심: ESP32-C3의 GND와 12V 전원의 GND는 절대로 서로 묶지 않고 완전히 분리해 두어야 포토커플러 절연 효과를 얻을 수 있습니다.
3. ESP32-C3 소프트웨어(PWM) 설정 가이드
PC817 포토커플러는 반응 속도(Rise/Fall Time) 제한이 있으므로, ESP32-C3에서 PWM 제어 시 주파수 설정을 너무 높게 잡지 않아야 합니다.
- 권장 PWM 주파수:1kHz ~ 2kHz (1,000Hz ~ 2,000Hz)
- 주파수가 10kHz 이상으로 너무 높으면 포토커플러가 신호를 제때 끄고 켜지 못해 MOSFET이 중간 온(Linear Area) 상태에 머물면서 발열이 급격히 증가합니다.
- 로직 반전 주의: 위 구성은 포토커플러 특성상 GPIO가 HIGH일 때 MOSFET 게이트에 12V가 인가되어 모터가 ON되는 정방향 동작 회로이므로, 일반적인 Duty Cycle 값을 그대로 적용하시면 됩니다. (0% = 정지, 100% = 최대 속도)


답글 남기기
댓글을 달기 위해서는 로그인해야합니다.