2. 모터 구동

2-1. DC모터의 기본적인 동작.

DC모터?

control PIN

A channel

B channel

1. 좌측 모터 드라이버를 이용하여 좌츠 바퀴를 회전 시켜보자 (motor.py)

잠깐! PWM?

img.gif

이 영상이 이해가 됐다면 앞으로의 설명은 넘어가도 좋다

일반적인 LED 모듈 출력 (펄스 100%)

PWM 기능으로 출력을 20%까지 떨어트린 LED모듈 (펄스 20%)

PWM의 메커니즘

센서에 전력이 ON 된 상태

센서에 전력이 OFF 된 상태

이제 우리는 이 신호를 일정한 규격(주파수 / hz)으로 나눌 것이다.

  • 본래 주파수란 1초 동안 음파의 떨림의 횟수를 뜻하지만
  • 지금은 1초 동안 켜짐과 꺼짐을 감지하는 행동을 반복하는 횟수로 생각하면 좋다.

이 500등분 된 1초의 구간 안에서 켜짐과 꺼짐 행동이 반복되게 된다
아래에서 부터는 500등분 중 6등분 만을 확대해서 확인해보도록 하자

이제 이 500개의 등분 들의 켜짐과 꺼짐의 비율을 설정해 줄 것이다

DutyCycle

2ms 중 20% 만이 전원이 들어온 상태이며 이 행동을 1초동안 500회 반복하게 된다

동영상 속의 LED가 1초 동안 500회 깜빡이는데, 그 중 2ms 조차 켜짐과 꺼짐의 시간적 비율 차이가 있으므로
그 속도가 너무 빨라서 인간의 눈에서는 상시 켜져 있다고 밖에 볼 수 없는 것이다.
하지만 약 2ms의 시간 중 80%는 분명히 꺼져있는 시간이기 때문에 그 밝기가 약해져 보이는 것이다.

DutyCycle(20)은 예를 들어 위와 같은 모습이다.
아까의 100%의 실선에 비해 드문드문 비어있는 점선이 되고 말았지만
전력의 출력은 확실하게 있기 때문에 약한 빛이 출력된다.

결론
PWM은 이러한 비율의 차이를 이용하여 디지털 신호를 쪼개고 쪼개어 그 단계를 나누어 출력하는 방법이다.

img.gif

PWM 설명 끝

2. 속도 변화 예제 (motor2.py)

3. 방향전환 예제 (motor3.py)

Q1. 모터 드라이브B의 코드를 추가하여 이용한 완전한 방향전환 예제

2-2. 스위치를 입력받아 자동차 조종하기 예제

1단계. 뼈대 제작하기 (motor4-1.py)

2단계. 전진후진 기능 구현 (motor4-2.py)

3단계 좌회전 우회전 기능 구현화 (motor4-3.py)

4단계. 함수 모듈화 (motor4-4.py)

5단계. gpio 인터럽트 함수 (아직)

6단계. 통합 함수 (motor4-6.py)