아두이노/이론

2강. 아두이노 analogWrite, PWM 알아보기입니다.(LED키기)

원원 2018. 10. 20. 19:37

안녕하세요. analogWrite함수와 PWM에 대해 알아보겠습니다.

2강에서 digitalWrite를 통해 LED를 on/off했는데 이제 단순히 on/off말고

LED의 밝기를 조절해보고, 하기위해 알아야 할 개념인 PWM에 대해 설명하겠습니다.




- 0. 알아야하는개념

PWM이란 pulse width modulation이고 구글번역기쓰면 펄스 폭 변조라고 나오네요

듀티비란 HIGH와 LOW의 비율입니다

위의 그림을보면 0.5초간격으로 0V 5V가 변하는걸 볼수있습니다

듀티비50%입니다. 만약 LED를 킨다고했을때, 듀티비가50%면 HIGH와 LOW가 반반들어가서 LED의 밝기도 최대치의 반이 됩니다

그럼 digitalWrite는 듀티비가 항상100%다 라고 말할 수 있습니다


위의 개념이 PWM입니다.



- 1. 최종목표

0



- 2. 실제모습(사진)

PWM을 사용할수 있는 핀에만 analogWrite가 동작하며, 핀 이름에 ~가 붙어있습니다.

※ UNO기준 3,5,6,9,10,11


- 3. 프로그램 흐름

LED밝기설정-> 딜레이->반복



- 4. 사용하는 함수설명

analogWrite(pin,value)

pin : 핀

value : 듀티비 


- 5. 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void setup() {
  pinMode(3,OUTPUT);
}
 
void loop() {
  
  analogWrite(3,50);
  delay(1000);
  analogWrite(3,100);
  delay(1000);
  analogWrite(3,150);
  delay(1000);
  analogWrite(3,255);
  delay(1000);
}


- 6. 코드설명

7.듀티비 20% (LED 밝기 20%)

9.듀티비 40% (LED 밝기 40%)

11. 듀티비 60% (LED 밝기 60%)

13. 듀티비 100% (LED 밝기 100%)