// ========== KONFIGURASI PIN DAN VARIABEL ==========
const int START = 8; // Pin untuk output starter
unsigned long currentStarterMillis = 0;
unsigned long previousStarterMillis = 0;
int starterState = LOW;
int failCount = 0;
// Waktu delay cranking dalam detik
const int delayCranking = 1; // Misalnya 5 detik
// ========== SETUP ==========
void setup() {
pinMode(START, OUTPUT);
digitalWrite(START, LOW);
Serial.begin(9600);
}
// ========== LOOP ==========
void loop() {
if (failCount == 3) {
Serial.print("Hubungi mekanik");
digitalWrite(START, LOW);
delay(1000);
} else if (failCount < 5) {
cranking();
}
}
// ========== FUNGSI CRANKING ==========
void cranking () {
currentStarterMillis = millis();
long delayStarter = delayCranking * 1000;
if (currentStarterMillis - previousStarterMillis >= delayStarter) {
previousStarterMillis = currentStarterMillis;
if (starterState == LOW) {
starterState = HIGH;
failCount++;
Serial.print(" | Fail Count: ");
Serial.println(failCount);
} else {
starterState = LOW;
}
digitalWrite(START, starterState);
}
}