유량계 : 알아야 할 모든 것

유량계

유체 흐름 또는 소비량 측정 어떤 경우에는 중요하며이를 위해서는 유량계가 필요합니다. 예를 들어 포뮬러 1을 따르면 FIA가 팀이 엔진의 유량계를 사용하여 각 팀이 자동차에서 소비하는 것을 감지하고 더 많은 유량을 주입함으로써 가능한 함정을 피하도록 강요한다는 것을 알게 될 것입니다. 엔진을 태우기 위해 오일을 사용하는 방법 ...

그러나 F1 외부에서는 이러한 장치 중 하나를 사용하여 시스템에있는 물 또는 기타 액체의 소비량을 파악하거나 탱크에서 유입되는 튜브의 유량을 확인하여 소비시기를 결정하는 데 관심이있을 수 있습니다. 자동화 된 정원 관개 시스템 등 그만큼 이러한 요소의 응용 프로그램은, 제한을 직접 설정할 수 있습니다.

유량계 또는 유량계

어떻게 알아야 흐름 단위 시간당 파이프 또는 스텁을 통해 순환하는 액체 또는 유체의 양입니다. 분당 리터, 시간당 리터, 시간당 입방 미터, 초당 입방 미터 등과 같이 부피를 시간 단위로 나눈 단위로 측정됩니다. (l / min, l / h, m³ / h, ...).

유량계 란?

El 유량계 또는 유체 미터 파이프를 통과하는 유량을 측정 할 수있는 장치입니다. Arduino와 쉽게 통합 할 수있는 여러 모델과 제조업체가 있습니다. 이 유속은 파이프 단면 및 공급 압력과 같은 여러 요인에 따라 달라집니다.

이 두 가지 매개 변수를 제어하고 유량을 측정하는 유량계로 유체에 대한 정교한 제어 시스템을 가질 수 있습니다. 가정 자동화 또는 기타 전자 및 산업 프로젝트에 매우 유용합니다. 홈 프로젝트의 경우 제작자는 YF-S201, FS300A, FS400A와 같은 잘 알려진 모델

유량계 유형

시장에서 찾을 수 있습니다 다양한 방식 사용하는 용도와 투자하려는 예산에 따라 유량계 또는 유량계의 수. 또한 일부는 물, 연료, 기름과 같은 유체에 특화되어 있으며, 다른 일부는 산업 수준에서 매우 발전된 일부에서 몇 유로에서 수천 유로에 이르는 가격으로 정밀도가 높거나 낮습니다.

  • 기계식 유량계: 모든 사람들이 미터에서 소비하는 물을 측정하기 위해 집에있는 매우 전형적인 미터입니다. 흐름은 측정 값을 축적하는 기계식 카운터에 연결된 샤프트를 움직이는 터빈을 회전시킵니다. 기계적이기 때문에이 경우 Arduino와 통합 할 수 없습니다.
  • 초음파 유량계-업계에서 널리 사용되지만 가정용으로는 매우 비쌉니다. 초음파가 측정 할 유체를 통과하는 데 걸리는 시간으로 유량을 측정 할 수 있습니다.
  • 전자기 유량계: 또한 최대 40 인치 및 고압 파이프 용으로 업계에서 자주 사용됩니다. 그들은 매우 비싸고 측정을 위해 전자기 시스템을 사용합니다.
  • 전자 터빈 유량계: 비용이 저렴하고 매우 정확합니다. 이들은 Arduino와 쉽게 통합 할 수 있으며 가정 환경에서도 사용할 수 있습니다. 그들은 유체 흐름이 통과 할 때 회전하는 블레이드가있는 터빈을 사용하고 홀 효과 센서는 차례에 도달하는 RPM에 따라 흐름을 계산합니다. 문제는 침입 성이 있고 압력 강하가 높고 부품이 열화되어 오래 지속되지 않는다는 것입니다 ...

우리가 전자에 관심이 있다는 점을 고려하여 우리는 계속해서 이것들을 연구 할 것입니다 ...

Arduino 용 유량계 및 구매처

Arduino에서 사용되는 전자식 유량계YF-S201, YF-S401, FS300A 및 FS400A와 마찬가지로, 앞서 언급했듯이 플라스틱 하우징과 내부에 블레이드가있는 로터가 있습니다. 회 전자에 고정 된 자석과 회전은 홀 효과에 의해 항상 측정되는 유량 또는 소비량을 결정합니다. 센서 출력은 통과하는 흐름에 비례하는 주파수를 갖는 구형파입니다.

주파수 (Hz)와 유량 (l / min) 사이의 소위 K 변환 계수는 제조업체가 센서에 제공 한 매개 변수에 따라 달라 지므로 모두 동일하지는 않습니다. 에서 데이터 시트 또는 모델 정보 이 값을 구입하면 Arduino 코드에서 사용할 수 있습니다. 일반적으로 Arduino의 경우 전류 흐름과 관련하여 10 % 이상 또는 이하로 차이가 있지만 정밀도도 동일하지 않습니다.

