중급 예제

약간은 익숙하시거나 익숙해지셨나요? 그렇다면 조금더 깊이 다뤄볼까요?

비접촉 수위 센서

2015-01-05 17:04:15

개요

수위 센서를 사용해 보자.
이번에 사용할 수위 센서는 액체가 담긴 그릇이나 컵에 붙여 사용하는 액체 비접촉식 센서이다.


출처 : http://www.epictinker.com/

수위센서는 생활에서 보통 급수, 배수를 제어할 때 많이 쓰이게 된다.
수위 센서를 달아 놓고 일정 높이 이상 수위가 올라가거나 내려가게 되면 되면 배수나, 급수를 정지하는 식으로 사용할 수 있다.
가전제품 중에서는 가습기나 보일러, 농촌에서는 물탱크, 자동차에서는 기름연료통에서 대표적으로 쓰이게 된다.




수위센서 종류에는 끝에 전극봉을 달아 체크하는 것과 초음파를 통해 수면에서 반사되어 오는 초음파를 체크하여 수위를 측정하는 센서, 반도체형 수위 센서, 물의 압력을 통해 수위를 측정하는 센서, 정전용량식 센서 등 종류가 다양하다.

이번에는 컵 표면에 센서를 부착하여 일정 수위 이상 올라오면 LED에 불이 들어오게 만드는 튜토리얼을 해보자.



 

동영상

 

 

부품 목록

NO  부 품 명 수  량 상 세 설 명
1 아두이노  1개 오렌지 보드
2 비접촉 수위 센서 1개  DFRobot
3 Green, Yellow
LED 
각1개  
4 330Ω 저항 3개  
5 브레드 보드 1개  
6 케이블 7개 점퍼 케이블

 

 

부품명 아두이노 비접촉 수위 센서 Green, Yellow LED 330Ω 저항 브레드 보드 케이블
부품
사진

※ 비접촉 수위 센서를 사용할 때 주의점
센서가 물체에 닿는 부분은  은색의 얇은 구멍뚫린 막에 안에는 스폰지로 되어있다. 
이 센서를 사용할 때는 이 스폰지 부분이 컵이나 통의 표면에 닿아야 하는데 표면에 붙일 때 스폰지 부분에 압력이 들어가게 되면 값이 비정상적으로 뜨게 되므로 스폰지 부분에 압력이 가해지지 않게 부착해야 한다.
또한 수위 센서가 닿는 컵이나 통의 두께가 두껍지 않은 얇은 두께를 가진 물체여야 제대로 된 값을 측정 할 수 있다.

 

 

하드웨어 making

브레드보드

 

전자 회로도

 

소프트웨어 coding

int levelSensor = 8; //수위센서의 핀번호 선언
//LED 핀번호 선언
int yellowLED = 7; 
int greenLED = 6;

void setup() {
  //각 핀마다 모드 설정
  pinMode(levelSensor, INPUT);
  pinMode(yellowLED, OUTPUT);
  pinMode(greenLED, OUTPUT);
}

void loop() {
  int state = digitalRead(levelSensor); //수위 센서로 부터 디지털값을 읽어 들인다.
  if(state == 1) { //상태값이 1인 경우 노란색 LED 점등
    digitalWrite(yellowLED, HIGH);
    digitalWrite(greenLED, LOW);
  }
  else { //상태값이 0인 경우 녹색 LED 점등
    digitalWrite(yellowLED, LOW);
    digitalWrite(greenLED, HIGH);
  }   
}
 

 

소스코드는 간단하게 digitalWrite()으로 LED를 제어할 수 있게 하였다.
수위 센서는 digitalRead()를 통해 쉽게 값을 가져오고 그 값을 통해 if문으로 조건을 만들어
각 조건에 따라 노란색 LED가 켜질지 초록색 LED가 켜질지 결정하게 된다.

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

비접촉 수위 센서, 아두이노, 오렌지보드