PWM제어 LED점등 실험

이 번에는 PWM(펄스폭변조;Pulse Width Modulation)을 사용하여 LED가 천천히 밝아지고 다시 천천히 어두지는 실험입니다. 필요한 부품은 아래와 같습니다.

LED램프 1개, 220Ω 저항 1개, 수수점퍼선 2개, 아두이노 우노보드, 브레드보드를 준비합니다.

준비된 부품들을 브레드보드에 꼽고 아두이노 보드와 연결합니다. LED는 두 개의 리드선 중 긴쪽이 +입니다. 브레드보드는 아래 사진상에서 세로방향 5개홀이 연결되어 있습니다. LED를 가로 방향으로 두 핀에 꼽고 +핀쪽(긴리드선)에 저항을 연결합니다. 연결된 저항의 반대쪽 리드선을 아두이노 보드의 디지털IO 5번과 연결합니다. 마지막으로 LED의 -핀과 아두이노 우노보드의 GND을 연결합니다.

 

 

소스코드

아래는 소스코드입니다. 아두이노 IDE에 붙여넣기 하여 컴파일하고 업로드합니다.

// PWM제어 LED점등 실험

int brightness = 0;    //LED밝기를 표현하기 위한 정수형 변수 brightness를 선언하고 초기값 0을 저장합니다.
int fadeAmount = 5;    //밝기가 변하는 속도를 정하기 위한 정수형 변수 fadeAmount를 선언하고 초기값 5를 저장합니다.

void setup()  {
  pinMode(5, OUTPUT); // 포트 5번을 출력포트로 지정합니다.
}

void loop()  {
  
  analogWrite(5, brightness); //5번 포트에 brightness의 값을 출력합니다.

  brightness = brightness + fadeAmount; //다음 회차에 출력할 밝기 값을 brightness 변수에 저장합니다.
  
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ; //최고 밝기 또는 최저 밝기에 도달하면 값을 반대로 바꿔줍니다.
  }
  
  delay(30); //30mS(밀리세컨드) 정지합니다.
}

 

 

 


Tags