// Deklarasi pin yang digunakan
const int buttonPin1 = 8; // Pin untuk push button 1
const int buttonPin2 = 7; // Pin untuk push button 2
const int ledPin1 = 12; // Pin untuk LED 1
const int ledPin2 = 11; // Pin untuk LED 2
const int ledPin3 = 10; // Pin untuk LED 1
const int ledPin4 = 9; // Pin untuk LED 2
// Variabel untuk menyimpan waktu LED aktif
void setup() {
// Atur pin-pin sebagai output
pinMode(buttonPin1, INPUT_PULLUP); // Push button 1 sebagai input dengan pull-up resistor internal
pinMode(buttonPin2, INPUT_PULLUP); // Push button 2 sebagai input dengan pull-up resistor internal
pinMode(ledPin1, OUTPUT); // LED 1 sebagai output
pinMode(ledPin2, OUTPUT); // LED 2 sebagai output
pinMode(ledPin3, OUTPUT); // LED 1 sebagai output
pinMode(ledPin4, OUTPUT); // LED 2 sebagai output
}
void loop() {
// Hidupkan LED 1 jika belum aktif
int button1State = digitalRead(buttonPin1);
int button2State = digitalRead(buttonPin2);
if (button1State == LOW) {
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
}
led1State = true;
led2State = true;
ledStartTime = millis(); // Catat waktu tombol 1 ditekan
previousMillis = millis();
while(millis() - previousMillis < 5000){
}
digitalWrite(ledPin3, 0);
digitalWrite(ledPin4, 0);
led3State = false;
led4State = false;
ledStartTime = millis(); }
// Jika LED 1 aktif dan sudah 3 detik, hidupkan LED 2
/*if (led1State && !led2State && millis() - ledStartTime >= delayTime) {
led2State = true;
ledStartTime = millis();
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin2, HIGH);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin2, LOW);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin2, HIGH);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin2, LOW);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin2, HIGH);
}
led2State = true;
ledStartTime2 = millis();
previousMillis = millis();
while(millis() - previousMillis < 5000){
}
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
bool led3State = false;
bool led4State = false;
}*/
// Jika LED 2 aktif dan sudah 3 detik, matikan LED 3 dan 4
/*if (led3State && millis() - ledStartTime2 >= 5000) {
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
led3State = false;
led4State = false;
}*/
// Tombol 2 ditekan
if (button2State == LOW) {
//ledStartTime3 = millis(); // Catat waktu tombol 2 ditekan
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
}
led3State = true;
led4State = true;
ledStartTime = millis();
previousMillis = millis();
while(millis() - previousMillis < 5000){
}
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
led1State = false;
led2State = false;
ledStartTime = millis();
}
// Jika LED 3 aktif dan sudah 3 detik, hidupkan LED 4
/*if (led3State && !led4State && millis() - ledStartTime3 >= delayTime) {
led4State = true;
//ledStartTime4 = millis();
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin4, HIGH);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin4, LOW);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin4, HIGH);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin4, LOW);
}
previousMillis = millis();
while(millis() - previousMillis < 2000){
digitalWrite(ledPin4, HIGH);
}
led1State = true;
ledStartTime = millis();
previousMillis = millis();
while(millis() - previousMillis < 5000){
}
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
bool led1State = false;
bool led2State = false;
}
// Jika LED 1 aktif dan sudah 3 detik, matikan LED 2
/*if (led1State && millis() - ledStartTime >= 5000) {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
led1State = false;
led2State = false;
}*/
/*if (led4State && millis() - ledStartTime >= delayTime1) {
digitalWrite(ledPin1, 0);
digitalWrite(ledPin2, 0);
led1State = false;
led2State = false;
ledStartTime = millis();
}*/
/*if (button1State == LOW) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
led1State = true;
led2State = true;
ledStartTime = millis(); // Catat waktu tombol 1 ditekan
}
// Jika LED 1 dan 2 aktif dan sudah melewati delayTime1
if (led1State && led2State && millis() - ledStartTime >= delayTime1) {
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
led3State = false;
led4State = false;
}
// Tombol 2 ditekan
if (button2State == LOW) {
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
led3State = true;
led4State = true;
ledStartTime1 = millis(); // Catat waktu tombol 2 ditekan
}
// Jika LED 3 dan 4 aktif dan sudah melewati delayTime2
if (led3State && led4State && millis() - ledStartTime1 >= delayTime2) {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
led1State = false;
led2State = false;
}*/
delay(100);
}