중급 예제

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

비접촉 수위 센서

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

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

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

김윤정 2015-11-17 14:50:56

비접촉 수위센서의 디지털 값 0 과 1 을 받아서 그 값으로 모터를 제어하려면 어떻게 해야하나요? ㅠㅠ

Himmel 2016-04-09 18:32:55

비접촉 수위 센서의 정확한 모델명이 뭔가요?
그리고 위에 fritzing으로 브레드보드 설계도를 그렸을 때 사용한 비접촉 수위 센서 부품 다운로드 링크를 받을 수 있을까요?

kocoafab 2019-02-08 15:09:20

@김윤정
위 코드에서 LED 제어해주는 부분대신에 모터를 제어하는 부분을 넣어주시면 됩니다.

기초 튜토리얼에 모터 제어하는방법이 있으니 확인해보세요.

@Hlmmel
https://www.dfrobot.com/wiki/index.php/Non-contact_Liquid_Level_Switch_SKU:FIT0212
제품 관련 위키입니다. DF로봇사에서 만들었고, Fritzing 파일은 찾아봤는데 따로 안보이네요.

gmltjs 2020-10-15 18:03:38

어플로 작동하고 싶은데 혹시 앱 인벤터 코딩 하는 법 알려주실 수 있나요??????????????????????????