아두이노 나노 ESP32 MOSFET 모듈
이 가이드에서는 아두이노 나노 ESP32와 MOSFET 모듈로 12V 부하를 구동하는 방법을 배웁니다. 나노 ESP32의 핀은 3.3V와 아주 작은 전류만 내보내므로 12V LED 스트립이나 팬을 혼자서는 구동할 수 없습니다. MOSFET 모듈이 중간에서 힘든 일을 대신해 줍니다. 자세히 배울 내용은 다음과 같습니다:
- AOD4184, LR7843 또는 FR120N MOSFET 모듈, 12V 전원 어댑터, 12V LED 스트립을 아두이노 나노 ESP32에 연결하는 방법.
- 아두이노 나노 ESP32가 부하를 완전히 켜고 끄고, PWM으로 전력을 단계별로 바꾸도록 프로그래밍하는 방법.

이것이 잘 동작하면, 나중에 같은 스케치에 WiFi를 추가하여 휴대폰이나 웹 페이지에서 스트립이나 팬의 전력을 설정할 수 있습니다.
| 1 | × | 아두이노 나노 ESP32 | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | (옵션) DC 커넥터 전원 연결 잭 플러그 소켓 | 쿠팡 | 아마존 | |
| 1 | × | MOSFET Module (AOD4184, LR7843 or FR120N) | 아마존 | |
| 1 | × | 12V LED 스트립 | 아마존 | |
| 1 | × | (또는) 12V DC 선풍기 | 아마존 | |
| 1 | × | 12V 전원 어댑터 | 아마존 | |
| 1 | × | DC Power Jack (for the 12V load) | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 나노용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 나노용 브레이크아웃 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 나노 ESP32용 전원 분배기 | 쿠팡 | 아마존 |
MOSFET 모듈에 대하여
MOSFET 모듈은 움직이는 부품이 없는 전자 스위치라고 생각하면 됩니다. 나노 ESP32가 작은 3.3V 신호를 보내면, 모듈이 훨씬 큰 DC 전류의 경로를 열거나 닫습니다. 12V LED 스트립, DC 모터, 팬, 펌프, 솔레노이드 밸브, 히터와 함께 사용할 수 있습니다.
이 가이드 하나로 세 가지 모듈을 다룹니다: AOD4184(D4184로도 판매됨), LR7843, FR120N. 이들은 같은 보드 설계를 사용합니다. 크기, 핀, 배선, 코드가 모두 같습니다. 보드 위의 MOSFET 칩만 다릅니다.
왜 아두이노 나노 ESP32 - 릴레이 대신 MOSFET 모듈을 고를까요? 릴레이는 딸깍 소리가 나고 시간이 지나면 마모되며, 켜기와 끄기만 할 수 있습니다. MOSFET 모듈은 조용하고, 매우 빠르며, 오래 사용할 수 있습니다. PWM도 받아 주므로 LED 스트립을 어둡게 하거나 팬을 느리게 할 수 있습니다. 한 가지 한계가 있습니다: DC 부하 전용입니다. AC 전원에는 절대 사용하지 마세요.
| AOD4184 | LR7843 | FR120N | |
|---|---|---|---|
| MOSFET | AOD4184A (N채널) | IRLR7843 (N채널) | IRFR120N (N채널) |
| 최대 부하 전압 (MOSFET 정격) | 40V DC | 30V DC | 100V DC |
| 최대 전류 (MOSFET 정격) | 50A | 161A | 9.4A |
| 온 저항 RDS(on) | 약 7 mΩ | 약 3.3 mΩ | 약 210 mΩ |
| 방열판 없이 실제 사용 가능한 전류 | 약 10–15A | 약 15A | 약 2A |
| 제어 신호 | 3.3V / 5V 로직, 액티브 HIGH | 3.3V / 5V 로직, 액티브 HIGH | 3.3V / 5V 로직, 액티브 HIGH |
| 절연 | PC817 포토커플러 | PC817 포토커플러 | PC817 포토커플러 |
| PWM | 가능, ~1 kHz 이하로 유지 | 가능, ~1 kHz 이하로 유지 | 가능, ~1 kHz 이하로 유지 |
| 부하 종류 | DC 전용 | DC 전용 | DC 전용 |
어떤 것을 사야 할까요?
- LR7843: 저항이 가장 낮아서 큰 전류에서도 가장 시원하게 유지됩니다. 긴 LED 스트립이나 큰 모터 같은 큰 12V 또는 24V 부하에 좋습니다. 최대 30V.
- AOD4184: 만능으로 쓰기 좋습니다. 강한 전류로 최대 40V까지 다룰 수 있어서 12V, 24V, 36V 부하에 맞습니다.
- FR120N: 가장 높은 전압(최대 100V)을 견디지만 저항도 가장 높습니다. 작은 전류, 방열판 없이 약 2A 이하로 사용하세요. 작은 24V 또는 48V 부하에 좋습니다.
50A와 161A라는 숫자는 작은 보드가 아니라 칩 자체의 한계입니다. 실제 사용에서는 열이 한계입니다. 몇 분 동작시킨 뒤 모듈을 만져 보세요. 너무 뜨거우면 부하를 줄이거나 방열판을 추가하세요.
작동 원리
입력 쪽에는 PC817 포토커플러가 있으며, D9 핀의 신호는 다음 경로를 지나갑니다: PWM 핀 → 작은 저항 → PC817 내부의 LED → 빛 → PC817 내부의 포토트랜지스터 → MOSFET 게이트. 게이트에 있는 저항은 PC817이 꺼져 있을 때 게이트를 0V로 당겨 둡니다. PC817을 건너는 것은 빛뿐이므로, 나노 ESP32 쪽과 12V 쪽은 서로 닿지 않습니다. 신호 GND와 부하 GND는 모듈에서 연결되어 있지 않습니다.
MOSFET은 N채널 로우사이드 스위치입니다. LOAD 단자와 − 단자 사이에 있어서, 부하의 양극선이 아니라 음극선을 스위칭합니다. 부하 자체는 +와 LOAD 사이에 연결합니다.
D9에서 오는 신호의 종류별로 모듈이 하는 일은 다음과 같습니다.
PWM 핀에 HIGH (3.3V) → 부하 전력 100%
- 몇 mA가 PC817 내부의 LED로 흘러 LED가 켜집니다 (칩 안에 있어서 눈에는 보이지 않습니다).
- 포토트랜지스터가 도통하여 MOSFET 게이트에 부하 전원의 약 절반을 공급합니다. 12V 어댑터라면 약 6V입니다.
- 이제 MOSFET은 닫힌 스위치처럼 완전히 ON입니다. 저항은 아주 작아서 수 mΩ (AOD4184, LR7843) 또는 약 0.2Ω (FR120N)입니다.
- 전류는 어댑터 +에서 + 단자로, 부하를 지나 LOAD로, MOSFET을 거쳐 −로 나가 어댑터 −로 돌아갑니다.
- 부하는 거의 전체 12V를 받습니다. PC817 LED는 작은 전류만 필요하므로 3.3V 핀으로 충분합니다. 레벨 시프터는 필요 없습니다.
- 코드: analogWrite(MOSFET_PIN, 255), 즉 듀티 100%.
PWM 핀에 LOW (0V) → 부하 꺼짐
- 전류가 없으므로 PC817 내부의 LED는 꺼진 채로 있습니다.
- 포토트랜지스터가 꺼집니다. 게이트 저항이 게이트를 0V로 유지합니다.
- MOSFET은 OFF이며, LOAD와 − 사이의 열린 스위치와 같습니다.
- 부하의 음극선이 어댑터에서 끊겨 전류가 흐르지 않고 부하는 0V를 받습니다.
- 코드: analogWrite(MOSFET_PIN, 0), 즉 듀티 0%.
PWM 핀에 PWM 신호 → 부하 일부 전력
- D9가 LOW와 HIGH 사이를 아주 빠르게 오갑니다. 나노 ESP32의 analogWrite()는 기본으로 1 kHz를 사용하며, 이는 초당 1000번이라는 뜻입니다.
- MOSFET은 매번 전환을 따라갑니다: HIGH인 구간마다 ON, LOW인 구간마다 OFF. 부하는 12V 펄스를 받습니다.
- 듀티 사이클은 핀이 HIGH인 시간의 비율입니다. analogWrite() 값을 255로 나눈 값입니다. 평균 전압과 전력은 듀티 사이클에 최대값을 곱한 값입니다. 12V 전원이라면:
- AnalogWrite 64 (25%) → 평균 약 3V → 전력은 약 4분의 1
- AnalogWrite 128 (50%) → 평균 약 6V → 전력은 약 절반
- AnalogWrite 191 (75%) → 평균 약 9V → 전력은 약 4분의 3
- LED 스트립은 눈이 따라가지 못할 만큼 빨리 깜박이므로 더 어둡게 보입니다. 팬, 모터, 펌프는 회전하는 부분이 펄스를 부드럽게 만들어 주므로 더 느리게 돕니다. 낮은 듀티 사이클에서는 팬이 시동되지 않을 수 있습니다.
- PC817은 느리므로 주파수를 약 500 Hz에서 1 kHz로 유지하세요. 기본값 1 kHz면 괜찮습니다. 주파수가 훨씬 높으면 MOSFET이 완전히 스위칭되지 않고, 펄스가 지저분해지며, MOSFET이 뜨거워집니다.
- 솔레노이드 잠금장치나 밸브에는 PWM을 사용하지 마세요. 이들에는 HIGH와 LOW만 사용하세요.
기억해 둘 몇 가지 규칙:
- 게이트는 부하 전원의 약 절반만 받으므로, 부하 전원은 최소 약 6V 이상이어야 합니다. 5V 부하 전원은 잘 동작하지 않습니다. 부하가 몇 A 이상 흐르면 9V 이상을 사용하세요.
- 보드에는 플라이백 다이오드가 없습니다. 모터, 펌프, 솔레노이드, 릴레이 코일에는 부하와 병렬로 외부 다이오드(예: 1N5819 또는 1N4007)를 추가하세요. 캐소드(줄무늬가 있는 쪽)를 부하 +에, 애노드를 부하 −에 연결합니다.
핀아웃

