PWM을 이용한 간단한 DC 모터 속도 제어

글: Jeremy Cook

전자 장치에서 가장 기본적인 작동 방식 중 하나는 DC 모터 속도 제어입니다. 여기서 우리는 이것이 의미하는 바를 기본적인 것 즉, PWM 신호를 MOSFET이나 전용 드라이버로 전송하는 것에서부터 살펴보도록 하겠습니다. 이 신호는 컨트롤러가 스스로 생성할 수 있는 것보다 더 높은 전류(그리고 때로는 전압)를 사용하여 DC 모터 속도를 직접 제어합니다.

간단한 LED PWM 제어

0323-External-LED-with-pulses-indicated-by-oscilloscope-image-2

Jeremy Cook | 오실로스코프로 펄스가 표시되는 외장 LED

PWM(즉, 펄스 폭 변조)은 시간의 길이를 다양하게 하여 펄스를 반복함으로써 아날로그 전압 출력을 시뮬레이션합니다. 이 설정에서는 그 시간이 켜기/끄기 사이클이 1회 완료되는 데 걸리는 시간으로 정의됩니다. 퍼센티지로 표현되기도 하는 듀티 사이클은 켜짐 시간과 꺼짐 시간의 비율입니다.

50% 듀티 사이클에 5볼트 신호의 경우 2.5V 아날로그 신호가 시뮬레이션될 것입니다. 1ms의 시간이면 이 켜기/끄기 상태 변화가 초당 1,000회(또는 1,000Hz) 발생할 것이며, 이것을 PWM 신호의 주파수라고 정의합니다. PWM 제어는 DC 모터나 그 밖에 천천히 변화하는 부하에서 잘 작동합니다. 트루 아날로그 출력은 오디오 재생 같은 다양한 분야에서 선호됩니다.

우리는 CircuitPython을 실행하는 Raspberry Pi Pico를 사용해서 이 원리에 따라 PWM 신호가 생성되는 것을 살펴보도록 하겠습니다. 아주 간단히 소개하자면, 여기에 보이는 코드를 로딩하십시오. 이 코드는 온보드 LED를 최대 세기 즉, 65,535(2^16 – 1)에서 원래 값의 1/10이 안 되는 4095(2^12 - 1)로 바꿀 것입니다. 이 빛이 변화하는 것을 관찰할 수는 있지만 관찰된 빛 출력과 그 숫자값을 서로 관련시키는 것은 어려울 것입니다.

MOSFET 모터 제어 회로

0323-visual-of-MOSFET-DC-motor-control-circuit-image-3

Jeremy Cook | MOSFET DC 모터 제어 회로

MOSFET(FQP30N06L)을 사용한 제어 방법은 기본적으로 LED의 경우와 동일합니다. 우리의 다음 실험에 필요한 코드는 다음과 같습니다. 작은 저항기(~100Ω)를 통해 제어 출력을 MOSFET의 게인 핀에 연결합니다. 10k 저항기를 접지에 추가하여 입력이 없을 때 낮은 값이 되게 합니다. 모터의 양극 선은 MOSFET 드레인과 연결하고, MOSFET 소스는 접지와 연결합니다.

처음에는 VBUS 핀이 양의 전압을 공급했지만 Pico로 공통 접지에 연결된 외부 전압 소스가 일반적으로 더 나을 것입니다. 기생 인덕턴스 부하를 관리하기 위해 플라이백 다이오드를 구현하는 것도 좋을 것입니다.

L293D 모터 드라이버: DC 모터 제어 회로를 더 쉽게 구축하는 방법

0323-L293D-Motor-Driver-image-4

Jeremy Cook | 자막: L293D 모터 드라이버

MOSFET은 훌륭한 범용 장치이지만 속도와 방향을 제어하고 싶다거나 관리해야 할 모터가 하나 이상이라면 문제가 급속도로 복잡해집니다. 다행히도 이런 문제를 해결하기 위해 여기에 사용된 오래된 L293D 드라이버 등과 같은 빌트인 모터 컨트롤러 IC가 제공됩니다. 배선 요구사항은 데이터 시트를 통해 확인할 수 있습니다. 제가 Raspberry Pi Pico에 연결할 때 사용한 방법을 아래에 그림으로 표시하였습니다.

0323-U4-GND-pins-connected-internally-image-5

Jeremy Cook | 내부에 연결된 U4 GND 핀들

이 설정을 위한 디지털(켜기/끄기) 순환 코드가 여기 있는데요, 이 코드는 모터를 최대 동력으로 앞으로 움직였다가 잠깐 정지한 후 다시 뒤로 움직이게 해줍니다. 이 PWM 코드는 모터를 특정한 듀티 사이클로 가동시킨 후 사이클을 점차 올렸다가 정지시킵니다. 그 다음, 다른 방향으로 증가시켰다가 다시 멈춘 후 이 시퀀스를 반복합니다.

L293D 드라이버의 주의 문구

