/* Hello Wokwi! */
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
// MultiTasking Microcontroller arduino
unsigned long Updated;
unsigned long lastReconnectAttempt1 = 0;
// Pin Variable Sensor
int led = 4;
int Analog_InputA = A0; // Pin Input Analag Sensor Negative Pressure A
int Analog_InputB = A1; // Pin Input Analag Sensor Negative Pressure B
int Sensor_ValueA = 0 ; // Value digunakan untuk Kalirasi Sensor
int Sensor_AnalogB = 0 ; // Value digunakan untuk Kalirasi Sensor
float Analog_SensA1 = 0.00; // Value Analog Voltage
void setup() {
Serial.begin(9600); // Memulai Komuunikasi Serial USB
lcd.begin(16,2); // Menyeting Jumlah Character LCD 16 X 2
lcd.setBacklight(255); // Setting Kecerahan LCD Maximum
pinMode(Analog_InputA,INPUT_PULLUP); // Set Mode Pin input Sensor to Input_Pullup
pinMode(Analog_InputB,INPUT_PULLUP);
pinMode(led, OUTPUT) ; // Set Mode Pin Output
}
void loop() {
Updated = millis(); // Update Mutitasking
update200ms(); // Void Update every 300ms
}
// update 300ms
void update200ms()
{ if ( Updated - lastReconnectAttempt1 > 200)
{ lastReconnectAttempt1 = Updated;
Sensor_ValueA = analogRead(Analog_InputA);
Sensor_ValueA = map(Sensor_ValueA,204,1023,0,200); // Satuan Mpa
Sensor_AnalogB = analogRead(Analog_InputB);
Sensor_AnalogB = map(Sensor_AnalogB,0,1023,0,500); // Satuan Volt 0 - 5.00
Serial_Update();
lcdupdate1();
}
}
////////////////////////////////////////////////*******//////////////////////////////////////////
void lcdupdate1() // Update LCD Value
{ lcd.setCursor(0,0);
lcd.print(F("SensA:"));
lcd.setCursor(6,0);
lcd.print (F(" "));
lcd.setCursor(6,0);
if ( Sensor_AnalogB >= 0 && Sensor_AnalogB <= 460 )
{ lcd.print (Sensor_ValueA);}
if ( Sensor_AnalogB > 460 )
{ lcd.print(F("Open"));
digitalWrite(led, HIGH);
}
else
{digitalWrite(led, LOW);}
lcd.setCursor(13,0);
lcd.print(F("Mpa"));
lcd.setCursor(0,1);
lcd.print(F("Volt :"));
lcd.setCursor(6,1);
lcd.print (F(" "));
lcd.setCursor(6,1);
if ( Sensor_AnalogB >= 0 && Sensor_AnalogB <= 500 )
{ lcd.print (Analog_SensA1);}
lcd.setCursor(13,1);
lcd.print(" V");
}
void Serial_Update() // Print To USB Serial
{
Serial.print ("Common_Rail_Pressure_Is = ");
if ( Sensor_ValueA <=0 )
Sensor_ValueA = 0;
Serial.print (Sensor_ValueA);
Serial.print (" ");
Serial.print (" Mpa || ");
Analog_SensA1 = Sensor_AnalogB/100.00; // Int To Float
Serial.print (Analog_SensA1);
Serial.println (" Volt");
}