// ldr ke led
int ldr_sensor = 34;
int ldr_to_led = 19;
//infrared depan pintu
int infrared_sensor = 35;
int infrared_to_led = 18;
//gorden sistem
const int kalibrasi_gorden = 1800;
int power_negatif = 17;
int power_positif = 16;
int mentok_buka = 14;
int mentok_tutup = 12;
void ldr_sistem() { // void untuk mengendalikan keterangan led dari bacaan analog ldr
int bacaan = analogRead(ldr_sensor);
int kecerahan = map(bacaan, 4063, 219, 255, 0);
Serial.print("ldr = "); Serial.print(bacaan); Serial.print(" kecerahan = "); Serial.println(kecerahan);
analogWrite(ldr_to_led, kecerahan);
}
void infrared_sistem() { // void untuk menyalakan lampu di daerah pintu ketika ada orang
int bacaan = digitalRead(infrared_sensor);
Serial.print("Input = "); Serial.println(bacaan);
if (bacaan == 0) {
digitalWrite(infrared_to_led, HIGH);
} else {
digitalWrite(infrared_to_led, LOW);
}
}
void buka_gorden() { // void untuk buka gorden
bool bacaan = digitalRead(mentok_buka);
if (bacaan == 1) { // kalau ga mentok buka gorden
digitalWrite(power_negatif, HIGH); digitalWrite(power_positif, LOW);
} else {
digitalWrite(power_negatif, LOW); digitalWrite(power_positif, LOW);
}
}
void tutup_gorden() { // void untuk tutup gorden
bool bacaan = digitalRead(mentok_tutup);
if (bacaan == 1) { // kalau ga mentok tutup gorden
digitalWrite(power_negatif, LOW); digitalWrite(power_positif, HIGH);
} else {
digitalWrite(power_negatif, LOW); digitalWrite(power_positif, LOW);
}
}
void pengendali_gorden() { // void yang menentukan gorden akan tertutup atau terbuka
int bacaan = analogRead(ldr_sensor);
if (bacaan >= kalibrasi_gorden) {
tutup_gorden(); Serial.println("gorden menutup");
} else {
buka_gorden(); Serial.println("gorden membuka");
}
}
void setup() {
// ldr ke led
pinMode(ldr_to_led, OUTPUT);
pinMode(ldr_sensor, INPUT);
//infrared depan pintu
pinMode(infrared_sensor, INPUT);
pinMode(infrared_to_led, OUTPUT);
//gorden sistem
pinMode(power_negatif, OUTPUT);
pinMode(power_positif, OUTPUT);
//pengecek mentok gorden
pinMode(mentok_buka, INPUT);
pinMode(mentok_tutup, INPUT);
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
ldr_sistem();
infrared_sistem();
pengendali_gorden();
delay(250); // this speeds up the simulation
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4