반응형

전자기초#5 아날로그신호 디지털신호 그리고 PWM with 아두이노

 

 1.  아날로그 신호는 연속적인 값을 가지고, 디지털은 불연속적인 값을 가진다.

시계를 예로 들면, 일반적인 아날로그 시계는 시침과 분침 초침 모두 시간이 이동 되는 진행하는 과정을 모두 목격할 수 있으며 연속적인 흐름을 나타낸다.  반면에 디지털 시계는 1시에서 2시로 넘어 갈때 중간 값을 나타내지 않고 바로 숫자값이 변한다.  분과 초도 마찬가지이다. 따라서 디지털은 불연속적인 값을 나타내는 특징의 차이가 있다. 

 

- '불빛'을 예로 들면, 디지털에는 전등이 켜지거나 꺼져 있는 On 과 Off 만 존재한다. 

  하지만 아날로그 세계에서는 꺼져 있음에서 점점 밝아 져서 최대 밝기의 켜짐까지 그 중간 값들이 연속적으로 존재하는 것이다. 

 

 2. 아두이노를 다룰 때, 이런 연속적인 아날로그신호와 비연속적인 디지털신호에 대한 개념과 처리되는 방법에 대해 이해할 필요가 있다. 

 - 아두이노와 같은 마이크로프로세서 보드는 근본적으로 아날로그가 아닌, 디지털로 처리되어 지는 보드이다. 

 - 하지만, 전등을 켜고 끄기만 하는 것이 아니라, 그 사이값으로 밝기를 조절하거나,  모터에서도 멈춤과 최대속도 동작 뿐 아니라 그 사이값으로 속도 조절이 필요 한 경우들이 많이 있음을 알게 된다. 

 - 따라서 디지털 신호 처리 보드에서 아날로그 적인 동작을 하도록 처리를 해주는 제어가 필요한데,  이때 필요한 것이  PWM(Pulse width modulation) 이라는 개념이다. 

 

 3.  PWM(Pulse width modulation) 이란?

 : 디지털 신호인 펄스를 이용해, High 레벨의 신호 크기(진폭을)를 변화 시켜 아날로그에 해당되는 신호 레벨을 구현시켜 주는 변조 방식을 말한다.   아래 이미지를 보면, 아날로그 신호의 전압 값이 높을 때,  디지털 신호의 HIGH 레벨의 길이가 길고, 아날로그 신호의 값이 낮을 때  (High레벨)디지털 펄스 폭이 좁은 것을 알 수 있다. 

 4. 아두이노에서 아날로그 출력 처리는?

   :  위에서 설명한 개념처럼 아두이노에서 아날로그 형태의 출력 값(신호)을 처리해 주기 위해 PWM 이라는 방식을 이용한다. 즉 LED가 점점 밝아지게 하거나 점점 어두워지도록 조절하려고 할 때, High(Low)레벨의 변화를 주는 PWM 출력을 이용한다.  동일 시간 대비 High레벨(출력전압)이 많을 수록 LED가 밝게 되고, High레벨이 적을 수록 LED를 어둡게 조절 할 수 있게 되는 것이다.   

 - 하지만, 모든 아두이노 포트가 이런 PWM 출력이 가능 한 것은 아니고, 일부 정해 놓았다.

   아두이노의 디지털 포트 중(우노UNO보드 기준),  아날로그 형상인 '~' 물결 모양이 새겨진, ~3, ~5, ~6, ~9 , ~10, ~11 포트가 바로 PWM출력 기능이 있는 포트이다. 

 

5.  analogWrite() 함수 :

해당 포트에서 PWM 형태의 아날로그 출력을 사용하도록 해주는 아두이노 함수가 바로 analogWrite() 함수이다. 

 아두이노 우노에서는 기본(8bit)여서 2^8 인 256(0~255) 값으로 analogWrite() 함수의 옵션 값을 넣어 출력을 제어 할 수 있다. 

 

[ 실습예제  ]

: 아두이노에 LED를 연결한 후,  점점 밝게 켜지게 하고, 최대밝기에 다다르면 다시 점점 어둡게 조절하라. 그리고 이 동작을 반복하도록 코딩하라. 

 

- LED 연결 (PWM 출력기능이 있는 11번 포트에 LED+ 리드선을 직접 연결 하라)

 

- 아두이노 코드 

 [ 아두이노 코드 다운로드 ]

(다운받아 압출을 해제하세요 : 308 Byte)

FadeInOut.zip
0.00MB

 

[ 동작 영상 ]

 

반응형