DC모터?
연속회전이 가능하고 속도 및 회전 방향이 제어가능한 모터
DC모터 제어
- DC모터의 회전 속도 및 방향을 제어하기 위해 별도로 드라이버가 필요
회전방향 제어하기
- DC모터는 전류의 방향에 따라 회전 방향이 변경된다
- +에서 -로 흐르는 전류방향을 -에서 +로 변경하면 회전방향을 반대가 된다.
속도 제어하기
- DC모터는 전압의 크기를 변화시켜 속도를 제어한다.
- 입력전압의 크기와 DC 모터의 속도가 비례
- 전압의 크기를 가변하기 위해 PWM 제어를 이용
*PWM 제어란?
- Pulse Width Modulation의 약자
- 일정한 주기 내에서 신호를 On 시키는 시간을 제어하여 신호의 출력 레벨을 가변 할 수 있도록 하는 제어방식
ex) 1초의 주기에서
On 시간이 1초이면 Full duty가 되어 출력레벨은 Full
On 시간이 0.5초이면 50%(Half) duty가 되고 출력레벨은 50% 감소
On 시간이 0.2초이면 20% duty가 되고 출력 레벨은 80% 감소
코드
방향 전환하기
위 코드를 통해 DC모터는 5초 주기로 방향을 바꾸며 회전한다.
속도 제어하기
- DC 모터의 속도를 제어하기 위해 PWM 제어를 이용
- PWM 제어를 이용하기 위해 motor.forward(), motor.backward()에 speed 인자를 추가
- Speed 인자는 0~1의 범위를 가지며, speed = 0.3이면 최대 속도의 30%로 속도가 감소
위 코드를 통해 모터는 최대 속도의 30%로 정회전하고 50%로 역회전한다.