#include <Servo.h>
#define TRIGPIN 10
#define ECHOPIN 9
#define LDRPIN A0
#define LEDPIN 3
#define BUZZERPIN 4
#define SERVOPIN 5
Servo myservo;
void setup() {
pinMode(TRIGPIN, OUTPUT);
pinMode(ECHOPIN, INPUT);
pinMode(LEDPIN, OUTPUT);
pinMode(BUZZERPIN, OUTPUT);
myservo.attach(SERVOPIN);
Serial.begin(9600);
}
void loop() {
// Membaca jarak dari sensor ultrasonik
long duration, distance;
digitalWrite(TRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
duration = pulseIn(ECHOPIN, HIGH);
distance = (duration / 2) / 29.1;
// Membaca tingkat cahaya dari sensor LDR
int lightLevel = analogRead(LDRPIN);
Serial.print("Distance: ");
Serial.print(distance);
Serial.print(" cm, Light level: ");
Serial.println(lightLevel);
// Logika untuk lampu LED
if (lightLevel < 500) { // Misalnya, 500 adalah batas kecerahan
digitalWrite(LEDPIN, HIGH);
} else {
digitalWrite(LEDPIN, LOW);
}
// Logika untuk buzzer dan servo
if (distance < 20) {
digitalWrite(BUZZERPIN, HIGH);
myservo.write(90); // Mengarahkan servo ke posisi tertentu
} else {
digitalWrite(BUZZERPIN, LOW);
myservo.write(0); // Mengembalikan servo ke posisi awal
}
delay(500);
}