#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#define trigPin 3
#define echoPin 2
#define buttonPin 7
LiquidCrystal_I2C lcd(0x27, 16, 2);
int jarak = 200;
int tinggi;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buttonPin, INPUT_PULLUP); // Pull-up resistor for the button
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(2, 0);
lcd.print("ALAT PENGUKUR");
delay(1000);
lcd.setCursor(2, 1);
lcd.print("TINGGI BADAN");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SILAHKAN PENCET");
lcd.setCursor(0, 1);
lcd.print("UNTUK MEMULAI");
}
void marqueeTextReverse(const char* message, int row, int delayTime) {
int length = strlen(message);
for (int i = length; i >= -16; i--) {
lcd.clear();
lcd.setCursor(i, row);
lcd.print(message);
delay(delayTime);
}
}
void loop() {
// Tambahkan kondisi untuk memulai pengukuran saat tombol ditekan
if (digitalRead(buttonPin) == LOW) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sedang mengukur...");
delay(1000);
long duration, gape;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
gape = (duration / 2) / 29.1;
tinggi = jarak - gape;
// lcd.clear();
// lcd.setCursor(0, 0);
// lcd.print("TINGGI");
lcd.setCursor(0, 0);
lcd.print("TINGGI ANDA ADALAH: ");
lcd.print(tinggi);
lcd.print(" CM");
lcd.setCursor(0, 1);
// Tambahkan kondisi untuk menampilkan pesan berdasarkan tinggi badan
if (tinggi < 150) {
lcd.print("Tinggi Anda Dibawah Rata-Rata");
} else if (tinggi <= 180) {
lcd.print("Tinggi Anda rata-rata");
} else {
lcd.print("Tinggi Anda Diatas Rata Rata");
}
delay(500); // Tambahkan delay sesuai kebutuhan
for (int i = 0; i < 16; i++) {
lcd.scrollDisplayLeft();
delay(500); // Tambahkan delay sesuai kebutuhan
}
lcd.setCursor(0, 3);
delay(500); // Delay untuk menampilkan hasil lebih lama sebelum pengukuran berikutnya
marqueeTextReverse("Tekan tombol untuk pengukuran berikutnya", 1, 120);
delay(1000); // Delay sejenak sebelum pengukuran berikutnya
}
}