fbpx

Cara Menampilkan Data Flow Meter pada LCD 16×2

Flow meter yaitu sebuah sensor yang berfungsi untuk menghitung aliran air (debit) dan volume air dalam suatu alur dan waktu tertentu. Di lapangan, flow meter juga dapat digunakan untuk menghitung material lain seperti gas dan power. Flow meter terdiri dari 3 bagian yaitu rotor(kincir), katup, dan sensor hall effect. Untuk pinnya juga sama memiliki 3 pin (kabel)  kuning (OUT), hitam (GND), dan merah (VCC).

Alat dan Bahan :

  • 1x Arduino Uno R3, beli
  • 1x LCD 16×2, beli
  • 1x I2C LCD, beli
  • 1x Water Flow Meter, beli

Library : LiquidCrystal_I2C, download

Rangkaian :

Skecth program :

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); //0x3f

byte sensorInt = 0;
byte flowSensor_pin = 2;

float konst = 4.5;
float debit_air;

volatile byte count;

unsigned int flow_mlt;
unsigned long total_volume;
unsigned long oldTime;

void setup() {
lcd.begin();
lcd.backlight();
pinMode(flowSensor_pin, INPUT); digitalWrite(flowSensor_pin, HIGH);

count = 0;
debit_air = 0.0;
flow_mlt = 0;
total_volume = 0;
oldTime = 0;

attachInterrupt(sensorInt, countPulse, FALLING);
}

void loop() {
if ((millis() – oldTime) > 1000) {
detachInterrupt(sensorInt);
debit_air = ((1000.0 / (millis() – oldTime)) * count) / konst;
oldTime = millis();
flow_mlt = (debit_air / 60) * 1000;
total_volume += flow_mlt;

unsigned int frac;

lcd.setCursor(0,0);
lcd.print(“Debit air: “);
lcd.print(int(debit_air));
lcd.print(“L/min”);

lcd.setCursor(0,1);
lcd.print(“Volume air: “);
lcd.print(total_volume);
lcd.print(“mL”);

count = 0;

attachInterrupt(sensorInt, countPulse, FALLING);
}
}

void countPulse(){
count++;
}

Cara penggunaan :
– Rangkai komponen seperti gambar di atas
– Upload sketch program, jangan lupa cek pada menu Tools Board dan Port sesuai yang digunakan
– Simulasikan flow meter dengan cara meniupnya, perhatikan tanda panah pada body flow meter.

Semoga bermanfaat.

About the Author

8 thoughts on “Cara Menampilkan Data Flow Meter pada LCD 16×2

  1. ini hasil percobaan sy kak

    #include
    #include

    LiquidCrystal_I2C lcd(0x27, 16, 2); //0x3f
    byte sensorInt = 0;
    byte flowSensor_pin = 2;
    float konst = 4.5;
    float debit_air;
    volatile byte count;
    unsigned int flow_mlt;
    unsigned long total_volume;
    unsigned long oldTime;
    unsigned int frac;

    void setup() {
    lcd.init();
    lcd.backlight();
    pinMode(flowSensor_pin, INPUT); digitalWrite(flowSensor_pin, HIGH);

    count = 0;
    debit_air = 0.0;
    flow_mlt = 0;
    total_volume = 0;
    oldTime = 0;

    attachInterrupt(sensorInt, countPulse, FALLING);
    }

    void loop() {
    if ((millis() – oldTime) > 1000)
    {
    detachInterrupt(sensorInt);
    debit_air = ((1000.0 / (millis() – oldTime)) * count) / konst;
    oldTime = millis();
    flow_mlt = (debit_air / 60) * 1000;
    total_volume += flow_mlt;

    frac;

    Serial.print(“Debit air: “);
    Serial.print(int(debit_air));
    Serial.println(” L/min”);

    Serial.print(“Volume air: “);
    Serial.print(total_volume);
    Serial.println(” mL”);

    count = 0;

    attachInterrupt(sensorInt, countPulse, FALLING);
    }
    }

    void countPulse(){
    count++;
    }

  2. gan saya sudah memasukan program akan tetapi terjadi nyasar program pada bagian ( lcd.print(“mL”); ) gimana ya gan mohon mabtuanya?

  3. Gan, mau tanya.. ini kan udah coba tes ikut codingnya yang di atas, tapi pas di running valuenya(Jumlah Debit air&Volume air) tetap stay di 0 padahal udah coba seperti cara penggunaan diatas (ditiup) ? mohon bantuannya gan