pwm 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/pwm...

15
컴퓨터 네트워크 설계 청주대학교 전자공학과 한철수 PWM 출력 제어

Upload: others

Post on 01-Nov-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

컴퓨터 네트워크 설계

청주대학교 전자공학과

한철수

PWM 출력 제어

Page 2: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

목차

2

• PWM 출력 제어

• 하드웨어방식의 PWM 출력 제어 함수

• 소프트웨어방식의 PWM 출력 제어 함수

• 제어 연습

Page 3: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

PWM 출력 제어

3

• GPIO핀을 통해 출력되는 주기적인 펄스 신호의 폭을 조절하는 것을 PWM 출력 제어라고함.‒ 여기서 PWM(Pulse Width Modulation)은펄스 폭 변조를뜻함.

• PWM 신호주기

Page 4: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

PWM 신호의 듀티 비

4

• 듀티 비(Duty Ratio)

• PWM 출력 제어는 조명의 밝기 제어, 모터의 속도 제어 등에널리 이용됨.

듀티 비

80%

50%

20%

듀티 비 =펄스 폭주기

Page 5: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

라즈베리 파이의 PWM 핀

5

• 라즈베리파이에는 2개의 PWM 채널이 있음.‒ PWM0

‒ PWM1

PWM0

PWM0PWM1PWM1

Page 6: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

PWM 핀의 wPi 핀 번호

6

• 1번, 26번 핀이 PWM0을, 23번, 24번 핀이 PWM1을 위한핀임.

PWM0

PWM1PWM1

PWM0

Page 7: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

키트의 PWM 핀

7

Page 8: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

하드웨어 방식의 PWM 출력 제어 함수

8

• PWM 출력 전용 핀에서 하드웨어 방식으로 PWM 신호를 만들고 출력시킴.

• void pwmWrite(int pin, int value);‒ pin에 value/1024의듀티비를 갖는 PWM 파형을출력함.

‒ 매개변수• pin에는 1만 넣을것. 23, 24, 26번 핀은 현재지원하지 않음.

• value에는 0~1024의값을 넣음.

• 사용 예‒ pwmWrite(1, 512);

• 1번 핀에서듀티 비 50%의 PWM 신호를출력시킴. (512/1024=0.5)

‒ pwmWrite(1, 1024);• 1번 핀에서듀티 비 100%의 PWM 신호를출력시킴. (1024/1024=1)

‒ pwmWrite(1, 0);• 1번 핀에서듀티 비 0%의 PWM 신호를 출력시킴. (0/1024=0)

Page 9: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

회로 구성

9

• 쇼트 되지 않도록 정확히 확인하고연결할 것!!!

12번 핀(wPi 1번 핀)

39번 핀

Page 10: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

예제 1

10

주의!

Page 11: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

퀴즈

11

• 아래 순서와 같이 PWM 출력 제어를 통해 LED의 밝기를 제어하라.① 듀티비 0%의 PWM 신호를 1초간출력함.

② 듀티비 50%의 PWM 신호를 1초간출력함.

③ 듀티비 100%의 PWM 신호를 1초간출력함.

④ 이후에는①~③의패턴을반복함.

Page 12: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

소프트웨어 방식의 PWM 출력 제어 함수

12

• 전용 핀이 아닌 범용 핀에서 소프트웨어 방식으로 PWM 신호를 만들고출력시킴.

• int softPwmCreate(int pin, int initialValue, int pwmRange);‒ 범용핀 pin을 소프트웨어 PWM 핀으로초기화함.

‒ 매개변수• initialValue에 초기 펄스 폭, pwmRange에주기에해당되는값을 넣음.

• int softPwmWrite (int pin, int value) ;‒ 위의 함수로 초기화된 범용 핀 pin에 value/pwmRange의 듀티 비를갖는 PWM 신호를출력시킴.

‒ 매개변수• value에는 0~pwmRange의값을 넣음.

• 주의 사항‒ #include <softPwm.h> // 코드에추가

‒ gcc –o myprog myprog.c –lwiringPi –lpthread // 컴파일시

Page 13: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

함수 사용 예

13

• 사용 예 1‒ softPwmCreate(25,50,100);

• 범용 핀인 25번핀을 소프트웨어 PWM 핀으로 지정함.

• 초기 펄스 폭을 50, 주기에 해당되는 값을 100으로 지정함. 따라서 듀티비 50%의 PWM 신호가출력됨. (50/100=0.5)

‒ softPwmWrite(25,25);• 25번 핀에서듀티 비 25%의 PWM 신호가출력됨. (25/100=0.25)

• 사용 예 2‒ softPwmCreate(29,0,100);

‒ softPwmWrite(29,50);• 29번 핀에서듀티 비 50%의 PWM 신호가출력됨. (50/100=0.5)

• 사용 예 3‒ softPwmCreate(28,0,1024);

‒ softPwmWrite(28,512);• 28번 핀에서듀티 비 50%의 PWM 신호가출력됨. (512/1024=0.5)

Page 14: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

예제 2

14

Page 15: PWM 출력 제어 - cis.cju.ac.krcis.cju.ac.kr/wp-content/lecture-materials/computer-networks/PWM 출력 제어.pdf · • 아래와같이동작하도록pwm 출력을제어하라

질문

15

Q&A