수위 센서(Water Level Sensor) 제어 (아두이노)
- 온라인 가상시뮬레이터 : https://www.tinkercad.com
오늘은 수위 센서라는 물의 높이를 측정할 수 있는 부품 사용법에 대해서 간단히 살퍄보도록 하겠습니다. 수위 센서 표면에 물이 닿는 위치에 따라서 수위 센서의 값이 0~1023사이의 값을 발생합니다. 그 값을 통해서 물의 높이를 알 수 있는 부품입니다. 실험에 사용한 수위 센서는 정교한 측정 도구는 아니고 간단히 물의 높이를 측정하는 실험용 모듈로 생각하시면 될 듯 싶습니다.
본격적으로 Water Level Sensor에 대해 알아보도록 할까요.
1. Water Level Sensor
- Water Level Sensor 출처 : http://omnigatherum.ca/wp/?p=228
위 센서는 세개의 핀이 있는데 보시는 것처럼 (-,+,S)로 표시되어 있는데 해당핀들은 (Gnd, Vcc, Analog Signal)로 구성되어 있습니다. 수위 센서의 표면에 긴선 모양을 보이실 꺼에요 이 센서의 전류가 공급되면 물이 이 센서의 표현에 닿게 되면은 전류의 값이 변화게 됩니다. 물은 전류가 흐르기 때문에 이 선들이 물에 접촉하게되면 전류의 값이 증가하게 됩니다. 물의 접촉에 따라서 늘어날수록 전류의 값은 커지겠지요. 이때 Analog Signal Pin을 통해서 그 전류의 값이 읽게 됩니다. 아두이노에서는 아날로그 신호를 읽을 때 0~1024사이의 값을 읽게 됩니다.
아날로그 읽기 : analogRead(아날로그핀)
2. Water Level Sensor 회로도
- 준비물 : Water Level Sensor 1개, 아두이노우노
- 내용 : A0에 Analog Signal Pin을 연결한다.
선 연결은 위 그림처럼 단순합니다.
3. 코딩
- analogRead(A0) : A0핀에서 아날로그 신호(0~1024) 읽음
analogRead(A0) 함수로 아날로그 읽기함수로 수위 센서의 전류 0~1023사이의 값을 읽게 됩니다. 전류 신호값이 크면 클수록 물의 수위가 높아집니다.
void setup(){
Serial.begin(9600);
}
void loop(){
int waterSensorVal = analogRead(A0);
Serial.print("Water Sensor : ");
Serial.println(waterSensorVal);
delay(100);
}
4. 결과
post를 등록할려고 보니 영상물에 결과에서 글자가 오타가 났네요. water를 warter라고 오타 났네요.(ㅋㅋ)
Water Level Sensor 문제점
수위 센서는 사실 접촉식은 별로 추천하지 않습니다. 그 이유는 물을 직접적으로 접촉하기 때문에 장시간 물에 접촉된다면 부식과 이물질이 붙는 문제도 있고 물기가 남아있으면 정상적인 결과가 나오지 않습니다. 즉, 수위가 낮아져도 물기가 수위 센서에 뭍어있기 때문에 그 물기가 수위 값으로 판정해 버린다는 문제점이 있습니다. 영상을 보시면 컵에서 꺼낸 수위 센서에서 계속 수위 값을 출력되고 화장지로 닦으니깐 수위 센서값이 0으로 되돌아가는 것을 영상에서 보실 수 있을 꺼에요. 그래서, 뭔가를 만들고 싶다면 접촉식보다 비접촉식으로 수위를 측정하는 센서를 사용하는게 좋습니다. 비접촉식 수위 센서는 구글검색으로 통해서 한번 찾아보세요.
마무리
오늘이 간단히 이런 종류의 센서가 있다는 것을 알려드리려고 post에 담았습니다. 수위를 측정하는 방법이 단순하죠. 수위 센서로 여러분들은 어떤 것을 하고 싶으신지 한번 상상을 해보세요. 일상에서 물의 높이를 측정하는 곳은 물탱크가 있는 곳에서 일반적으로 사용합니다. 물탱크의 물의 수위를 측정하여 물탱크의 물을 채울 수 있습니다. 즉, 물의 높이를 측정하면 물의 용량을 조절할 수 있게 됩니다. 물이 있는 곳에서는 수위센서가 요긴하게 사용됩니다. 수위조절에 필요한 물의 대한 기본 데이터를 제공하기 때문이지요. 수위를 측정하는 예를 들면, 댐이나 강에서 물의 높을 측정할 수 있다면 수문 제어를 할 수 있습니다. 수문을 언제 개방하도 닫을 것인지를요. 수경재배의 물탱크에도 식물에 물 공급과 양액 공급에 조절을 할 수 있겠죠.
수위 센서를 어디에 쓸지 상상을 해보세요. 제가 이 수위 센서를 사용한다면 물기에 대해 센서의 값의 변화가 일어나기 때문에 물기 감지센서로도 사용하면 것은 어떨까 하고 상상하게 되네요. 즉, 물기가 없으면 수위센서의 값은 0이 됩니다. 하지만 물기가 수위센서에 닿게 되면은 닿은 면적에 대한 전류값이 발생하고 수위센서의 물기에 대한 일정 전기신호가 만들어 집니다. 물기 감지센서로 사용하면 좋겠죠.
여러분들도 물에 대해 측정할 수 있는 이 수위 센서를 가지고 어떤 것을 만들 지 한번 상상의 나래를 펼쳐 보세요.
이 정도의 글을 어떻게 매일 쓸 수 있나요? 대단함돠!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
실험은 얼마 안걸리고요.
몇분에 몇십분 실험과 코딩작업까지 다 한뒤에 썰을 푸는 정도 뿐이 아니에요.
그래서 글 보면 약간 정리가 안된 부분도 있고요.
저녁에 자기전에 한편씩 간단히 쓰고 있네요.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
오늘도 정말 잘 보고 갑니다.
전 글에서 이메일 주소 남겼습니다.!!
추가로 아두이노를 배우는 학생 입장에서
배울게 정말 많은 것 같습니다!! 감사합니다!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
전 post에 확인하고 실험용 이메일로 확인 멜 보냈어요
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
메일 답장 드렸습니다!!
친절하게 확인메일 주셔서 감사합니다!!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
You received 2.06 % upvote as a reward From round 2 on 2018.06.13. Congrats!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
어항에 적용해서 수위가 떨어지면 쏠레노이드 벨브 하나 넣어서 자동 공급하는 것도 좋을 듯하네요..
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
그쵸. 물공급에 사용하면 괜찮은데 접촉식보다 비접촉식으로 하면 더 좋을 듯 싶네요.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit