ALAT UKUR TINGGI BADAN DIGITAL
📏 ALAT UKUR TINGGI BADAN OTOMATIS
Proyek ini menggunakan sensor ultrasonik untuk mengukur tinggi badan secara otomatis. Saat dinyalakan, alat akan kalibrasi jarak ke lantai selama 3 detik, lalu siap digunakan. Hasil pengukuran akan ditampilkan di layar selama 10 detik agar mudah dibaca!
🔌 WIRING
Komponen | Pin Arduino |
|---|---|
HC-SR04 VCC | 5V |
HC-SR04 GND | GND |
HC-SR04 TRIG | D9 |
HC-SR04 ECHO | D10 |
LCD I2C SDA | A4 |
LCD I2C SCL | A5 |
Buzzer (+) | D8 |
Buzzer (–) | GND |
💻 SOURCE CODE
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define trigPin 9
#define echoPin 10
#define buzzerPin 8
LiquidCrystal_I2C lcd(0x27, 16, 2);
long lantai = 0;
bool sudahKalibrasi = false;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Kalibrasi...");
// Kalibrasi lantai (ambil rata-rata 30x)
long total = 0;
for (int i = 0; i < 30; i++) {
total += bacaJarak();
delay(100);
}
lantai = total / 30;
sudahKalibrasi = true;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Siap ukur!");
delay(2000);
lcd.clear();
}
void loop() {
if (!sudahKalibrasi) return;
// Tunggu benda mendekat (kepala)
if (bacaJarak() < lantai - 10) {
lcd.setCursor(0,0);
lcd.print("Mengukur...");
long total = 0;
for (int i = 0; i < 30; i++) {
total += bacaJarak();
delay(100);
}
long rata2 = total / 30;
long tinggi = lantai - rata2;
tone(buzzerPin, 2000);
delay(500);
noTone(buzzerPin);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Tinggi:");
lcd.setCursor(0,1);
lcd.print(tinggi);
lcd.print(" cm");
delay(10000); // tahan tampilan selama 10 detik
lcd.clear();
lcd.print("Siap ukur!");
delay(1000);
lcd.clear();
}
delay(300);
}
long bacaJarak() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long durasi = pulseIn(echoPin, HIGH);
return durasi * 0.0343 / 2; // dalam cm
}🧠 PENJELASAN PROGRAM
- Kalibrasi Awal: Alat mengukur jarak ke lantai selama 3 detik pertama (30x pengukuran) untuk mengetahui tinggi referensi lantai.
- Pengukuran: Ketika ada objek mendekat (kepala), alat mengukur ulang dan menghitung tinggi = lantai - kepala.
- Rata-rata: Setiap hasil adalah rata-rata dari 30 pembacaan untuk menghindari error.
- Output: Nilai tinggi ditampilkan di LCD selama 10 detik, dengan buzzer menandakan selesai ukur.
🧒 Cocok untuk alat pengukur tinggi di rumah, sekolah, atau lab sains mini!
Yuk bikin versi digital pengukur tinggi kamu sendiri! Tambahkan fitur NFC, logging ke SD card, atau bahkan upload ke IoT kalau mau lebih keren 😎