블로그 이미지
조이키트 블로그
아두이노, 라즈베리파이, 반도체 센서/모듈 활용

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

250x250
728x90
반응형

유량센서 YF-S401은 액체 유량을 측정하는 데 사용되는 감지 장치이다.

 

 

YF-S401

 
이 센서의 기능은 주로 다음과 같다.

  1. 유량 측정: YF-S401은 액체가 흐르는 속도나 양을 측정한다. 이를 통해 액체가 특정 시간 동안 얼마나 많은 양으로 흐르는지 측정할 수 있다.
  2. 디지털 출력: 이 센서는 디지털 출력을 생성하여 다른 장치에 전송할 수 있다. 일반적으로 펄스 출력 또는 디지털 시그널을 사용하여 유량 정보를 전송한다.
  3. 내구성: YF-S401은 내구성이 뛰어나고 경제적인 장치이다. 플라스틱 또는 금속으로 만들어진 센서가 있으며, 액체가 흐르는 환경에 적합한 다양한 모델이 있다.
  4. 낮은 소비 전력: 일반적으로 YF-S401은 낮은 전력을 소비하므로 배터리 또는 기타 전원 공급 장치로 작동할 수 있다.
  5. 애플리케이션: 주로 급유 시스템, 농업 자동화, 산업 프로세스 모니터링 등 다양한 응용 분야에서 사용된다.

유량센서 YF-S401는 아두이노와 함께 사용하여 다양한 프로젝트에 활용할 수 있다. 아래는 YF-S401을 아두이노와 함께 사용하는 간단한 예제이다.
 

 

부품 : 아두이노 우노 R3, YF-S401 유량센서, 12V 소형양수기, 16X2 LCD 디스플레이

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

https://link.coupang.com/a/b13YHl

 

아두이노용 유량센서 YF-S401 | 물흐름 감지센서 - 양수기 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b131DK

 

DC12V 초조용 브러시리스 버클형 소형양수기 - 양수기 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2vSOT

 

ATmega328P 마이크로 컨트롤러가 있는 아두이노 우노 R3 개발 보드 - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2vTO0

 

아두이노 LCD1602 16x2 4핀 디스플레이 모듈/ Arduino LCD1602 Module - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

아두이노 우노 R3 YF-S401 유량센서 12V 소형 양수기 1602 LCD 디스플레이

 
결선 방법

YF-S401유량센서  RED 아두이노 5V
YF-S401유량센서 BLACK 아두이노 GND
YF-S401유량센서 YELLOW 아두이노 D2
12V 소형 양수기 RED / BLACK 전원12V / GND
LCD1602   VCC 아두이노 5V
LCD1602  GND 아두이노 GND
LCD1602  SDA 아두이노 A4
LCD1602  SCL  아두이노 A5


아래 코드는 YF-S401 센서로부터 펄스를 받아 유량을 계산하고 시리얼 모니터를 통해 표시한다. 펄스 수를 측정하여 시간당 유량을 계산하고 누적된 총 유량을 추적한다. 

#include <LiquidCrystal_I2C.h>  // LCE패널 함수 선언

const int sensorPin = 2;  // YF-S401 센서 신호 핀
volatile int pulseCount;  // 펄스 카운터
float flowRate;           // 유량
unsigned int flowMilliLitres;
unsigned long totalMilliLitres;
unsigned long oldTime;

 LiquidCrystal_I2C lcd (0x27,16,2);   

void setup() {
  lcd.init();           // LCD 초기화
  lcd.backlight();      // LCD 뒷 전등 켬
  Serial.begin(9600);
  pinMode(sensorPin, INPUT);
  pulseCount = 0;
  flowRate = 0.0;
  flowMilliLitres = 0;
  totalMilliLitres = 0;
  oldTime = 0;
  attachInterrupt(0, pulseCounter, FALLING);
}

void loop() {
  if ((millis() - oldTime) > 1000) {
    detachInterrupt(0);
    flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / 7.5;  // 7.5는 센서의 각 유량당 펄스 수
    oldTime = millis();
    flowMilliLitres = (flowRate / 60) * 1000;
    totalMilliLitres += flowMilliLitres;
    pulseCount = 0;
    attachInterrupt(0, pulseCounter, FALLING);
  }
  Serial.print("유량: ");
  Serial.print(flowRate);
  Serial.print(" L/min\t");
  Serial.print("총 양: ");
  Serial.print(totalMilliLitres);
  Serial.println(" mL");

  // LCD에서 한번 현시되고 측정된 값이 바뀌면 지우고 다시 현시 
  lcd.clear();
  // LCD의 커서를 첫번째 열에 첫번째행으로 설정     
  lcd.setCursor(0, 0);

  // 측정된 거리값을 LCD에현시
  lcd.print("flowRate:");
  lcd.print(flowRate);     // 유량
  lcd.print("L/min\t");

  // LCD의 커서를 첫번째 열에 두번째행으로 설정     
  lcd.setCursor(0, 1);
  lcd.print("total:");
  lcd.print(totalMilliLitres);  //총양
  lcd.print("mL");
  delay(200);     // 0.2초간 지연
}

void pulseCounter() {
  pulseCount++;
}

 
아래 영상은 유량 측정기의 유량 및 총양을 시리얼 모니터와 LCD 디스플레이로 출력하는 모습이다.
https://www.youtube.com/watch?v=g6Wszr02FHU&t=2s

 
이 코드를 사용하여 유압 시스템, 농업 자동화, 물 관리 시스템 등 다양한 프로젝트에 적용할 수 있다.
 
 
 
 

728x90
반응형
posted by 조이키트 블로그