const int ledPin = 13; // Pin kết nối LED (thay đổi nếu cần)
const int buttonPin = 2; // Pin kết nối nút nhấn (thay đổi nếu cần)
bool ledState = false; // Trạng thái LED, bắt đầu là tắt
bool lastButtonState = HIGH; // Trạng thái trước đó của nút nhấn
bool currentButtonState; // Trạng thái hiện tại của nút nhấn
void setup() {
pinMode(ledPin, OUTPUT); // Thiết lập pin LED là output
pinMode(buttonPin, INPUT_PULLUP); // Thiết lập pin nút nhấn là input với pull-up nội bộ
Serial.begin(9600); // Bắt đầu giao tiếp Serial với tốc độ 9600 bps
}
void loop() {
// Đọc trạng thái của nút nhấn
currentButtonState = digitalRead(buttonPin);
// Kiểm tra nếu nút nhấn được nhấn (chuyển từ HIGH sang LOW)
if (currentButtonState == LOW && lastButtonState == HIGH) {
ledState = !ledState; // Thay đổi trạng thái LED
digitalWrite(ledPin, ledState); // Cập nhật trạng thái LED
}
// Cập nhật trạng thái nút nhấn trước đó
lastButtonState = currentButtonState;
// Kiểm tra nếu có dữ liệu Serial từ máy tính
if (Serial.available()) {
String command = Serial.readStringUntil('\n'); // Đọc lệnh đến từ Serial
// Kiểm tra lệnh và thực hiện bật/tắt LED
if (command == "LED ON") {
ledState = true;
digitalWrite(ledPin, HIGH);
Serial.println("LED đã bật");
} else if (command == "LED OFF") {
ledState = false;
digitalWrite(ledPin, LOW);
Serial.println("LED đã tắt");
}
}
}