6장. 프로그램 제어를 이용하여 LED 밝기 조절하기

来自Microduino Wikipedia
Md讨论 | 贡献2014年9月11日 (四) 14:28的版本 (Created page with "{{Language|Lesson 6--The Program PWM control of LED brightness --Breathing light}} {| style="width: 800px;" |- | ==목표== 지난 장에서는 외부 장치를 사용하여 L...")
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
Language English

목표

지난 장에서는 외부 장치를 사용하여 LED 제어를 위한 PWM 신호를 만들었다. 그러면 외부장치 대신 프로그램으로 LED를 제어하는 방법은 무었일까? 이번 장에서는 LED 페이딩 디밍하는 방법에 대해 알아보겠다.

부품

회로도

Lesson 6-schematic.jpg

하이레벨 라이팅을 사용할 것이고, 출력은 마이크로두이노 PWM I/O 포트에 연결한다. 로우 레벨 라이팅을 사용해도 동일한 결과를 볼수 있다.

프로그램

int ledPin=11;                                                // 마이크로두이노 PWM I/O 출력포트 : D3,D5,D6,D9,D10,D11

void setup()
{
}

void loop()
{
  for(int fadeValue=0;fadeValue<=255;fadeValue+=5)            // PWM 값 증가, fadeValue 값을 조정하여 LED 밝기를 제어
  {
    analogWrite(ledPin,fadeValue);                            // LED 포트에 밝기 값을 입력Write the brightness value to LED.
    delay(30);                                                // 현재의 밝기를 30ms 유지. 
  }
   for(int fadeValue=255;fadeValue>=0;fadeValue-=5)           // PWM 값 감소, fadeValue 값을 조정하여 LED 밝기를 제어
  {
    analogWrite(ledPin,fadeValue);                            // LED 포트에 밝기 값을 입력
    delay(30);                                                // 현재의 밝기를 30ms 유지. 
  }
}

프로그램은 루프문구를 사용하므로 LED의 밝기를 편하게 자동으로 제어된다.

결과

LED는 오프상태에서 부드럽게 켜진후 부드럽게 꺼진다.

비디오