/*
Chương trình kiểm tra cảm biến PIR
*/
int ledPin = 13; // chọn chân cho LED
int inputPin = 2; // chọn chân vào (cho cảm biến PIR)
int pirState = LOW; // giả sử ban đầu không có chuyển động
int val = 0; // biến để đọc trạng thái của chân
void setup() {
pinMode(ledPin, OUTPUT); // khai báo LED là đầu ra
pinMode(inputPin, INPUT); // khai báo cảm biến là đầu vào
Serial.begin(9600); // khởi tạo kết nối Serial để in ra màn hình giám sát
}
void loop() {
val = digitalRead(inputPin); // đọc giá trị đầu vào từ cảm biến PIR
if (val == HIGH) { // kiểm tra nếu giá trị đầu vào là HIGH (có chuyển động)
digitalWrite(ledPin, HIGH); // bật LED
if (pirState == LOW) { // kiểm tra xem trạng thái trước đó của PIR là LOW (không có chuyển động)
// vừa mới phát hiện chuyển động
Serial.println("Phát hiện chuyển động!");
// chỉ in thông báo khi có sự thay đổi trạng thái, không in liên tục
pirState = HIGH; // cập nhật trạng thái của pirState là HIGH
}
} else { // nếu không có chuyển động
digitalWrite(ledPin, LOW); // tắt LED
if (pirState == HIGH) { // kiểm tra xem trạng thái trước đó của PIR là HIGH
// vừa kết thúc chuyển động
Serial.println("Chuyển động kết thúc!");
// chỉ in thông báo khi có sự thay đổi trạng thái, không in liên tục
pirState = LOW; // cập nhật trạng thái của pirState là LOW
}
}
}