#define LED1_PIN 23
#define LED2_PIN 22
#define LED3_PIN 21
#define BUTTON1_PIN 19
#define BUTTON2_PIN 18
#define BUTTON3_PIN 17
bool button2Pressed = LOW; // Flag để theo dõi trạng thái nút nhấn thứ hai
bool ledState1;
bool ledState2;
bool ledState3;
void setup() {
Serial.begin(9600); // Khởi tạo giao tiếp serial
pinMode(21, OUTPUT); // Đặt chân 21 làm đầu ra (LED Xanh)
pinMode(22, OUTPUT); // Đặt chân 22 làm đầu ra (LED Vàng)
pinMode(23, OUTPUT); // Đặt chân 23 làm đầu ra (LED Đỏ)
pinMode(19, INPUT_PULLUP); // Đặt chân 19 làm đầu vào với điện trở kéo lên (nút nhấn LED Đỏ)
pinMode(18, INPUT_PULLUP); // Đặt chân 18 làm đầu vào với điện trở kéo lên (nút nhấn LED Vàng)
pinMode(17, INPUT_PULLUP); // Đặt chân 17 làm đầu vào với điện trở kéo lên (nút nhấn LED Xanh)
}
void loop() {
//LED Đỏ
if(digitalRead(BUTTON1_PIN)==0){
digitalWrite(LED1_PIN, HIGH);
delay(400);
}else {
digitalWrite(LED1_PIN, LOW);
}
//LED Vàng
if(digitalRead(BUTTON2_PIN)==0){
if(!button2Pressed){ // Xử lý khi vừa phát hiện nhấn
button2Pressed = HIGH; // Đánh dấu nút đã được nhấn
ledState2 = !ledState2; // Đảo trạng thái của LED (ON -> OFF hoặc OFF -> ON)
digitalWrite(LED2_PIN, ledState2); // Ghi trạng thái mới vào chân điều khiển LED
delay(400);
}
}else {
button2Pressed = LOW; // Đặt lại cờ khi nút nhấn được thả
}
//LED Xanh
if(digitalRead(BUTTON3_PIN)==0){
digitalWrite(LED3_PIN, LOW);
delay(400);
}else {
digitalWrite(LED3_PIN, HIGH);
}
}