일상 박형

카테고리       

안녕하세요 공대 박형입니다.

오늘은 PWM LED 제어를 해보겠습니다.

코드부터 보시죠.

 

int led = 11;

 

void setup()

{

  Serial.begin(9600);

  pinMode(led, OUTPUT);

}

 

void loop()

{

  analogWrite(led, 255);

  Serial.println("PWM 100%");

  delay(2000);

  analogWrite(led, 191);

  Serial.println("PWM 75%");

  delay(2000);

  analogWrite(led, 127);

  Serial.println("PWM 50%");

  delay(2000);

  analogWrite(led, 63);

  Serial.println("PWM 25%");

  delay(2000);

  analogWrite(led, 0);

  Serial.println("PWM 0%");

  delay(2000);

}

 

 

PWM이란 Pulse Width Modulation의 약자로 펄스 폭 변조를 이용해 원하는 출력 파형을 만들 수 있는 기능입니다.

펄스폭 100%는 항상 전원이 인가되는 디지털 신호 HIGH와 같다고 할 수 있고, 펄스폭 50%는 반은 켜져있고 반은 꺼져있는 상태를 뜻합니다. 쉽게 얘기해서 펄스폭75%는 신호가 3/4시간동안 켜져있다가 1/4시간동안 꺼지고를 빠르게 반복하여 75%힘(신호)를 받는것처럼 보이게 만듭니다. 펄스폭 50%는 신호가 1/2시간동안 켜져있다가 1/2시간동안 꺼지고를 반복하는 셈입니다.

아두이노에서 PWM 신호를 제어할 수 있는 핀은 한정되어있습니다.

 아두이노 우노 같은 경우는 디지털핀 번호 앞에 '~'표시가 있는 3, 5, 6, 9, 10, 11번핀으로 PWM 제어를 할 수 있습니다.

제가 작성한 회로도입니다.

 

아두이노에 코드를 업로드하여 2초 간격으로 PWM 펄스폭을 25%씩 감소시켜 LED밝기를 조절하는 프로그램을 완성했습니다.

 

다음 시간에는 아두이노 스위치를 사용하는 방법에 대해 알아보겠습니다.

읽어주셔서 감사합니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band