저는 그 마지막 코드(12V VCC2 입력, 커패시터 없음)를 사용하면서 결국 Raspberry Pi Pico 보드를 비활성화하였습니다. 좋은 방법은 커패시터를 사용해서 전원과 로직 입력이 균형을 맞추는 것이었을 것입니다. L293D는 유도 부하를 관리하는 내부 클램핑 성능을 제공하므로 외장 플라이백 다이오드가 필요하지 않았을 것입니다. 이렇게 된 데에는 몇 가지 원인이 있을 테지만 이를 통해 하드웨어는 한 번 실험대를 떠나면 실제 환경에서의 요구사항을 충족하도록 사양을 정의하고 구현하도록 해야 한다는 것을 상기하는 편이 좋을 것입니다.

플러그 앤 플레이 또는 완전 맞춤화?

여러분의 DC 모터 제어 회로 설계가 아마도 언제까지 브레드보드에 머무르지는 않을 것입니다. 여기서부터 두 개의 갈림길이 있습니다.

더 높은 수준의 프로토타이핑이나 1회성 설계를 원한다면 DC 모터, 스테퍼, 서보 등을 위한 플러그 앤 플레이 솔루션으로 L293D 같은 드라이버를 추가해주는 모터 실드와 개발 보드가 있습니다. 아마 Arduino Motor Shield가 가장 유명할 것이며 이 모터 실드는 Arduino Uno 폼 팩터와 호환 가능합니다. RP2040 플랫폼을 고수하고 싶다면 모터와 다른 장치들을 제어하는 데 있어서 Maker Pi RP2040이 훌륭한 플러그 앤 플레이 솔루션이 될 수 것입니다.

또 한편으로는 여러분이 갖고 있는 인쇄 회로 기판 설계에 모터 컨트롤러 설계를 통합하는 것이 가능합니다. 이렇게 통합하면 거의 무한한 설계의 자유가 주어져서 예를 들어 Maker Pi RP2040의 일부 기능들을 구현함과 동시에 여러분에게 필요하지 않은 것은 뺄 수가 있습니다. 또, 여러분의 애플리케이션에 맞는 완벽한 물리적 폼 팩터에 보드를 배치할 수도 있습니다.

PWM 모터와 부하 제어

0323-MOSFET-for-electrical-motor-and-other-load-control-image-6

Jeremy Cook | 전기 모터와 기타 부하 제어를 위한 MOSFET. 솔레노이드가 인덕터 역할을 하기 때문에 플라이백 다이오드는 여전히 좋은 아이디어였을 것입니다.

여기서 소개한 일반적인 PWM 제어의 원리는 타당하고 여러 가지 부하에 사용될 수 있지만, 제시한 하드웨어는 이 문서를 위한 데모로서 빠르게 만들어본 것이었습니다. 최종 설계 시에는 각각의 상황을 신중하게 고려하고 Arrow에서 제공하는 사양과 데이터 시트 정보를 함께 참고하는 것이 좋을 것입니다. 여러분의 장치는 적절한 PWM DC 모터 컨트롤러 구성을 통해 몇 년 동안 문제 없이 작동할 수 있습니다.

여러분의 설계가 어떻게 발전하든 Arrow는 마이크로컨트롤러, MOSFET, 모터 드라이버, 그리고 여러분의 PWM DC 모터 속도 제어기를 현실화하는 데 필요한 그 밖의 장치들을 공급해드리겠습니다!

관련 상품 참조

Arduino Motor Shield Rev3 | A000079

Arduino Corporation Power Management Development Boards and Kits 보기

관련 상품 참조

L293D

STMicroelectronics Motor Controller and Driver ICs 보기

ArrowPerks-Loyalty-Program-Signup-banner-KR


최신 뉴스

Sorry, your filter selection returned no results.

개인정보 보호정책이 업데이트되었습니다. 잠시 시간을 내어 변경사항을 검토하시기 바랍니다. 동의를 클릭하면 Arrow Electronics 개인정보 보호정책 및 이용 조건에 동의하는 것입니다.

당사의 웹사이트에서는 사용자의 경험 향상과 사이트 개선을 위해 사용자의 기기에 쿠키를 저장합니다. 당사에서 사용하는 쿠키 및 쿠키 비활성화 방법에 대해 자세히 알아보십시오. 쿠키와 추적 기술은 마케팅 목적으로 사용될 수 있습니다. '동의'를 클릭하면 기기에 쿠키를 배치하고 추적 기술을 사용하는 데 동의하는 것입니다. 쿠키 및 추적 기술을 해제하는 방법에 대한 자세한 내용과 지침을 알아보려면 아래의 '자세히 알아보기'를 클릭하십시오. 쿠키 및 추적 기술 수락은 사용자의 자발적 선택이지만, 웹사이트가 제대로 작동하지 않을 수 있으며 사용자와 관련이 적은 광고가 표시될 수 있습니다. Arrow는 사용자의 개인정보를 존중합니다. 여기에서 당사의 개인정보 보호정책을 읽을 수 있습니다.