산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

DC 모터 제어 마스터하기: PID 제어와 PWM 출력을 이용한 속도·방향 제어 전문 가이드

부품 및 소모품

부품수량비고
아두이노 듀 (Arduino Due)1다른 아두이노 보드도 사용 가능
Makeblock Me TFT LCD1선택 사항, 다른 디스플레이 또는 미사용 가능
저항 4.75kΩ4구현에 따라 값 변경 가능
회전 포텐셔미터 (일반)43개는 PID 계수 조절용으로 선택 사항
범용 PNP 트랜지스터4구현에 따라 변경 가능 (NPN BC337이 더 권장됨)
DC 모터 (일반)1
슬라이드 스위치1방향 선택용
포토일렉트릭 속도 센서 HC-020K1
브레드보드 (일반)1
점퍼 와이어 (일반)1

앱 및 온라인 서비스

프로젝트 소개

개요

대부분의 프로젝트에서 모터 속도와 방향을 동시에 제어하려 하지만, 단순히 PWM 신호를 모터에 직접 보내는 방식은 마찰과 관성 때문에 원하는 속도를 정확히 맞추기 어렵습니다. 이를 해결하기 위해 PID 제어를 사용합니다.

PID 컨트롤러란?

자동차 운전을 예로 들면: 정지에서 출발할 땐 가속 페달을 깊게 밟고, 일정 속도에선 약간만 조절하며, 가속이 너무 빠르면 페달을 놓습니다. PID 컨트롤러도 똑같이 작동합니다.

아두이노 PID 함수 구현

float controllerPID(float _E, float _Eprev, float _dT, float _Kp, float _Ki, float _Kd) {
  float P = _Kp * _E;
  float I = _Kp * 0.5 * _Ki * (_E + _Eprev) * _dT;
  float D = _Kp * _Kd * (_E - _Eprev) / _dT;
  return P + I + D;
}

DC 모터 구동 회로

아두이노 출력 핀으로 모터를 직접 구동할 수 없어 트랜지스터를 사용합니다. 모터는 전류로 구동되므로 트랜지스터의 콜렉터-이미터 경로로 모터 전류를 흘립니다. 트랜지스터 선택 시:

베이스 저항 계산: R = (VT - VBEon) * hFE / IM

예: 모터 70mA, BC307A (hFE≈140, VBEon=0.62V, ICmax=100mA), 아두이노 듀 3.3V 출력 → 약 5.36kΩ (4.9kΩ 사용)

방향 전환 및 중요 사항

H-브리지 구성으로 4개 트랜지스터를 사용해 전류 방향을 바꿉니다. 방향 전환 시 모터가 완전히 정지할 때까지 기다리는 루틴을 추가해 돌입 전류로 인한 손상을 방지합니다.

속도 측정 (HC-020K)

슬롯 20개 디스크 사용. 펄스 주파수 읽어 RPM 계산: RPM = 60 × 주파수 / 20

int readFrequency(int pin, float speed) {
  // speed: 초당 읽기 횟수 (0~10), 1초/speed 동안 펄스 카운트
  // 반환: 측정된 주파수 (Hz)
}

그래픽 표시 (Makeblock Me TFT LCD)

데카르트 좌표계 그리기, 플롯 영역 초기화, 선 그리기 함수 구현. 시리얼 통신으로 디스플레이 제어.

마무리

PID 제어로 무부하 DC 모터의 최저 속도를 정격의 5%까지 낮출 수 있습니다. 그래픽 기능 포함/미포함 두 가지 코드 버전 제공.

수정 (2018.02.25): NPN 트랜지스터 사용 시 극성 주의 (PNP: E+ C-, NPN: C+ E-)

코드

그래픽 기능 포함 버전

전체 코드는 첨부 파일 참조. 주요 함수: CommandToTFT, Cartesian_Setup, Cartesian_ClearPlotAreas, Cartesian_Line, readFrequency, controllerPID, setup, loop

그래픽 기능 제외 버전

핵심 제어 로직만 포함된 간소화 버전 제공.

회로도

PID 컨트롤러를 이용한 DC 모터 속도 제어 및 방향 전환 시 고려사항을 설명하는 프로토타입 회로도 제공.

제조공정

  1. 텅스텐-구리 합금으로 DC 모터 성능 향상
  2. Satellite CCRMA 키트로 센서 구동 오디오 이펙트 만들기
  3. 아두이노 나노와 조이스틱으로 2개 스테퍼 모터 제어하기 – 비주이노(Visuino) 튜토리얼
  4. 아두이노 우노로 8×8 LED 매트릭스 마스터하기: 단계별 가이드
  5. 학교용 스마트 체온 모니터링 시스템: 정확하고 실시간이며 안전한
  6. 아두이노용 효율적인 8비트 IO 포트 라이브러리 – 디지털 제어 확장
  7. 아두이노 64키 프로토타이핑 키보드 매트릭스 - 시프트 레지스터로 핀 절약하기
  8. 아두이노 나노용 고성능 2.8" TFT 실드 – 320×240 SPI 디스플레이
  9. 아두이노용 절연 아날로그 입력 회로 만들기
  10. 아두이노 프로젝트를 위한 스마트 실내 내비게이션 로봇 키트