#include <Wire.h>
#include <LiquidCrystal_I2C.h> //menginisialisasi lcd
#include <HX711.h> //menginisialisasikan sensor besar atau HX711
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inisialisasi LCD
#define DOUT 2 // Pin DT HX711
#define CLK 3 // Pin SCK HX711
#define TRIG 4 // Pin TRIG Ultrasonic
#define ECHO 5 // Pin Echo Ultrasonic
long duration, jarak;
float air, volume, berat, densitas;
HX711 scale;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Densitas:");
scale.begin(DOUT, CLK);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
}
void loop() {
digitalWrite(TRIG,LOW);
delayMicroseconds(5);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
pinMode(ECHO, INPUT);
duration = pulseIn(ECHO,1);
jarak = (duration/2)/29.1;//mengubah durasi menjadi cm
air = 10-jarak;//mencari tinggi air
volume = air*43.0085;//mencari volume air dikali dengan luas alas
berat = scale.get_units()/0.42;//satuan berat diubah ke gram
densitas = berat/volume;//mencari densitas
lcd.setCursor(0, 1);
lcd.print(densitas,3);//densitas ditampilkan dengan 3 angka belakang koma
lcd.println(" g/mL");
Serial.print(berat);
Serial.print(" g ");
Serial.print(volume);
Serial.print(" mL ");
Serial.print(densitas);
Serial.println(" g/mL");
delay(1000);
}