티스토리 뷰
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 값을 조정해야겠습니다.
'아두이노' 카테고리의 다른 글
아두이노 RC 모터 4개 구동 (0) | 2020.04.17 |
---|---|
아두이노 RC 모터 돌리기 연습 (0) | 2020.04.06 |
아두이노 LED 밝기 조정 - 조도센서 CdS 모듈, map 함수 (0) | 2019.06.29 |
아두이노 LED 밝기 조정 - 조도센서 CdS 모듈,프로그램 수정 (0) | 2019.02.17 |
아두이노 LED 밝기 조정 - 조도센서 CdS 모듈 (0) | 2019.02.10 |