모듈에는 두 그룹의 핀이 있습니다. 제어 쪽에는 2핀 헤더(2.54mm, 브레드보드에 맞음)가 있고, 전원 쪽에는 나사 단자가 있습니다.
제어 쪽:
- PWM 핀: 아두이노 나노 ESP32의 GPIO 핀에 연결합니다 (제어 신호)
- GND 핀: 아두이노 나노 ESP32의 GND에 연결합니다 (신호 접지)
전원 쪽:
- + 핀: 부하 전원 공급 장치의 양극(예: 12V)과 부하의 양극선에 연결합니다. 두 선이 이 단자 하나를 함께 씁니다.
- LOAD 핀: 부하의 음극선에 연결합니다 (스위칭되는 쪽이며 MOSFET 드레인으로 이어집니다)
- − 핀: 부하 전원 공급 장치의 음극(접지)에 연결합니다
라벨은 생산 묶음에 따라 조금 다를 수 있습니다. 항상 가지고 있는 보드에 인쇄된 글자를 확인하세요.
선연결
나노 ESP32는 D9 핀(및 GND)에서 모듈의 PWM과 GND 핀으로 신호만 보내고, 12V 어댑터는 나사 단자를 통해 부하에 전원을 공급하므로 12V가 보드의 핀 근처에 가지 않습니다.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
예제: 다른 부하 연결하기
LED 스트립이 아닌 다른 것을 구동하고 싶나요? 나노 ESP32의 D9와 GND 선은 그대로 두세요. 전원 쪽만 바뀌며, 패턴은 항상 같습니다:
- 12V 어댑터 +는 + 단자에, 어댑터 −는 − 단자에.
- 부하의 + 선은 같은 + 단자에, 부하의 − 선은 LOAD 단자에.
시작하기 전에:
- 어댑터를 부하에 맞추세요. 12V 부하에는 12V 어댑터가 필요합니다. 모듈이 동작하려면 최소 6V가 필요합니다.
- 모듈을 전류에 맞추세요. FR120N은 작은 부하(방열판 없이 약 2A)에만 괜찮습니다. 더 큰 부하에는 AOD4184 또는 LR7843을 사용하세요.
- 모든 부하에 같은 코드를 업로드할 수 있습니다. 솔레노이드의 경우 페이드 대신 완전 ON과 완전 OFF(HIGH와 LOW)만 사용하세요.
"작동 원리"에서 설명한 플라이백 다이오드는 아래에 나오는 코일이 들어 있는 모든 부하에 필요합니다: 모터, 팬, 펌프, 솔레노이드 두 가지. 부하의 두 선 사이에 줄무늬를 +쪽으로 하여 연결하세요.
12V DC 모터 예제

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
모터 +는 +에, 모터 −는 LOAD에 연결합니다. 다이오드(1N5819 또는 1N4007)를 추가합니다: 줄무늬 쪽(캐소드)은 모터 +에, 다른 쪽(애노드)은 모터 −에 연결합니다. PWM이 속도를 바꿉니다.
이 모듈은 모터를 한 방향으로만 돌릴 수 있습니다. 정방향과 역방향이 필요하면 L298N 같은 모터 드라이버를 대신 사용하세요. 아두이노 나노 ESP32 - DC 모터 가이드에서 방법을 볼 수 있습니다.
12V 쿨링 팬 예제

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
빨간 선(+)은 +에, 검은 선(−)은 LOAD에 연결합니다. 팬에 노란 선이 있다면 속도 신호선입니다. 연결하지 않고 두세요. 다이오드는 싸고 안전하므로 여기에도 넣는 것이 좋습니다. PWM이 팬 속도를 정하지만, 낮은 듀티 사이클에서는 팬이 시동되지 않을 수 있으므로 약 30% 이상에서 시작하세요.
12V LED 스트립 예제

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
메인 배선도와 같은 부하입니다. 스트립 +(보통 12V로 표시됨)는 +에, 스트립 −는 LOAD에 연결합니다. LED 스트립에는 코일이 없으므로 다이오드가 필요 없습니다. PWM이 밝기를 정합니다. 긴 스트립은 더 많은 전류를 쓰므로 먼저 전류를 확인하고 그에 맞는 모듈을 고르세요. 참고: 이것은 단색 스트립용이며 RGB나 주소 지정형 스트립에는 사용할 수 없습니다.
12V 워터 펌프 예제

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
펌프 +는 +에, 펌프 −는 LOAD에 연결하고 다이오드를 추가합니다. PWM이 물의 양을 정합니다. 물 없이 펌프를 작동시키지 마세요.
12V 솔레노이드 잠금장치 예제

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
펌프처럼 다이오드와 함께 연결합니다. 완전 ON 또는 완전 OFF(100% 또는 0%)로만 스위칭하세요. PWM 밝기 조절은 안 됩니다. 계속 ON으로 두면 잠금장치가 뜨거워지므로, 잠금을 풀 때 잠깐만 ON으로 하고 그다음 OFF로 하세요.
12V 솔레노이드 밸브 예제

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
같은 배선, 같은 다이오드입니다. 상시 닫힘 밸브입니다: ON이면 열리고 OFF이면 닫힙니다. PWM이 아니라 ON과 OFF만 사용하세요.
MOSFET 모듈을 위한 프로그래밍 방법
라이브러리는 필요 없습니다. 나노 ESP32는 내장 함수 analogWrite()를 사용합니다.
- 모듈의 PWM 핀에 연결된 아두이노 나노 ESP32의 핀을 설정합니다:
- 핀을 출력으로 설정하고 부하를 OFF 상태로 시작합니다:
- 부하를 완전히 켭니다:
- 부하를 끕니다:
- 부하를 퍼센트(0에서 100) 단위의 전력 수준으로 설정합니다:
ON과 OFF만 필요하다면 digitalWrite(MOSFET_PIN, HIGH)와 digitalWrite(MOSFET_PIN, LOW)도 동작합니다.
아두이노 나노 ESP32 코드 - MOSFET 모듈
아래 코드는 부하를 2초 동안 켜고 2초 동안 끕니다. 그런 다음 0.5초마다 전력을 10%에서 100%까지 10% 단계로 올립니다. 그 후 90%에서 0%까지 다시 낮추고, 1초 기다린 뒤 처음부터 다시 시작합니다.
빠른 단계
다음 지침을 단계별로 따르세요:
- 아두이노 나노 ESP32를 처음 사용한다면, 아두이노 나노 ESP32 - 소프트웨어 설치을 참조하세요.
- 제공된 다이어그램에 따라 부품을 배선하세요. 12V 어댑터는 아직 꽂지 마세요.
- USB Type-C 케이블로 아두이노 나노 ESP32를 컴퓨터에 연결하세요.
- 컴퓨터에서 아두이노 IDE를 실행하세요.
- 알맞은 아두이노 나노 ESP32 보드(예: Arduino Nano ESP32)와 COM 포트를 선택하세요.
- 위의 코드를 복사하여 아두이노 IDE에 붙여넣으세요.
- Upload 버튼을 클릭하여 코드를 아두이노 나노 ESP32에 업로드하세요.
- 12V 전원 어댑터를 꽂으세요.
- 시리얼 모니터를 열고 보드레이트를 9600으로 설정하세요.
- LED 스트립을 지켜보세요: 2초 동안 최대 밝기, 2초 동안 꺼짐, 그다음 천천히 밝아졌다가 다시 천천히 어두워집니다.
12V 팬을 연결했다면, 팬이 최고 속도로 돌다가 멈춘 다음 같은 패턴으로 빨라졌다가 느려지는 소리를 들을 수 있습니다.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.