[아두이노 강좌] 17. 아날로그 신호 PWM 출력하기 / LED 밝기 조절하기 / analogWrite(), 반복문 for()개요
아두이노는 PWM 출력핀을 통해 아날로그 신호를 출력할 수 있습니다. (디지털핀과 다르게 입력과 출력이 따로 따로..) 이번 글에서는 아두이노 PWM핀을 통해 아날로그 신호를 출력하여 LED의 밝기를 조절해보도록 하겠습니다.
PWM핀 및 PWM출력
아두이노 우노 보드는 총 6개의 PWM 출력핀을 가지고 있습니다. 디지털 핀쪽에 물결(~) 표시가 있는 핀이 아두이노의 PWM 출력핀에 해당됩니다. 그림1. 아두이노 PWM 출력핀
PWM 출력은 Pulse Width Modulation의 약자로 진동의 폭을 조절한다는 의미입니다. 이러한 출력 방식은 결과적으로 아날로그성 신호를 출력할 수 있게되며, 그 원리는 다음과 같습니다. 디지털 신호는 위 그림과 같이 시간에 따라 Pulse(주기)로 나눌 수 있습니다. 그리고 각 주기별로 높은 구간(HIGH)과 낮은 구간(LOW)이 존재하게 됩니다.
PWM출력은 각 주기별로 HIGH의 비율(Duty)을 조절함으로써 아날로그성 신호를 만들어주는 출력방법입니다.
아두이노는 PWM핀을 통해 PWM신호를 출력함으로써 0~5V를 0~255(256가지)의 신호로 나눠줄수 있습니다.
LED 밝기 조절하기
LED의 구동전압은 약 1.8~2V입니다. 하지만 LED의 불이 켜지기 시작하는것은 1.2V부터 이며, 전원 입력값에 따라 밝기가 조절됩니다. 이러한 성질과 아두이노의 PWM출력을 통해 LED의 밝기를 조절해보도록 합시다. 준비물
회로도 연결 디지털 6번 (PWM)핀에 LED를 연결해주세요. (220옴 저항, GND) 프로그램 코드 (7) 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 |