#include <Wire.h> // Library untuk komunikasi I2C
#include <LiquidCrystal_I2C.h> // Library untuk LCD I2C
#include <NewPing.h> // Library untuk sensor ultrasonic
#define TRIG_PIN 8 // Pin Trigger HC-SR04
#define ECHO_PIN 7 // Pin Echo HC-SR04
#define MAX_DISTANCE 200 // Jarak maksimum yang bisa diukur
#define SENSOR_HEIGHT 200 // Ketinggian sensor dalam cm (200 cm)
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE); // Inisialisasi sensor ultrasonic
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inisialisasi LCD I2C dengan alamat 0x27, 16 kolom, 2 baris
void setup() {
Serial.begin(115200); // Inisialisasi komunikasi serial
lcd.init(); // Inisialisasi LCD
lcd.backlight(); // Nyalakan backlight LCD
lcd.setCursor(0, 0); // Set cursor pada posisi 0,0
lcd.print("Tinggi Badan:"); // Menampilkan teks awal
delay(1000); // Delay 1 detik sebelum mulai pengukuran
}
void loop() {
int distance = sonar.ping_cm(); // Mengambil jarak dalam cm
if (distance > 0) {
int height = SENSOR_HEIGHT - distance; // Menghitung tinggi badan
if (height > 0) {
// Menampilkan hasil pengukuran pada LCD
lcd.clear(); // Bersihkan layar LCD
lcd.setCursor(0, 0); // Set cursor pada baris pertama
lcd.print("Tinggi Badan: ");
lcd.setCursor(0, 1); // Set cursor pada baris kedua
lcd.print(height); // Menampilkan tinggi badan
lcd.print(" cm");
}
else {
// Jika jarak terukur lebih besar dari tinggi sensor, beri peringatan
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Jarak Terlalu Jauh");
}
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tidak Ada Objek");
lcd.setCursor(0, 1);
lcd.print("Terukur");
}
delay(500); // Delay setengah detik sebelum pengukuran berikutnya
}