[아두이노 강좌] 17. 아날로그 신호 PWM 출력하기 / LED 밝기 조절하기 / analogWrite(), 반복문 for()![]()
아두이노는 PWM 출력핀을 통해 아날로그 신호를 출력할 수 있습니다. (디지털핀과 다르게 입력과 출력이 따로 따로..) 이번 글에서는 아두이노 PWM핀을 통해 아날로그 신호를 출력하여 LED의 밝기를 조절해보도록 하겠습니다.
아두이노 우노 보드는 총 6개의 PWM 출력핀을 가지고 있습니다. 디지털 핀쪽에 물결(~) 표시가 있는 핀이 아두이노의 PWM 출력핀에 해당됩니다. 그림1. 아두이노 PWM 출력핀
PWM 출력은 Pulse Width Modulation의 약자로 진동의 폭을 조절한다는 의미입니다. 이러한 출력 방식은 결과적으로 아날로그성 신호를 출력할 수 있게되며, 그 원리는 다음과 같습니다. 디지털 신호는 위 그림과 같이 시간에 따라 Pulse(주기)로 나눌 수 있습니다. 그리고 각 주기별로 높은 구간(HIGH)과 낮은 구간(LOW)이 존재하게 됩니다.
PWM출력은 각 주기별로 HIGH의 비율(Duty)을 조절함으로써 아날로그성 신호를 만들어주는 출력방법입니다.
아두이노는 PWM핀을 통해 PWM신호를 출력함으로써 0~5V를 0~255(256가지)의 신호로 나눠줄수 있습니다.
![]()
LED의 구동전압은 약 1.8~2V입니다. 하지만 LED의 불이 켜지기 시작하는것은 1.2V부터 이며, 전원 입력값에 따라 밝기가 조절됩니다. 이러한 성질과 아두이노의 PWM출력을 통해 LED의 밝기를 조절해보도록 합시다.
![]() ![]() 디지털 6번 (PWM)핀에 LED를 연결해주세요. (220옴 저항, GND) ![]() ![]() void setup() { pinMode(6, OUTPUT); // 디지털 6번핀을 출력모드로 설정. } void loop() { for (int i =10;i<255;i=i+10) { // for()문 (i=10이며; 255보다 작고; 매번 10씩 커진다.) analogWrite(6, i); // 6번핀에 i만큼의 아날로그 신호 출력 delay(100); // 0.1초 동안 딜레이. } }
새로운 코드 for(반복문)이 등장했습니다. for문을 사용하면 반복되는 비슷한 명령어를 간단한 표현으로 실행 시킬 수 있습니다. 완성된 프로그램은 결과적으로 LED가 연결된 6번핀에 아날로그 신호 i를 출력하게됩니다.
![]()
■analogWrite(핀번호,값) 아날로그 신호를 출력하기 위한 함수입니다. 매개변수 핀번호 - 신호를 출력할 PWM핀을 입력해줍니다. 값 - 출력할 신호(0~255)를 입력해줍니다. ■for문 (반복문) 반복되는 비슷한 명령어를 간단한 표현으로 실행할 수 있습니다. 매개변수 반복문 - for(초기식;조건식;증감식)으로 사용합니다. 예를 들면 다음과 같습니다. for (int i =10;i<255;i=i+10) /// for (초기식;조건식;증감식)
링크바로가기: https://smartstore.naver.com/mechasolution_com/products/2855891646 ![]() ![]() |
최신댓글