Đèn giao thông có nút bấm cho người đi bộ
Chúng ta đã xây dựng một hệ thống đèn giao thông cơ bản với ba màu Đỏ – Vàng – Xanh để điều khiển luồng xe cộ. Đây chính là mô hình đơn giản nhất giống như ngoài đời thực.
Bây giờ, chúng ta sẽ thêm một yếu tố tương tác mới: nút bấm cho người đi bộ.
- Khi người đi bộ nhấn nút, hệ thống đèn giao thông sẽ ưu tiên dừng xe bằng đèn Đỏ và bật đèn Xanh cho người đi bộ.
- Tính năng này giúp mô hình gần gũi hơn với thực tế, nơi luôn tồn tại sự phối hợp giữa làn đường xe cộ và lối đi bộ.
File code:
void setup() {
pinMode(3, OUTPUT); // khai báo chân 3 (đèn xanh) là OUTPUT
pinMode(4, OUTPUT); // khai báo chân 4 (đèn vàng) là OUTPUT
pinMode(5, OUTPUT); // khai báo chân 5 (đèn đỏ) là OUTPUT
pinMode(8, INPUT); // khai báo chân 8 (nút nhấn) là INPUT
}
void loop() {
// Nếu nút chưa được nhấn (LOW)
if (digitalRead(8) == LOW) {
digitalWrite(3, HIGH); // bật đèn xanh
digitalWrite(4, LOW); // tắt đèn vàng
digitalWrite(5, LOW); // tắt đèn đỏ
delay(10000); // giữ 10 giây
digitalWrite(3, LOW); // tắt đèn xanh
digitalWrite(4, HIGH); // bật đèn vàng
digitalWrite(5, LOW); // tắt đèn đỏ
delay(3000); // giữ 3 giây
digitalWrite(3, LOW); // tắt đèn xanh
digitalWrite(4, LOW); // tắt đèn vàng
digitalWrite(5, HIGH); // bật đèn đỏ
delay(10000); // giữ 10 giây
}
// Nếu nút được nhấn (HIGH)
if (digitalRead(8) == HIGH) {
digitalWrite(3, HIGH); // bật đèn xanh
digitalWrite(4, LOW); // tắt đèn vàng
digitalWrite(5, LOW); // tắt đèn đỏ
delay(500); // chờ 0.5 giây
digitalWrite(3, LOW); // tắt đèn xanh
delay(500); // chờ 0.5 giây
}
}