const int sensorPin = A0; // Pin analog untuk sensor
const int relayPin = 6; // Pin untuk mengendalikan relay
const int ledPin = 5; // Pin untuk LED built-in pada Arduino
float voltage = 0.0; // Variabel untuk menyimpan tegangan
void setup() {
Serial.begin(9600); // Mulai komunikasi serial dengan kecepatan 9600 bps
pinMode(relayPin, OUTPUT);// Atur pin relay sebagai output
pinMode(ledPin, OUTPUT); // Atur pin LED sebagai output
}
void loop() {
int sensorValue = analogRead(sensorPin); // Baca nilai dari pin analog
voltage = sensorValue * (5.0 / 1023.0); // Konversi nilai ADC ke tegangan (5V adalah tegangan referensi default)
Serial.print("Tegangan: ");
Serial.print(voltage);
Serial.println(" Volt");
// Atur kondisi untuk mengendalikan relay dan LED berdasarkan rentang tegangan
if (voltage < 1) {
// Matikan relay dan LED jika tegangan kurang dari 1V
digitalWrite(relayPin, LOW);
digitalWrite(ledPin, LOW);
} else if (voltage < 1.5) {
for (int i = 0; i < 10; i++) {
digitalWrite(relayPin, HIGH); // Aktifkan relay
digitalWrite(ledPin, HIGH); // Nyalakan LED
delay(100); // Tunggu 100 ms
digitalWrite(relayPin, LOW); // Matikan relay
digitalWrite(ledPin, LOW); // Matikan LED
delay(100); // Tunggu 100 ms
}
} else if (voltage < 2) {
for (int i = 0; i < 20; i++) {
digitalWrite(relayPin, HIGH); // Aktifkan relay
digitalWrite(ledPin, HIGH); // Nyalakan LED
delay(50); // Tunggu 50 ms
digitalWrite(relayPin, LOW); // Matikan relay
digitalWrite(ledPin, LOW); // Matikan LED
delay(50); // Tunggu 50 ms
}
} else if (voltage < 3) {
for (int i = 0; i < 30; i++) {
digitalWrite(relayPin, HIGH); // Aktifkan relay
digitalWrite(ledPin, HIGH); // Nyalakan LED
delay(33); // Tunggu 33 ms
digitalWrite(relayPin, LOW); // Matikan relay
digitalWrite(ledPin, LOW); // Matikan LED
delay(33); // Tunggu 33 ms
}
} else if (voltage < 4) {
for (int i = 0; i < 40; i++) {
digitalWrite(relayPin, HIGH); // Aktifkan relay
digitalWrite(ledPin, HIGH); // Nyalakan LED
delay(25); // Tunggu 25 ms
digitalWrite(relayPin, LOW); // Matikan relay
digitalWrite(ledPin, LOW); // Matikan LED
delay(25); // Tunggu 25 ms
}
} else if (voltage < 5) {
for (int i = 0; i < 50; i++) {
digitalWrite(relayPin, HIGH); // Aktifkan relay
digitalWrite(ledPin, HIGH); // Nyalakan LED
delay(20); // Tunggu 20 ms
digitalWrite(relayPin, LOW); // Matikan relay
digitalWrite(ledPin, LOW); // Matikan LED
delay(20); // Tunggu 20 ms
}
} else {
for (int i = 0; i < 60; i++) {
digitalWrite(relayPin, HIGH); // Aktifkan relay
digitalWrite(ledPin, HIGH); // Nyalakan LED
delay(16); // Tunggu 16 ms
digitalWrite(relayPin, LOW); // Matikan relay
digitalWrite(ledPin, LOW); // Matikan LED
delay(16); // Tunggu 16 ms
}
}
delay(200); // Tunggu 200 ms sebelum membaca lagi
}