반응형
1. PWM이란?
Pulse Width Modulation으로서 펄스폭을 조절해서 전류를 조정하는것 ex) 무드등 제어, 부저 음계 제어 등
아두이노 우노 보드에서는 다음 그림과 같이 3, 5, 6, 9, 10, 11번 핀이 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);
}
반응형
'프로그래밍 > 임베디드SW' 카테고리의 다른 글
[아두이노 강의] #7 아두이노 터치센서를 통한 LED ON/OFF 실습 (0) | 2019.12.25 |
---|---|
[아두이노 강의] #6 아두이노 Analog Input & Output 강의 (아날로그 인풋 & 아웃풋) 가변저항, LED 실습 (0) | 2019.12.23 |
[아두이노 강의] #4 아두이노 3색 LED(RGB 모듈), 버튼 실습하기 (0) | 2019.12.15 |
[아두이노 강의] #3 아두이노 LED 실습 / Digital Output 실습 (0) | 2019.12.12 |
[아두이노 강의] #2 아두이노 시리얼(RS232) 통신 예제 및 학습 (0) | 2019.12.09 |