#define LED 12
#define pb_run 5
#define delay_inc 8
#define delay_dec 10
unsigned long waktuTunda = 0;
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(pb_run, INPUT); // PB aktif LOW
pinMode(delay_inc, INPUT); // PB aktif LOW
pinMode(delay_dec, INPUT); // PB aktif LOW
}
void loop() {
//------------- Program untuk tambah waktu delay ----------------------//
if (digitalRead(delay_inc) == LOW)
{
while (digitalRead(delay_inc) == LOW); // Baris ini gak wajib
if (waktuTunda >= 10000) // Batas atas waktu delay
{
waktuTunda = 10000; //delay tidak boleh bernilai lebih dari 10.000 ms/ 10s
Serial.print("Waktu tunda : ");
Serial.print(waktuTunda / 1000);
Serial.println("s");
Serial.println("Waktu tunda sudah mencapai batas maksimal!");
}
else
waktuTunda = waktuTunda + 1000;
Serial.print("Waktu tunda : ");
Serial.print(waktuTunda / 1000);
Serial.println("s");
}
//------------- Program untuk kurangi waktu delay ----------------------//
if (digitalRead(delay_dec) == LOW)
{
while (digitalRead(delay_dec) == LOW); // Baris ini gak wajib
if (waktuTunda <= 0) // Batas bawah waktu delay
{
waktuTunda = 0; //delay tidak boleh bernilai negatif
Serial.print("Waktu tunda : ");
Serial.print(waktuTunda / 1000);
Serial.println("s");
Serial.println("Waktu tunda sudah mencapai batas minimal!");
}
else
waktuTunda = waktuTunda - 1000;
Serial.print("Waktu tunda : ");
Serial.print(waktuTunda / 1000);
Serial.println("s");
}
//------------- Program untuk start blinking ----------------------//
if (digitalRead(pb_run) == LOW)
{
while (digitalRead(pb_run) == LOW); // Baris ini gak wajib
for (int i = 0; i <= 10; i++) {
digitalWrite(LED, HIGH);
delay(waktuTunda);
digitalWrite(LED, LOW);
delay(waktuTunda);
}
}
}