반응형
수위 센서를 사용하여 물 높이 측정하기
- 수위센서가 사실 뭐 정확하지는 않지만, 이런 원리의 센서도 있다는 식으로 알면 좋을 것 같습니다 ^^
○ 사용 부품
회로 연결
○ 적용 코드
int level;
int temp;
// 전역변수를 사용하면 함수마다 초기화해야하는 번거로움을 줄일 수 있다.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
level = map(analogRead(A0),0,200,0,4);
Serial.println(level);
}
bool is_diff();
void loop() {
// put your main code here, to run repeatedly:
printWhenDiff();
}
void printWhenDiff(){
temp = map(analogRead(A0),0,200,0,4);
if(!is_diff()){ // 직전 기록과 차이가 없으면 출력하지 않음
delay(1000);
return;
}
Serial.println(temp);
level = temp;
delay(100);
}
bool is_diff(){ // 직전의 기록과 차이가 있는지 확인하는 함수
if(level!=temp){
return true;
}
return false;
}
코드 뜯어보기
void is_diff() : 직전의 수위 기록(level)이 지금(temp)과 다르면 true를 반환하는 함수
void printWhenDiff() : is_diff 함수가 true일 경우( 수위 기록이 바뀌면 ) 현재 기록을 출력하는 함수
수위 센서 뜯어보기
접촉식 수위 센서는 물이 닿기 이전에는 도체로 구성된 금속판에 전류가 흐르지 않다가, 물이 닿게 되면 전류가 흐르는 원리를 이용한다.
이때, 물의 접촉면적이 넓을수록 저항 값이 적어지는 원리로 센서를 수직으로 설치하게 되면, 저항 값이 높이에 반비례 하는 원리를 이용하여 수위를 측정할 수 있다.
프로젝트로 응용??
피에조 부저, LED를 이용한 수위 알람 프로젝트
개발 개요
수위의 변동을 체크하고 수위가 높을 때, 수위가 낮을 때를 LED와 Piezo Buzzer로 경고하는 회로
사용 예정 부품
아두이노 Uno x 1
수위 센서 x 1
Piezo Buzzer x 1
프로젝트 활용
어플을 통해 원격으로 물의 높이를 측정하고 싶을 때에는 아래와 같은 예제로 구현이 가능합니다.
https://kgu0724.tistory.com/148
반응형
'메이커 이야기 > 아두이노' 카테고리의 다른 글
[침입감지기] 아두이노 PIR,피에조 활용 침입감지기 (2) | 2020.02.05 |
---|---|
[온습도측정] 아두이노 온습도 제어 (0) | 2020.02.05 |
[아두이노 랜덤] 완벽한 랜덤 값 생성 (2) | 2020.02.05 |
[아두이노 키패드] 4x4 키패드 제어하기 (0) | 2020.02.04 |
[아두이노 LCD 타이머] 아두이노 LCD 화면 제어 _ EP5 (23) | 2020.02.04 |