This lesson is only available in Korean for now.
Lesson 5 of 20

솔레노이드 밸브 — GPIO 는 코일을 못 켠다

MOSFET · 환류 다이오드 · 홀딩 전류

솔레노이드 밸브 — GPIO 는 코일을 못 켠다
가장 단순한 장치이고, 가장 자주 태워 먹는 장치입니다.

밸브는 이 기계에서 가장 단순한 장치입니다. 켜면 열리고 끄면 닫힙니다. 그런데 초보자가 가장 자주 태워 먹는 장치이기도 합니다.

GPIO 핀이 낼 수 있는 것
핀 하나에 16 mA 남짓, 전부 합쳐 50 mA 정도. 3.3 V.
솔레노이드가 먹는 것
12 V 에 200~500 mA. 열 배가 넘습니다.

GPIO 핀은 신호를 내보내는 곳이지 전기를 대는 곳이 아닙니다. 직접 연결하면 밸브가 안 열리는 데서 끝나지 않고, RP1 칩이 죽습니다 — 그리고 그것은 교체할 수 없습니다.

홀딩 듀티를 밀어 보세요. 소비 전력과 발열이 함께 줄어드는 것이 보입니다.
Loading…
홀딩 전류는 전기를 아끼는 이야기가 아닙니다. 열이 시약으로 새는 것을 막는 이야기입니다.
Python Runs in your browser

여섯 개를 한꺼번에 — ULN2803A

MOSFET 을 여섯 개 만드는 대신 ULN2803A 한 칩이면 여덟 채널이 됩니다. 환류 다이오드도 안에 들어 있습니다.

다만 함정이 하나 있습니다 — COM 핀을 코일 전원(+12 V)에 반드시 이어야 그 다이오드가 일을 합니다. 학생들이 거의 반드시 빠뜨리는 배선입니다.

from gpiozero import OutputDevice, PWMOutputDevice import time class Valve: """당길 때는 100%, 붙잡을 때는 절약 — 드라이버 계층""" def __init__(self, pin, hold=0.4, pull_ms=100): self._out = PWMOutputDevice(pin, initial_value=0) self._hold, self._pull_ms = hold, pull_ms def open(self): self._out.value = 1.0 # 당긴다 time.sleep(self._pull_ms / 1000) self._out.value = self._hold # 붙잡는다 def close(self): self._out.value = 0.0

밸브는 코일이라 소프트웨어 PWM 으로 충분합니다 — 코일 자체가 큰 저역통과 필터라 지터를 느끼지 못합니다. (TEC 는 다릅니다. 11강에서 봅니다.)

🤔 Check yourself
GPIO 핀에 솔레노이드를 직접 연결하면?
🤔 Check yourself
게이트 풀다운 저항이 필요한 까닭은?