본문 바로가기

아두이노/아두이노 공부하기!

6. [Tutorial] 아두이노 아날로그 이론(ADC)

이번에는 아날로그 이론에 대해서 설명하도록 하겠다.


아두이노는 아날로그 입력만 가능하다. 그렇다면 출력은?? 

아두이노 출력은 PWM을 사용한다.

PWM은 이 이후에 작성하도록 한다. 궁금하면 구글에서 검색해보길 추천한다.


다시 돌아와서, 아두이노는 아날로그 입력만 가능하다.

그래서 아날로그 입력을 사용하기 위해 아두이노 내부에 ADC(Analog Digital Converter) 라는 것이 부착되어 있다.


ADC는 말 그대로 아날로그 신호를 디지털 신호로 변환해주는 것이다.

아래 그림을 보자.

x축을 시간 , y축을 전압으로 본다.

아두이노로 아날로그 신호가 입력되어 들어오면, 이를 샘플링하여 양자화를 거쳐 부호화를 하게 된다.

위 설명이 이해가 안된다면, 그냥 "아날로그 신호가 아두이노로 입력되면 이러한 것을 이용해 디지털로 변환된다." 정도만 알면 된다.

아날로그 신호와 샘플링, 양자화, 복호화에 간단한 설명은 아래에 기재해 놓았다.

  ㅇ 샘플링(Sampling) : Digitizer,Sampler

     - 시간축 방향에서 일정 간격으로 샘플 추출하여 이산신호로 변환시키는 과정


  ㅇ 양자화(Quantization)

     - 샘플된 진폭치를 특정 대표값으로 바꾸는 과정

        ☞ 양자화 레벨, 양자화 잡음 참조


  ㅇ 부호화(Coding)

     - 신호처리가 용이한 디지털 코드(Binary Code) 형태로 변환하는 과정 (비트 할당)

 출처: http://www.ktword.co.kr/abbr_view.php?m_temp1=978


----------------------------------------------------------------------------------------------------------------------



위 회로는 ADC의 회로이다. 

위에 이론적인 설명을 토대로 회로에 접목시키면 아날로그 입력이 되면, 이 것이 회로를 거쳐 디지털 출력으로 나오게 된다.

위 회로에 대한 분석 및 ADC에 대해 좀 더 깊게 알고 싶다면, ADC 심화 편을 보면 된다.

ADC 심화 - http://openstory.tistory.com/63


---------------------------------------------------------------------------------------------------------------------


아두이노 Uno의 경우 동작 전압이 5V이다.

그래서 아두이노 Uno는 0 ~ 5V까지의 전압 입력을 받을 수 있다.

거기에 더해서 아두이노는 10bit의 아날로그를 갖는다. 이 말은 2^10 승으로 1024 값까지 표현이 가능하다는 의미이다.

그래서 아래와 같이 표현할 수 있다.

즉, 0 ~ 5V인 아두이노 입력 전압과 아날로그 10bit 1024(0 ~ 1023) 값이 매칭되어 동작한다.

그래서 만약 2.5V가 아두이노로 입력된다면. 이는 1024 값의 반인 512가 출력되게 된다.


여기서, 아날로그의 사용이유에 대해서 간단히 언급하겠다.

디지털은 0 , 1로만 표현되는 신호이다. 그런데 아날로그는 소수점까지 표현되어 실제에 가장 근접한 값이다. ex) 1.25V , 2.22V 등..

그래서 실제에 근접한 아날로그 신호를 그대로 분석하여 이를 통해 센서의 값을 알 수 있다.


다음 스텝은 2가지로 나뉘게 된다.

ADC 심화는 좀 더 ADC에 대해 깊게 알기 위해 블로깅한 것이고, 아날로그 실습은 바로 실습을 하는 것이다.

실제 아날로그 입력은 아두이노에서 알아서 해주는 것이기 때문에 심화까진 몰라도 된다.

그러니 원하는 방향으로 청강해주길 바란다.

즉, 단순히 아두이노를 사용하기위한 목적이라면 바로 아날로그 실습으로 넘어가도 된다.


1. ADC 심화 - http://openstory.tistory.com/63

2. 아날로그 실습 - http://openstory.tistory.com/64