본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 YF-S201 액체 유량센서를 사용해서 유량 측정해 보기

by 오마이엔지니어 2018. 5. 26.
반응형

Arduino Uno 로 YF-S201 액체 유량센서를 사용해서 유량을 측정해 보고

1602 캐릭터 LCD에 측정값을 출력해 보는 프로젝트입니다

 

 

 

 

<YF-S201 액체 유량센서 이미지>
YF-S201 은 물과 같은 액체의 흐름을 측정하는데 적합한 유량센서 입니다

센서를 물줄기와 나란히 위치하면 pinwheel 센서를 사용해서 액체가 얼마나 이동했는지 측정할 수 있습니다

pinwheel 센서에는 약간의 자석이 부착되어 있으며 반대쪽에는 플라스틱 벽면을 통해서 pinwheel 센서가

몇 번이나 회전하는지를 측정할 수 있는 홀 효과 자기 센서 (hall effect magnetic sensor) 가 장착되어 있습니다

센서 케이블은 빨강 (5-24VDC 전원), 검정 (그라운드) 노랑(홀 효과 펄스 출력)의 3선 와이어로 구성됩니다

센서 출력의 펄스를 카운트해서 손쉽게 액체 흐름을 추적할 수 있습니다

각각의 펄스는 약 2.25 밀리리터 (2.25 milliliters) 입니다

하지만 본센서는 정밀 센서가 아니기 때문에 유량, 유체 압력 및 센서 설치방향에 따라 오차가 생길 수 있습니다 

 

위 그림은 YF-S201 유량 센서가 어떤 원리로 동작하는지 설명해 줍니다
파이프 라인을 통해서 물이 흐르면 터빈 휠이 회전하고 마그네틱 홀 센서를 차단하게 됩니다
차단하는 속도는 물의 흐름 유량에 따라 달라 지므로 이를 토대로 펄스 신호룰 출력합니다
펄스 출력은 water volume 으로 계산할 수 있습니다

구성 배선도-시리얼 모니터로 출력값 확인해 보기


구성 배선도-1602 캐릭터 LCD로 출력값 확인해 보기

사용된 부품
아두이노 우노 (Italy)
YF-S201 액체 유량센서
1602 Character LCD - (QAPASS 1602A)

LC1621-SMLYH6
점퍼케이블
미니 브래드보드
가변저항 10K Ohm

사용된 키트
아두이노 유량센서 키트

사용된 예제파일

example code.txt

Adafruit-Flow-Meter-master.zip

https://github.com/adafruit/Adafruit-Flow-Meter



테스트방법
YF-S201 액체 유량센서는 뒷면을 확인하면 화살표 방향이 표시되어 있습니다
화살표 방향으로 물 줄기가 흐르도록 센서를 장착해 줍니다

 


위 첨부된 example code 가 시리얼 모니터로 유량 변화에 따른 출력값 변화를 확인해 보는 예제입니다
Adafruit-Flow-Meter 예제가 1602 캐릭터 LCD로 출력값을 확인해 보는 예제입니다

별도의 라이브러리는 사용하지 않으므로 배선만 잘 한다면 간단하게 테스트 할 수 있습니다

예제코드를 살펴보면 분당 시간당 Pulse frequency 설정을 확인할 수 있습니다
Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min
l_hour = (flow_frequency * 60 / 7.5); // (Pulse frequency x 60 min) / 7.5Q = flowrate in L/hour

센서 데이터 통신 핀은 2번 입니다
unsigned char flowsensor = 2; // Sensor Input

1602LCD에 출력하는 예제코드를 살펴보면
#include "LiquidCrystal.h"
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
기본 LiquidCrystal 라이브러리를 사용하는것과 LCD 데이터 핀 설정 7~12 를 확인할 수 있습니다

예제코드를 살펴보면 초당 분당 Pulse frequency 설정을 확인할 수 있습니다
  // if a plastic sensor use the following calculation
  // Sensor Frequency (Hz) = 7.5 * Q (Liters/min)
  // Liters = Q * time elapsed (seconds) / 60 (seconds/minute)
  // Liters = (Frequency (Pulses/second) / 7.5) * time elapsed (seconds) / 60
  // Liters = Pulses / (7.5 * 60)
  float liters = pulses;
  liters /= 7.5;
  liters /= 60.0;


프로젝트 동영상-시리얼 모니터로 출력값 확인해 보기

 

프로젝트 동영상-1602 캐릭터 LCD로 출력값 확인해 보기

 

Adafruit-Flow-Meter-master.zip
0.0MB
example code.txt
0.0MB
반응형

댓글