[아두이노 강의] #5 아두이노 Analog Output 강의 (아날로그 아웃풋) :: 잡다한 프로그래밍
반응형

1. PWM이란?

Pulse Width Modulation으로서 펄스폭을 조절해서 전류를 조정하는것 ex) 무드등 제어, 부저 음계 제어 등

아두이노 우노 보드에서는 다음 그림과 같이 3, 5, 6, 9, 10, 11번 핀이 PWM 출력 기능을 제공함

아두이노 PWM 핀 번호

만약 사용자가 전류를 흘리고 싶다면 analogWrite() 함수에 숫자를 넣으면 사용할 수 있고 이는 0~255 범위를 가진다. 다음 그림처럼 사용자가 0, 64, 127, 191, 255를 입력했을때 다음과 같은 펄스폭을 가지게 된다

펄스폭 예


2. PWM을 이용한 LED밝기 조절 예제

PWM이 무엇인지 알았다면 LED를 이용하여 실제 예제를 학습해보자. 다음 그림과 같이 브레드보드 1개, 아두이노 우노, LED 1개, 1K저항 1개를 사용하였다.

실험 준비

준비한 준비물의 회로를 다음과 같이 구성한다. LED와 1K저항을 연결하고 빨간선은 +를 의미 검은선은 GRN을 의미한다

회로구성

다음과 같이 회로를 구성하였다면 다음과 같이 코드를 작성한다. 다음 코드는 analogWrite를 사용해서 9번핀에 brightness만큼 전류를 흘려주고 돌때마다 brightness가 5씩 증가하고 최대인 255에 도달하였다면 - 해주는 방식으로 진행되는 코드이다

int led = 9; //9번핀을 사용한다
int brightness = 0; // 처음 LED밝기
int fadeAmount = 5; // 5씩 밝아지게 함
void setup()
{
	pinMode(led, OUTPUT);
}
void loop()
{
	analogWrite(led, brightness);
	brightness = brightness + fadeAmount;
	if (brightness == 0 || brightness == 255) {
		fadeAmount = ‐fadeAmount ;
	}
	delay(30);
}

 

반응형

+ Recent posts