• 검색 결과가 없습니다.

PWM 출력 제어

N/A
N/A
Protected

Academic year: 2022

Share "PWM 출력 제어"

Copied!
15
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

컴퓨터 네트워크 설계

청주대학교 융합전자공학부 전자공학전공 한철수

PWM 출력 제어

(2)

목차

2

• PWM 출력 제어

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

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

• 제어 연습

(3)

PWM 출력 제어

3

• PWM 출력 제어란 GPIO핀을 통해 출력되는 주기적인 펄스 신호의 펄스 폭을 조절하는 것임.

‒ PWM(Pulse Width Modulation)은 펄스 폭 변조를 뜻함.

• PWM 신호

주기

(4)

PWM 신호의 듀티 비

4

• 듀티 비(Duty Ratio)

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

듀티 비 80%

50%

20%

듀티 비 = 펄스 폭

주기

(5)

라즈베리 파이의 PWM 핀

5

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

‒ PWM0

‒ PWM1

PWM0

PWM0 PWM1

PWM1

(6)

PWM 핀의 wPi 핀 번호

6

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

PWM0

PWM1PWM1

PWM0

(7)

키트의 PWM 핀

7

(8)

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

8

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

• void pwmWrite(int pin, int value);

‒ pin에 value/1024의 듀티 비를 갖는 PWM 파형을 출력함.

‒ 매개 변수

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

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

• 사용 예

‒ pwmWrite(1, 0);

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

‒ pwmWrite(1, 512);

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

‒ pwmWrite(1, 1024);

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

(9)

회로 구성

9

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

12번 핀 (wPi 1번 핀)

39번 핀

(10)

예제 1

10

주의!

(11)

퀴즈

11

• PWM 출력 제어를 통해 아래 순서와 같이 LED의 밝기를 제어 하라.

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

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

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

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

(12)

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

12

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

• int softPwmCreate(int pin, int initialValue, int pwmRange);

‒ pin을 소프트웨어 PWM 핀으로 초기화함.

‒ initialValue는 초기 펄스 폭, pwmRange는 주기

• int softPwmWrite (int pin, int value);

‒ softPwmCreate() 함수로 초기화 시킨 pin에 value/pwmRange의 듀티 비를 갖는 PWM 신호를 출력시킴.

‒ value에는 0~pwmRange의 값을 넣음.

• 주의 사항

‒ #include <softPwm.h> // 코드에 추가

‒ gcc –o test test.c –lwiringPi –lpthread // 컴파일 시 추가

(13)

함수 사용 예

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)

(14)

예제 2

14

(15)

질문

15

Q&A

참조

관련 문서

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ).

Ø CheckNegative 함수 내에서는 int형, double형 값에 대한 throw문 발생 가능. n bool CheckNegative(int x,

 FileDialog(Frame fr, String title, int mode): fr 프레임에 부착되고 title을 제목으로 가지는 객체를 생성한다. Mode가 FileDialog.SAVE

ü a 접점과 b 접점 사이를 훨씬 빈번하게 스위칭 함으로써 고조파가 적게 포함되어 정현파에 더욱 가까운 출력전압 파형을 생성할 수 있다.

문자열 출력함수 • Status DrawStringconst WCHAR *string, INT length, cont Font *font, const PointF &origin, const Brush *brush • Status DrawStringconst WCHAR *string,

force output compare, waveform generation mode, compare match output mode, clock select 이중 waveform generation mode는 Normal, PWM, Phase Correct, CTC, Fast PWM

Every pin is either accessible at test pins 1 – 10 or at the test vias situated around the device... INT 6 Interrupt Output pin;

Kennedy, Ammonia for hy- drogen storage; A review of catalytic ammonia decomposition and hydrogen separation and purification, Int.. Varma, A Comparison of