// Definisikan pin untuk sensor ACS712 dan relay
const int sensorPin = A0;
const int relayPin = 7;

// Definisikan tegangan ambang batas untuk pemilihan sumber daya
const float thresholdVoltage = 2.5;

void setup() {
  // Inisialisasi serial komunikasi untuk debugging
  Serial.begin(9600);

  // Inisialisasi pin relay sebagai output
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, LOW);
}

void loop() {
  // Baca nilai analog dari sensor ACS712
  int sensorValue = analogRead(sensorPin);

  // Konversi nilai analog ke tegangan (asumsi referensi tegangan 5V)
  float voltage = sensorValue * (5.0 / 1023.0);

  // Cetak tegangan ke Serial Monitor untuk debugging
  Serial.print("Voltage: ");
  Serial.println(voltage);

  // Logika pemilihan sumber daya berdasarkan tegangan
  if (voltage > thresholdVoltage) {
    // Aktifkan relay jika tegangan melebihi ambang batas
    digitalWrite(relayPin, HIGH);
  } else {
    // Nonaktifkan relay jika tegangan di bawah ambang batas
    digitalWrite(relayPin, LOW);
  }

  // Tunggu selama 1 detik sebelum pembacaan berikutnya
  delay(1000);
}
NOCOMNCVCCGNDINLED1PWRRelay Module