반응형

안녕하세요. 오늘은 PWM에 대해 알아보도록 하겠습니다.

 

아두이노의 핀에는 I/O(input/output)핀의 종류 3가지가 있습니다.

 

1. Analog Input 

 

2. Digital Input 

 

3. Digital Output

 

하나 부족해보이지 않나요?

 

바로 Analog Output입니다.  

 

아두이노에는 Analog Output이 없습니다. 

 

아날로그 와 디지털의 차이부터 먼저 볼까요?

 

 

아날로그, 디지털

 

 

(a)아날로그

 

아날로그는 연속적으로 변화하는 숫자, 물리량을 의미합니다. 소리, 진동 등의 자연현상

 

(b) 디지털

 

0, 1로 이루어진 규칙적인 숫자, 컴퓨터와 소통하기 위해 

 

(어떻게 0, 1로 컴퓨터가 만들어졌는지는 나중에 글을 쓰도록 하겠습니다!)

 

 

자. 그럼 이제 생각해봅시다. 

 

아날로그 출력 : 연속적으로 변화하는 숫자를 출력한다.

 

그렇다면 우리는 연속적으로 변화하는 숫자를 출력할 수 없는 것일까요?

 

예를 들어 연속적인 가변저항의 값을 변화시켜 LED의 밝기를 제어할 수는 없을까요?

 

당연히 있습니다. 아날로그 출력을 설명하기 전에 아날로그 입력의 원리부터 알아보도록 합시다.

 

 

ADC(Analog-Digital-Converter) : 아날로그 신호를 디지털 신호로 변환

 

아두이노에 아날로그 입력은

 

아두이노 안에는  ADC가 아날로그 신호(0 ~ 5V)를 10bit로 데이터 신호를 샘플링(양자화)하여 부호화!!

 

 

쉽게 말해 아두이노는 보통 0 ~ 5V의 전압을 입력받을 수 있습니다.

 

아두이노의 10bit로 0 ~ 5V를 나눕니다.

 

10bit로 나눈다는 말은 10bit는 2^10(2의 10제곱)으로 0 ~ 1023의 값이 존재하며 

 

0 ~ 5V를 1024개로 나눈다는 뜻입니다. 

 

예를 들면 0V일 때는 02.5V512!,    5V1024의 값을 가집니다.

 

이렇게 디지털로 샘플링 된 아날로그 신호를 PWM을 통해 아날로그 신호를 제어할 수 있습니다.

 

 

PWM!  :  펄스의 폭을 변조 !

 

그림으로 설명하겠습니다. 아주 간단합니다.

 

 

약 25%의 duty cycle

Pulse는 파란 색으로 튀어나온 부분이고

Width는 빨간 색 선입니다. 

 

PWMDuty Cycle(신호가 시스템이 살아있는 특정 기간의 백분율)의 원리를 사용합니다. 

 

쉽게 예를 들면

 

1Cycle에 Pulse Width(펄스의 가로 길이)가 약 25%라고 한다면

아두이노의 5V25%1.25V만큼 전압을 출력합니다. 만약 비트로 연산한다면 255가 됩니다.

 

1Cycle에 Pulse Width(펄스의 가로 길이)가 약 50%라고 한다면

아두이노의 5V50%2.5V만큼 전압을 출력합니다. 만약 비트로 연산한다면 511가 됩니다.

 

1Cycle에 Pulse Width(펄스의 가로 길이)가 약 100%라고 한다면

아두이노의 5V100%5V만큼 전압을 출력합니다. 만약 비트로 연산한다면 1023가 됩니다.

 

PWM의 출력(디지털)은 마치 아날로그처럼 사용할수 있어 하나의 DAC로 볼 수 있습니다.

(엄연히 말하면 DAC는 아닙니다. 결국 디지털 신호로 제어하기 때문입니다.)

 

DAC(Digta-Analog-Converter) : 디지털 신호를 아날로그 신호로 변환

 

그림으로 표현하면 이렇게 ADC와 DAC는 짝꿍입니다.

 

다음 시간에는 어떻게 PWM을 이용해서 아날로그 신호, 연속적인 숫자를 제어할 수 있는지 아두이노 코딩을 이용해서 글을 쓰겠습니다.

728x90
반응형

+ Recent posts