본문 바로가기
아두이노/아두이노 IDE

05. 아두이노 IDE ADC제어[베이직 트레이닝 보드]

by 땜블리 2023. 3. 3.
728x90
반응형
SMALL

안녕하세요 땜블리 입니다.

아두이노와 베이직 트레이닝 보드를 이용한 ADC 제어 실습을 진행 하겠습니다.

베이직 트레이닝 보드는 아래에서 확인이 가능합니다.

https://ttcw.tistory.com/4

 

라즈베리파이 피코 베이직 트레이닝보드 구성

라즈베리파이 피코 보드의 펌웨어실습을 위한 베이직 트레이닝보드를 소개 합니다. 현재 네이버 스마트스토어에서 판매가 진행되고 있습니다. 라즈베리파이 피코 베이직 트레이닝 보드 라즈베

ttcw.tistory.com

1) ADC 제어 구동 원리

(1) 동작설명

Analog to Digital Converter를 줄여 ADC 라고 하며 아날로그 신호를 디지털 신호로 변환을 말합니다.

아날로그 신호란 시간 축을 기준으로 연속적인 신호이며 이 신호를 양자화 시켜 디지털 신호로 바꿉니다.

이때 3가지 과정을 거치는대 표본화, 양자화, 부호화입니다.

 

표본화 (샤논의 표본화 정리)

일정한 시간 간격으로 표본을 채취할 때 표본화를 수행할 아날로그 신호의 주파수의 2배의 속도로 표본화를 수행하여 얻는다면 그 표본화된 데이터를 바탕으로 원래 신호를 거의 완벽하게 재생이 가능하다는 것에 있습니다.

 

양자화 (Quantization)

양자화는 샘플링된 아날로그신호를 일정한 전압 레벨의 구간을 나눈 영역에 강제적으로 대응 시키는 과정입니다.

양자화를 할 때 중요한 것이 바로 해상도(Resolution)입니다. 전압 레벨 구간을 촘촘하게 나누면 나눌수록 처리할 데이터의 양은 많아지지만 원래의 아날로그 신호에 매우 근사하게 값을 복원할 수 있습니다.

부호화 (Encoding)

부호화란 표본화와 양자화가 상호적으로 이뤄진 후에 얻어진 데이터를 가지고 여기에 2진수의 코드를 부여하는 것입니다.

해상도가 4-Bit라면 각각의 경우에 부여할 수 있는 코드는 0000, 0001, 0010, 0011 1011, 1100, 1101, 1110, 111116개의 코드를 부여할 수 있습니다.

반응형

2) CdS 센서를 이용한 제어

(1) 동작설명

 

CDS는 반도체에 빛이 닿으면 전자의 움직임과 정공의 갯수가 증가하고, 조사된 빛 에너지에 비례하여 전류가 증가하는 원리를 이용한 소자입니다.

 

연결 표

 

(3) 코드작성

const int CDSPIN = A0;
int CDS_Value = 0;
const int LED0 = 13;
voidsetup() {
  Serial.begin(115200);
  pinMode(CDSPIN, INPUT);
  pinMode(LED0, OUTPUT);
}
voidloop() {
  CDS_Value =analogRead(CDSPIN);
  Serial.print("CDS_Value = ");
  Serial.println(CDS_Value);

  if (CDS_Value >250) {
    digitalWrite(LED0, HIGH); 
  } else {
    digitalWrite(LED0, LOW);  
  }
}

 

(4) 동작결과

CDS값이 높을 때는 LED불이 안들어 오다가 CDS값이 250 보다 낮아지면 LED가 켜집니다.

 

 

 

3) 가변저항을 이용한 제어

(1) 동작설명

저항 물질이 많고 적고에 따라 저항 값이 변하는 것이 가변 저항입니다.

대부분의 가변저항의 최소 저항 값은 0옴으로 정해져있고 최대저항은 제품마다 1KΩ, 4.7KΩ, 10KΩ, 20KΩ, 500KΩ, 1MΩ 등의 여러 값으로 정해져 있습니다.

 

(2) 연결방법

 

연결 표

 

(3) 코드작성

 

const int VRPIN = A0;
int Vr_Value =0;
void setup() {
  Serial.begin(115200);
  pinMode(VRPIN, INPUT);
}
void loop() {
  Vr_Value =analogRead(VRPIN);
  Serial.print("VrValue = ");
  Serial.println(Vr_Value);  
  delay(2);
}

(4) 동작결과

728x90
반응형
LIST

댓글