[아두이노 센서] 아두이노에서 센서 사용하기. (센서에 대한 개념 및 아두이노와의 관계, 센서란?,아두이노의 입력과 출력,아두이노 입출력)

안멋진멋쟁이 2016-03-16 (수) 20:02 8년전 9898  

[ 센서의 개념 및 아두이노와의 관계 ]

 

아두이노와 센서의 연결에 대한 강좌에 들어가기 앞서 센서의

개념과 아두이노와의 관계에 대해 알아보도록 합시다!

 

02cd46d8a607ca14b01d10ead866e139_1458126
 

출처 [메카솔루션] http://Mechasolution.com

 

 

[센서란?]

02cd46d8a607ca14b01d10ead866e139_1458126
 

센서란 열, 빛, 온도 등을 계측하여 신호로 알려주는 부품이에요.

 

여기서 말하는 '신호'에 따라 센서를 두 가지로 분류할 수 있어요.

바로 디지털 신호를 출력해주는 디지털 센서와 아날로그 신호를 출력해주는 아날로그 센서.

 

 많이들 들어보셨죠? 디지털 신호와 아날로그 신호에 대해 간단히 설명하자면

디지털 신호는 아래 그림처럼 간단하게 두 가지 종류의 전압으로만 변화하는 특성이 있고,

%B5%F0%C1%F6%C5%D0%BD%C5%C8%A3.png
 

아날로그 신호는 디지털 신호와 다르게 시간에 따라 연속적으로 변화하는 특성을 가지고 있어요.

02cd46d8a607ca14b01d10ead866e139_1458126
 

 

즉 디지털 센서는 측정한 값을 두가지(0 또는 1)의 신호로 나타내주는 센서를 말하며,

아날로그 신호는 측정한 값을 연속적인 값의 신호로 나타내주는 센서를 말해요.

 

 

 

[아두이노에서 센서 연결하기 (아두이노의 입력 및 출력)]


02cd46d8a607ca14b01d10ead866e139_1458126
 

 

앞에서 말했듯이 센서는 입출력 기능이 있는 부품 소자를 말해요.

아두이노는 이 신호를 입력받을 수 있는 장치가 있고, 이 받아들인

신호를 여러 가지 방법으로 출력할 수 있는 장치를 갖추고 있어요.

 

그렇다면 아두이노는 어떻게 센서의 신호를 받아들일까요?

 

아두이노에는 아날로그 핀과 디지털 핀리 구분되어있어 각각의 핀으로 그에 맞는 신호를 입, 출력할 수 있고,

 

디지털 센서로부터는 2가지의 신호 (HIGH(1) 또는 LOW(0))를 입력받고,

아날로그 센서로부터는 아날로그 센서의 출력값을 0~1023의 값으로 변화하여 받아들여요.

 

디지털 신호의 경우 디지털 입력핀에 digitalRead()명령어를 사용해 받아들일 수 있고,

아날로그 신호의 경우 아날로그 입력핀에 analogRead()명령어를 사용해 받아들일 수 있어요.

 

아두이노의 아날로그 신호 입력에 대한 자세한 내용은 아래 링크 참조.

[아두이노의 아날로그 입력과 analogRead()함수 기능 알아보기 http://blog.naver.com/roboholic84/220322550227]

 

digitalRead()명령어에 대한 설명은 아래 링크 참조.

[아두이노 함수 pinMode(), digitalWrite(), digitalRead(), HIGH, LOW 알아보기 http://blog.naver.com/roboholic84220309631727]

 

 

[아두이노 핀 단자에 대한 이해]

 

앞에서 말했듯이 아두이노에는 핀 단자가 있고, 그 핀 단자 중에는 디지털 입출력 핀과 아날로그 입력 핀이 있어요.

 

02cd46d8a607ca14b01d10ead866e139_1458126
 

 

디지털 신호를 출력하기 위해서는 디지털 입출력 핀을 이용하고, digitalWrite() 함수를 이용해주면 되고,

아날로그 신호를 출력하기 위해서는 PWM 출력 방식을 이용하면 해주면 돼요.

 

아두이노의 아날로그 값 (PWM) 출력방식에 대한 자세한 정보는 아래 링크 참고!

 아두이노 analogRead()함수를 이용한 PWM출력방식 이해하기. http://blog.naver.com/220333343346

 

 

[여러개의 센서 사용시 주의사항]

여러개의 센서를 사용할 경우 아두이노에서 센서의 출력값을 제대로 읽어오지 못하는 경우가 있습니다.

아두이노의 아날로그 입력핀은 5개(A0~A5)로 분리되어있지만, ATmega328(마이크로 프로세서)의

ADC(Analog Digital Converter)처리 부분에서 오류가 발생할 수 있기 때문입니다.

(ADC는 말그대로 아날로그신호를 디지털신호로 변환해주는 장치로 ATmega328에는 8개(6개던가..)가 들어있음.

센서는 다양한 신호로 출력을 해주며 이중 아날로그 신호를 출력해주는 센서는 ADC를 통해 디지털 신호로 들어옴.)

 

센서(아날로그출력) → 아두이노 (아날로그 입력) → 아두이노 (전압 변환) → 디지털 신호 출력

 

이럴경우 해결방법으로 여러가지가 있지만 간단한 방법으로는 센서의 출력 명령어 사이에 delay()함수를 사용해주는 방법이 있습니다.

메카리워즈 Image Map


모바일 버전으로 보기