티스토리 뷰

PWM 은 'Pulse Width Modulation' 의 약자로 '펄스폭 변조'입니다.

 

디지털 신호를 아날로그 신호처럼 사용하기 위해서 이용합니다.

디지털 신호는 High (1) 아니면 Low (0) 밖에 없는데,

High 와 Low 출력시간을 조정해서

어중간한 출력값을 만들어 낼 수 있습니다.

 

Reference : https://www.theengineeringprojects.com/2018/06/introduction-to-arduino-uno.html

 

위 그림에서 보면 아두이노 우노 보드에서 PWM 기능을 할 수 있는 핀은

3번, 5번, 6번, 9번, 10번, 11번

6개가 있습니다.

 

저는 5번핀에 PWM 값을 바꿔가며 신호를 내보내고

LED를 켜보겠습니다.

 

우선 5번핀을 출력핀으로 정의합니다.

pinMode (5, OUTPUT);

 

 PWM 값은 0~255 까지 변경가능합니다.

저는 0, 100, 127, 200, 255 네 가지 값을 출력해 보았습니다.

 

회로는 아래 그림과 같이 PWM 출력단자(5번핀)에 LED를 꽂아서 밝기를 확인하고,

병렬로 오실로스코프를 연결해서 Duty와 전압을 확인합니다.

 

1) PWM 값 0

 

5번에 0을 내보냅니다.

anlogWrite (5, 0);

5번핀은 0 V 로 출력이 없습니다.

2) PWM 값 100

 

5번에 100을 내보냅니다.

anlogWrite (5, 100);

5번핀 Duty는 39.5%, Vrms 2.83 V 출력이 나옵니다.

3) PWM 값 127

 

5번에 127을 내보냅니다.

anlogWrite (5, 127);

5번핀 Duty는 50%, Vrms 3.04 V 출력이 나옵니다.

4) PWM 값 200

5번에 200을 내보냅니다.

anlogWrite (5, 200);

5번핀 Duty는 78.4%, Vrms 4.05 V 출력이 나옵니다.

5) PWM 값 255

5번에 255을 내보냅니다.

anlogWrite (5, 255);

5번핀 Duty는 표시가 안되었지만 100%, Vrms 4.46 V 출력이 나옵니다.

결과를 정리한 표는 아래와 같습니다.

PWM 값을 적절히 변경시키면 필요한 전압을 얻을 수 있습니다.

 

PWM value 0 100 127 200 255
Duty (%) 0 39.5 50 78.4 100
Vavr (Voltage) 0 1.62 2.02 3.44 4.46
Vrms (Voltage) 0 2.83 3.04 4.05 4.46

 

비교적 선형적이긴 하지만, 정확한 출력을 얻기 위해서는

오실로스코프로 보면서 PWM 값을 조정해야겠습니다.

댓글
공지사항
최근에 올라온 글