Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

// Khai báo các chân kết nối đèn LED và nút nhấn

int ledPins[] = {10, 11, 12};


int buttonPin1 = 2;
int buttonPin2 = 7;

boolean ledState = false;


boolean buttonState1 = false;
boolean lastButtonState1 = false;
boolean buttonState2 = false;
boolean lastButtonState2 = false;
unsigned long debounceDelay = 50;

// Thời gian chu kỳ các đèn


const unsigned long intervals[] = {10000, 5000, 12000};
unsigned long previousMillis[3] = {0};

void setup() {
// Đặt chế độ pin cho đèn LED
for (int i = 0; i < sizeof(ledPins)/sizeof(ledPins[0]); i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // Tắt đèn ban đầu
}

// Đặt chế độ pin cho nút nhấn


pinMode(buttonPin1, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
}

void loop() {
// Đọc trạng thái nút nhấn 1
int buttonReading1 = digitalRead(buttonPin1);
// Kiểm tra debounce cho nút 1
if (buttonReading1 != lastButtonState1) {
if ((millis() - previousMillis[0]) > debounceDelay) {
if (buttonReading1 != buttonState1) {
buttonState1 = buttonReading1;
if (buttonState1 == LOW) {
// Khi nút 1 được nhấn
ledState = !ledState;
}
}
}
}
lastButtonState1 = buttonReading1;

// Đọc trạng thái nút nhấn 2


int buttonReading2 = digitalRead(buttonPin2);
// Kiểm tra debounce cho nút 2
if (buttonReading2 != lastButtonState2) {
if ((millis() - previousMillis[1]) > debounceDelay) {
if (buttonReading2 != buttonState2) {
buttonState2 = buttonReading2;
if (buttonState2 == LOW) {
// Khi nút 2 được nhấn
ledState = HIGH;
}
}
}
}
lastButtonState2 = buttonReading2;

// Bật/tắt đèn LED


for (int i = 0; i < sizeof(ledPins)/sizeof(ledPins[0]); i++) {
if (ledState == LOW) {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis[i] >= intervals[i]) {
previousMillis[i] = currentMillis;
digitalWrite(ledPins[i], !digitalRead(ledPins[i])); // Chuyển đổi trạng
thái đèn
}
} else {
digitalWrite(ledPins[i], HIGH); // Tắt đèn
}
}
}

You might also like