#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Inisialisasi LCD
LiquidCrystal_I2C lcd(0x27, 20, 4); // Alamat I2C dan ukuran LCD (sesuaikan dengan LCD yang Anda miliki)
// Inisialisasi pin sensor ultrasonik
const int trigPin = 9;
const int echoPin = 10;
// Inisialisasi pin sensor suhu (gunakan sensor suhu yang sesuai, misalnya LM35)
const int tempSensorPin = A0;
void setup() {
Serial.begin(9600);
// Inisialisasi LCD
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distance & Temp");
// Inisialisasi pin sensor ultrasonik
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// Baca jarak dari sensor ultrasonik
float distance = getDistance();
// Baca suhu
float temperature = getTemperature();
// Tampilkan data di LCD
lcd.clear();
lcd.setCursor();
lcd.print("Dini Erina");
lcd.print("XI TKJ 1");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distance: ");
lcd.print(distance);
lcd.print(" cm");
lcd.setCursor(0, 1);
lcd.print("Temperature: ");
lcd.print(temperature);
lcd.print(" C");
delay(2000); // Tunggu 2 detik sebelum membaca ulang
}
float getDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long duration = pulseIn(echoPin, HIGH);
float distance = duration * 0.034 / 2; // Konversi ke cm
return distance;
}
float getTemperature() {
int sensorValue = analogRead(tempSensorPin);
float voltage = sensorValue * 5.0 / 1023.0;
float temperature = (voltage - 0.5) * 100.0; // Konversi ke derajat Celsius
return temperature;
}