PWM을 이용한 간단한 DC 모터 속도 제어
By: Jeremy Cook
전자 공학에서 가장 기본적인 작업 중 하나는 DC 모터 속도 제어입니다. 여기서는 MOSFET이나 전용 드라이버로 PWM 신호를 보내는 기초부터 이를 살펴보겠습니다. 이 신호는 컨트롤러 자체가 생성할 수 있는 것보다 더 높은 전류(및 종종 전압)를 사용하여 DC 모터 속도를 직접 제어합니다.
간단한 LED PWM 제어
Jeremy Cook | 외부 LED의 맥동이 오실로스코프로 표시됨
PWM(즉, 펄스 폭 변조)는 서로 다른 길이로 펄스를 반복하여 아날로그 전압 출력을 시뮬레이션합니다. 이 설정에서 주기는 하나의 켜짐/꺼짐 사이클이 완료되는 데 걸리는 시간으로 정의됩니다. 듀티 사이클은 보통 백분율로 표현되며, 켜짐 시간과 꺼짐 시간의 비율입니다.
5볼트 신호에 50% 듀티 사이클을 적용하면 2.5V 아날로그 신호로 시뮬레이션됩니다. 1ms의 주기는 초당 1000번(즉, 1000Hz) 이 켜짐/꺼짐 상태 변화를 생성하며, 이는 PWM 신호의 주파수로 정의됩니다. PWM 제어는 DC 모터 및 다른 서서히 변하는 부하와 잘 작동합니다. 오디오 재생과 같은 다양한 상황에서는 실제 아날로그 출력이 더 바람직합니다.
우리는 Raspberry Pi Pico 에서 CircuitPython을 실행하여 이 원칙을 탐구하고 PWM 신호를 생성할 것입니다. 아주 간단한 소개를 위해, 여기에서 찾을 수 있는 코드를 로드하세요. 이 코드는 온보드 LED를 최고 강도인 65,535 (2^16 – 1)에서 4095 (2^12 -1), 즉 초기 값의 1/10 미만으로 번갈아 변경합니다. 관찰자는 빛의 변화를 볼 수 있지만, 관찰된 빛 출력과 수치 값을 일치시키기는 어려울 수 있습니다.
MOSFET 모터 제어 회로
Jeremy Cook | MOSFET DC 모터 제어 회로
MOSFET (FQP30N06L)를 사용하는 제어 방법은 본질적으로 LED의 경우와 같습니다. 우리의 다음 실험에 대한 코드는 여기에서 찾을 수 있습니다. 제어 출력을 작은 저항(~100Ω)을 통해 MOSFET의 게인 핀에 연결합니다. 아무 입력이 없을 때 낮은 상태로 끌어당기기 위해 10k 저항을 접지에 추가합니다. 모터의 양극 리드는 MOSFET 드레인에 연결되고, MOSFET 소스는 접지에 연결됩니다.
처음에는 VBUS 핀이 양전압을 공급했지만, Pico와 공통 접지된 외부 전원 소스를 사용하는 것이 일반적으로 더 나을 것입니다. 비유전 다이오드를 구현하여 남아 있는 유도 부하를 처리하는 것도 권장됩니다.
L293D 모터 드라이버: 직류 모터 제어 회로를 쉽게 만드는 방법
Jeremy Cook | 캡션: L293D Motor Driver
MOSFETs는 훌륭한 범용 장치이지만, 속도와 방향을 제어하려거나 여러 모터를 관리해야 할 경우 상황이 매우 복잡해질 수 있습니다. 다행히도 이러한 문제를 해결하기 위해 준비된 모터 컨트롤러 IC를 사용할 수 있으며, 여기에는 사용된 오래된 L293D 드라이버가 포함됩니다. 배선 요구사항은 데이터시트에서 확인할 수 있습니다. Raspberry Pi Pico에 연결한 방법은 아래 다이어그램에 나와 있습니다:
Jeremy Cook | U4 GND 핀 내부 연결
이 설정을 위한 디지털 (온/오프) 회전 코드는 여기에서 찾을 수 있습니다. 모터는 최대 강도로 앞뒤로 움직이며, 중간에 멈춤이 있습니다. 이 PWM 코드는 특정 듀티 사이클로 모터를 초기화하고, 점진적으로 가속한 후 멈춥니다. 그런 다음 다른 방향으로 가속하고 다시 멈춘 후 이 순서를 반복합니다.
L293D 드라이버에 대한 주의 사항
마지막 코드 조각을 사용할 때 (12V VCC2 입력과 커패시터 없음), Raspberry Pi Pico 보드를 비활성화하게 되었습니다. 좋은 방법은 커패시터를 사용하여 전원 및 로직 입력을 균등화하는 것입니다. L293D는 내부 클램핑 기능을 제공하여 유도 부하를 처리하므로 외부 플라이백 다이오드는 필요하지 않았습니다. 어떻게 이런 일이 발생했는지에 대한 몇 가지 잠재적인 원인이 있지만, 하드웨어가 벤치를 떠나 실제 요구 사항을 충족하도록 명시되고 구현되어야 한다는 점을 상기시켜야 합니다.
플러그 앤 플레이 – 아니면 전체 맞춤화?
귀하의 DC 모터 제어 회로 설계는 영원히 브레드보드에 머물지 않을 것입니다. 여기에서 두 갈래의 길로 나뉩니다:
보다 진보된 프로토타입 제작이나 단일 설계의 경우, L293D와 같은 드라이버를 추가하여 DC 모터, 스테퍼, 서보 등을 위한 플러그 앤 플레이 솔루션을 제공하는 모터 실드 및 개발 보드가 제공됩니다. Arduino Motor Shield는 아마도 가장 잘 알려져 있으며 Arduino Uno 폼 팩터와 호환됩니다. RP2040 플랫폼을 계속 사용하고 싶다면, Maker Pi RP2040는 모터 및 다른 장치를 제어하기 위한 훌륭한 플러그 앤 플레이 솔루션이 될 수 있습니다.
스펙트럼의 다른 한쪽 끝에서는 모터 컨트롤러 설계를 자체 인쇄 회로 기판 설계에 직접 통합할 수 있습니다. 이러한 통합은 거의 무한한 설계 자유를 제공하며, 예를 들어 Maker Pi RP2040의 일부 기능을 구현하면서 필요 없는 부분은 제외할 수 있습니다. 또한 애플리케이션에 완벽한 물리적 폼 팩터로 보드를 레이아웃할 수 있습니다.
Jeremy Cook | 전기 모터 및 기타 부하 제어를 위한 MOSFET. 솔레노이드가 인덕터 역할을 하기 때문에 플라이백 다이오드는 여전히 좋은 아이디어였을 것입니다.
여기에서 제시된 일반적인 PWM 제어 원리는 확고하며 다양한 부하에 사용할 수 있습니다. 하지만, 이 기사에서 보여드린 하드웨어는 빠르게 데모용으로 조립되었습니다. 최종 설계 단계에서는 각 상황에 맞는 사양 및 Arrow에서 제공되는 데이터시트 정보를 신중하게 고려해야 합니다. 적절한 PWM DC 모터 컨트롤러 설정으로 귀하의 장치는 문제 없이 오랫동안 작동할 수 있습니다.
귀하의 설계가 어떻게 발전하든 Arrow는 마이크로컨트롤러, MOSFET, 모터 드라이버 및 PWM DC 모터 속도 제어기를 실현하는 데 필요한 다른 장치를 제공합니다!
기사 태그