4장. PWM 제어를 이용하여 LED 밝기 조절하기

来自Microduino Wikipedia
跳转至: 导航搜索
Language English

목표

앞써 LED를 제어하는 방법에 대해서 알아보았다. 이번 장에서는 PWM 신호를 이용하여 LED의 밝기를 제어하는 방법에 대해 알아보도록 하자. PWM이란 Pulse With Modulation의 약자로 '0'과 '1'의 디지털 펄스폭을 조절하여 LED의 밝기를 제어하는 방법이다. '1'의 주기가 더 길면 더 밝아진다. 이장에서는 버튼을 두개 이용하여 LED의 밝기를 점점 밝게 점점 어둡게 제어하는 방법을 알아본다.

부품


회로도

Pwm schematic.jpg

버튼은 내부 풀업과 외부 풀다운 저항을 사용할 수 있고, 디지털 I/O 포트 D0 ~ D13에 연결한다. PWM 신호는 I/O 포트 D3, D5, D9, D10, D11 번핀을 사용해야 한다.

프로그램

int n=0;
void setup ()
{
  pinMode(2,INPUT);
  pinMode(7,INPUT_PULLUP);         // 내부 풀업저항 설정
  pinMode(11,OUTPUT);              // PWM은 D3、D5、D9、D10、D11핀중에 하나는 사용해야 한다.
}

void loop()
{
  int up =digitalRead(2);          // D2핀의 상태를 읽는다.
  int down = digitalRead(7);       // D7핀의 상태를 읽는다.

  if (up==HIGH)                    
  { 
    n=n+5;                         
    if (n>=255) {
      n=255;
    }                             // 최대값을 255로 제한한다.   
    analogWrite(11,n);            // D11번핀에 PWM 신호를 출력한다. 변화값 'n'의 범위는 0-255.
    delay (300);
  } 
  if (down==LOW)             
  {
    n=n-5;
    if (n<=0) {
      n=0;
    }
    analogWrite(11,n);            // D11번핀에 PWM 신호를 출력한다. 변화값 'n'의 범위는 0-255.
    delay (300);
  }
}

analogWrite() 함수 사용하기

  • Usage:Write the simulation value to the specified pin
  • 사용방법 : 특정한 핀에 변환값을 입력한다.
  • grammar:analogWrite(pin, val),pin:Microduino I/O port number;val:values from 0 to 255
  • 문법 : analogWrite(pin, val), pin : 마이크로두이노 I/O 핀번호, val: 0 ~ 255 사이의 값

결과

임의의 버튼입력으로 LED가 점차 밝아지고 다른 버튼을 누르면 점점 어두워지도록 만들 수 있다.

비디오