코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
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Ω 저항 | 브레드 보드 | 케이블 |
부품 사진 |
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
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!