Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat memonitor flow air dan tekanan udara atau air secara bersamaan dengan menggunakan lcd. alat ini menggunakan 2 buah sensor dan satu arduino. untuk lebih jelasnya berikut adalah proram dan daftar komponennya.
e. Program Arduino IDE
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16,2);
int dataadc;
int x;
float v;
float kpa;
byte sensorInterrupt = 0; // 0 = digital pin 2
byte sensorPin = 2;
float calibrationFactor = 4.5;
volatile byte pulseCount;
unsigned int frac;
float flowRate;
unsigned int flowMilliLitres;
float totalMilliLitres;
unsigned long oldTime;
float pressure_pascal;
float pressure_bar;
void setup() {
lcd.begin();
lcd.clear();
lcd.noCursor();
pinMode(sensorPin, INPUT);
digitalWrite(sensorPin, HIGH);
pulseCount = 0;
flowRate = 0.0;
flowMilliLitres = 0;
totalMilliLitres = 0;
oldTime = 0;
attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}
void loop() {
if((millis() - oldTime) > 1000)
{
detachInterrupt(sensorInterrupt);
flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibrationFactor;
oldTime = millis();
flowMilliLitres = (flowRate / 60) * 1000;
totalMilliLitres += flowMilliLitres;
pulseCount = 0;
attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}
x = analogRead(A0);
v = x*(5.0/1023.0);
pressure_pascal = (3.0*(v-0.47))*1000000.0;
pressure_bar = pressure_pascal/10e5;
lcd.setCursor(0, 0);
lcd.print("Bar= ");
lcd.print(pressure_bar);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("ml/s= ");
lcd.print(flowMilliLitres);
lcd.print(" ");
delay(200);
}
void pulseCounter()
{
pulseCount++;
}
No comments:
Post a Comment