[AIOT 융합기술 리더 양성과정] 센서 및 액츄에이터

2020. 12. 30. 16:03필요/AIOT

센서

 

CDS센서

조도센서로, 빛을 받으면 저항값이 달라진다.

주로 pull up 저항을 같이 사용한다. (어두워지면 저항 작아짐 -> LED 불 켜짐)

위 그림은 Pull down의 경우를 생각해 그린 회로도이다. 빛이 많이 들어오면 CDS의 저항이 커지고, MCU에 가해지는 전압의 크기는 줄어든다. 이런식으로 1024개로 나눠진 구간의 input을 받게 되며 수치적으로는 값을 구할 수 없다.

 

초음파 거리센서

10us동안 pulse가 high로 유지되면, 40kHz의 8개의 burst가 발사된다.

이 burst를 내보낸 시각과 다시 센서로 돌아온 시각의 차를 통해 시간을 얻는다.

s = v*t를 활용해 거리를 구할 수 있다.

 

온습도 센서

온습도를 측정할 때는 DTH11 센서가 사용된다.

따로 계산할 필요는 없고, 데이터 통신을 이용해 값을 얻게 된다.

온도, 습도, check sum에 대한 정보가 packet단위로 전송되고 센서에 해당하는 library를 사용해 원하는 정보를 얻을 수 있다. 위 사진을 보면 MCU와 DHT11 사이에 하나의 line만 존재한다.

이는 one line, two way 통신으로 반 이중통신이라 불린다. (한쪽이 보내면 한쪽은 받아야함)

 

액츄에이터

 

모터

모터는 자주 사용되는 액츄에이터 중 하나로, TR를 사용해서 제어한다.

GPIO에 다이렉트로 모터가 연결되면 MCU에 손상이 될 수 있으므로 TR을 사용한 보호회로가 필요하다.

트랜지스터에서 Collector에 전원, Emitter에 Gnd를 연결하고 Base에 GPIO를 연결한다.

TR 특징상 Base에 전류가 흘려야 TR의 스위칭 동작이 on되므로 GPIO에 따라 TR가 작동한다.

일반적으로 가변저항의 입력(1024개의 구간)을 사용해 모터 출력(0~3.3V)을 제어한다.

 

디스플레이

값을 아두이노 콘솔창에서 말고, local하게 볼 수 있는 방법이다.

OLED를 사용한 I2C를 사용하는데, 마찬가지로 라이브러리가 제공된다.

SDA pin에는 data, SCL pin에는 clock 값을 연결한다.

여러 라이브러리 중 자주 사용하는 것은 <Wire.h>, <Adafruit_GFX.h> (그림), <Adafruit_SSD1306.h> (글자) 등이 있다.

그림을 출력하려면 몇가지 과정을 거쳐야한다.

일단 이미지를 단색 BMP로 저장하고, 비트맵 컨버터를 사용해 색정보 코드로 바꿔준다.

이 코드는 0x00과 같은 값을 통해 길게 나타난다. 라이브러리 형식에 맞춰 코드를 복사해서 사용하면 된다.