관리 메뉴

Kim's Programming

적외선 센서와 ADC 본문

Arduino/부품 이야기

적외선 센서와 ADC

Programmer. 2015. 6. 30. 03:41

빛은 아날로그입니다. 디지털처럼 꺼지고 켜지고만 있는것이 아닙니다.

 

빛을 디지털 신호로 변경하기 위해서는

 

 

위와 같은 과정을 거쳐서 신호를 가지게 됩니다.

 

A/D 변환이란?

 

 

 

⊙ 연속적인 신호인 아날로그 신호를 부호화된 디지털 신호로 변환

⊙ 온도, 압력, 음성, 영상 신호, 전압 등의 실생활에서 연속적으로 측정되는 신호를 컴퓨터에서 처리할 수

    있도록 디지털 신호화 필요

⊙ 아날로그 디지털 변환을 수행하는 기계장치를 아날로그 디지털 변환기(AD Convertor)라고함.

 

 

 

 

⊙ 영상 신호의 변환 및 역변환 과정 AD,DA

 

⊙ 양자화 레벨 8bit, 16bit, 24bit

 

 

 

ADC 회로

 

⊙ 아날로그 신호를 출력하는 센서 모듈과 연결될 수 있다.

⊙ 아날로그 신호를 변환하는 시간이 필요하다.

⊙ 변환된 신호를 내부 계산 등에서 활용할 수 있다.

 

 

 

 

AVR 내장 A/D 컨버터의 특징

 

⊙ 8채널

⊙ 10비트 분해능. 2^10=1024단계

    기준전압이 5V인 경우 0V~5V의 아날로그 전압을 2진수로 0000000000~1111111111, 10진수 0~1023에 대응

⊙ 축차비교형(변환시간 수십 us의 종속형 A/D Convertor

⊙ 내부 아날로그 멀티플렉서 탑재

⊙ 샘플/홀드회로 탑제로 인하여 A/D 동작 동안 전압 고정화

⊙ 단극성 아날로그 입력 / 차동 입력 선택

⊙ 포트 F는 아날로그 비교기 기능으로도 사용 가능

⊙ 변환시간 (13us~260us (50kHz~200kHz))

 

 

AVR 내장 A/D 컨버터의 구성

 

⊙ 범용 PORTF의 특수 기능

- ADC0~ADC7 : 8채널 10비트 A/D 컨버터의 아날로그 입력단자

- ADC : 정확도 성능 향상을 위한 독립 전원 구성

- AVCC : Analog Supply Voltage ( Vcc 연결과 Vc의 전압의 ±0.3V 유지

- AGND : Analog Ground ( 반드시 GND와 연결)

- AREF : Analog Reference Voltage (AVGND~AVcc 사이값 설정 가능)

  0~3V 까지 1024단계를 쓰고 싶으면 AVREF에 3V인가

⊙ 입력 전압의 범위

- 일반 모드 입력 전압의 범위(0V~Vref)

- 차동입력 모드 입력전압의 범위(-Vref ~ Vref)

⊙ Vref의 범위

- 전원전압 AVCC를 초과할 수 없다.

- (VREF=VGND~VCC, 내부기준전압인 2.56V 선택가능)

 

 

A/D 변환식 및 오차

⊙ 입력 종류에 따른 ADC 변환식

 

 

⊙ 양자화 오차 (Quantization error)

- 아날로그 값을 디지털 값으로 변환하면서 생기는 변환의 한계

- 대처방안 : 분해능이 높은 ADC 사용으로 극복

⊙ 오프셋 오차 (Offset error)

- 변환 결과가 이상적인 디지털 값에서 일정한 양만큼 벗어난 상태

- 대처방안 : 변환된 디지털 값에 일정치 값을 더하거나 빼서 교정한다

⊙ 이득 오차 (Gain Error)

- 변환 결과가 이상적인 디지털 값에서 일정한 비율만큼 벗어난 상태

-대처방안 : 변환된 디지털 값에 일정치 값을 곱하거나 나누어서 교정한다.

 

A/D Convertor 잡음 제거 방법

⊙ A/D Convertor의 경우에는 노이즈에 매우 민감하기 때문에 ATmega128내에서도 AVcc, AGND와 같은 ADC

    전원 구성도 따로 하였으며 사용자 또한 몇가지 사항을 주의하여 사용해야 한다.

- AVCC = 독립적인 아날로그 회로 전원 단자

- AREF = 기준 전원 입력 단자

- AGND= 아날로그 회로 접지 단자

 

① 아날로그 입력선은 최소한으로 짧게 하고 잡음의 영향이 없도록 회로를 구성한다

② 아날로그 전원단자 AVcc에 Vcc를 인가할 때는 LC필터를 거쳐 안정화 시킨다.

③ 아날로그 회로의 모든 접지는 AGND에 접지하여 한 포인트에서만 GND와 접지한다

④ ADC 동작중에는 병렬 I/O 포트의 논리상태를 스위칭 하지 않는다.

⑤ 잡음에 민감한 아날로그 소자의 ADC의 경우 ADC Noise Redution Mode를 사용한다

⑥ 잡음이 심하여 결과의 값의 변동이 심하면 디지털 필터를 사용하거나 평균치를 구하여 사용한다.

 

 

적외선 센서

 

 

⊙ Atmega128은 10bit 해상도의 ADC기능을 내장하여 아날로그 신호를 입력 받음.

⊙ 받아들인 신호를 내부에서 처리하여, 0~1024의 값으로 변환한다.

⊙ 적외선 수광량은 연속적인 값으로 변하며, Output으로 0V~5V 사이의 값을 출력한다.

⊙ 예를 들어, 5V가 HIGH 신호일 때, ADC로 입력되는 신호가 0V면 0,  5V면 1024,

    2.5V 일떄는 512의 값으로 변환한다.

 

 

 

 

⊙ 센서의 출력은 아날로그 신호이다.

⊙이것을 비교기에서 적당한 값으로 잘라 0(LOW),1(HIGH) 로 구분한다(오른쪽 아래 그래프)

⊙구분 기준은 가변저항으로 변경

 

 

 

요약(위의 말이 어려우면 이것만 기억하세요)

 

간단하게 요약해서 말하면 수광이 신호를 받아들일떄 저항에 따라서 LOW HIGH가 정해진다

사실 수광이 받아들일 때는 아날로그로 받아 들이는데 LOW HIGH 처럼 2가지가 아니라 0~1023의

값들로 1024개로 이루어져 더 정밀하게 받을 수 있다.

수광이 간섭이 많아 값 수신이 뒤죽박죽이면 구분을 해야하는 최대와 최소의 평균값으로 (라인 트레이서라면 흰선과 검은선을 인지했을떄의 두 값의 평균으로) 지정하여 구분하자