권장 모델 위치 :

  • YF-S201: 분당 1 ~ 4 리터의 유량을 측정 할 수있는 0.3/6 인치 튜브 연결부가 있습니다. 허용되는 최대 압력은 0.8MPa이며 최대 유체 온도는 80ºC입니다. 전압은 5-18v 사이에서 작동합니다.
  • YF-S401:이 경우 튜브에 대한 연결은 항상 변환기를 사용할 수 있지만 1/2 ″입니다. 측정되는 유량은 1 ~ 30 l / min이며 압력은 최대 1.75 MPa이고 유체 온도는 최대 80ºC입니다. 그러나 전압은 여전히 ​​5-18v입니다.
  • FS300A: 이전과 동일한 전압 및 동일한 최대 온도. 이 경우, 최대 유량은 3-4 l / min이고 압력은 1 MPa 인 60/1.2 ″ 파이프가 있습니다.
  • 제품이 없습니다.: 또한 대체품과 관련하여 전압 및 최대 온도를 유지하며 최대 유량 및 압력은 FS300A와 동일합니다. 유일한 차이점은 튜브가 1 인치라는 것입니다.

프로젝트에 가장 관심이있는 것을 선택해야합니다.

Arduino와의 통합 : 실용적인 예

유량계에 연결된 Arduino

La 유량계의 연결은 매우 간단합니다.. 일반적으로 3 개의 케이블이 있는데, 하나는 흐름에 대한 데이터 수집 용이고 다른 하나는 전원용입니다. 데이터를 가장 적합한 Arduino 입력에 연결 한 다음 스케치 코드를 프로그래밍 할 수 있습니다. 그리고 하나는 5V로, 다른 하나는 GND로, 작동을 시작하기에 충분할 것입니다.

하지만 어떤 종류의 기능을 갖기 위해서는 먼저 Arduino IDE의 코드. 이 유량 센서를 사용하는 방법은 다양하며 프로그래밍 방법도 있습니다. 실용적이고 간단한 예 작동 방식을 볼 수 있습니다.

const int sensorPin = 2;
const int measureInterval = 2500;
volatile int pulseConter;
 
// Si vas a usar el YF-S201, como en este caso, es 7.5.
//Pero si vas a usar otro como el FS300A debes sustituir el valor por 5.5, o 3.5 en el FS400A, etc.
const float factorK = 7.5;
 
void ISRCountPulse()
{
   pulseConter++;
}
 
float GetFrequency()
{
   pulseConter = 0;
 
   interrupts();
   delay(measureInterval);
   noInterrupts();
 
   return (float)pulseConter * 1000 / measureInterval;
}
 
void setup()
{
   Serial.begin(9600);
   attachInterrupt(digitalPinToInterrupt(sensorPin), ISRCountPulse, RISING);
}
 
void loop()
{
   // Con esto se obtiene la frecuencia en Hz
   float frequency = GetFrequency();
 
   // Y con esto se calcula el caudal en litros por minuto
   float flow_Lmin = frequency / factorK;
 
   Serial.print("Frecuencia obtenida: ");
   Serial.print(frequency, 0);
   Serial.print(" (Hz)\tCaudal: ");
   Serial.print(flow_Lmin, 3);
   Serial.println(" (l/min)");
}

그리고 원한다면 소비하다, 그런 다음이 다른 코드를 사용하거나 둘을 결합하여 둘 다 가질 수 있습니다. 소비를 위해 달성 된 흐름은 시간과 관련하여 통합되어야합니다.

const int sensorPin = 2;
const int measureInterval = 2500;
volatile int pulseConter;
 
//Para el YF-S201 es 7.5, pero recuerda que lo debes modificar al factor k de tu modelo
const float factorK = 7.5;
 
float volume = 0;
long t0 = 0;
 
 
void ISRCountPulse()
{
   pulseConter++;
}
 
float GetFrequency()
{
   pulseConter = 0;
 
   interrupts();
   delay(measureInterval);
   noInterrupts();
 
   return (float)pulseConter * 1000 / measureInterval;
}
 
void SumVolume(float dV)
{
   volume += dV / 60 * (millis() - t0) / 1000.0;
   t0 = millis();
}
 
void setup()
{
   Serial.begin(9600);
   attachInterrupt(digitalPinToInterrupt(sensorPin), ISRCountPulse, RISING);
   t0 = millis();
}
 
void loop()
{
   // Obtención del afrecuencia
   float frequency = GetFrequency();
 
   //Calcular el caudal en litros por minuto
   float flow_Lmin = frequency / factorK;
   SumVolume(flow_Lmin);
 
   Serial.print(" El caudal es de: ");
   Serial.print(flow_Lmin, 3);
   Serial.print(" (l/min)\tConsumo:");
   Serial.print(volume, 1);
   Serial.println(" (L)");
}

필요한 사항에 따라이 코드를 수정해야한다는 것을 이미 알고 있습니다. 또한 다음을 입력하는 것이 매우 중요합니다. K 인자 당신이 구입 한 모델의 또는 그것은 실제 측정을 취하지 않을 것입니다. 잊지 마요!


코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.