Menu
CoddyTech

Chu kỳ đèn giao thông

Thuộc phần Dự án trong hành trình Arduino của Coddy. Bài học 1 trên 24.

Dự án này dựng một vạch sang đường trong bốn bước: đèn xe, điều chỉnh thời gian tốt hơn, nút bấm dành cho người đi bộ và tín hiệu đi bộ kèm còi báo. Toàn bộ vạch sang đường đã được đấu dây, nên mạch vẫn giữ nguyên ở mọi bước. Hôm nay, chỉ có ba đèn dành cho xe được sử dụng.

Đèn giao thông cứ chạy theo cùng một chu trình: xanh, vàng, đỏ rồi lại xanh. Ở mỗi bước, một đèn bật còn hai đèn kia tắt trong một khoảng thời gian.

Khi một nhóm câu lệnh ngắn cứ lặp đi lặp lại, hãy đặt chúng vào một hàm (function). Hàm này bật đèn được truyền vào và tắt các đèn còn lại:

void showLight(int pin) {
  digitalWrite(redPin, LOW);
  digitalWrite(yellowPin, LOW);
  digitalWrite(greenPin, LOW);
  digitalWrite(pin, HIGH);
}

Sau đó, mỗi bước trong loop() gồm hai dòng: showLight(greenPin); và một lệnh delay() để giữ đèn đó sáng trong khoảng thời gian mong muốn.

challenge icon

Thử thách

Dễ

Đèn xe nối với các chân 12 (đỏ), 11 (vàng) và 10 (xanh lá). Hãy cho chúng bật lần lượt:

  • đặt cả ba chân làm đầu ra
  • đèn xanh lá bật trong 3000 ms
  • đèn vàng bật trong 1000 ms
  • đèn đỏ bật trong 3000 ms, rồi bắt đầu lại

Mỗi lần chỉ một đèn xe được bật. Nhấn Chạy để xem ngã tư, rồi nhấn Kiểm tra.

Tự làm thử

// Đèn xe
const int redPin = 12;
const int yellowPin = 11;
const int greenPin = 10;

void setup() {
  // Đặt ba chân đèn làm đầu ra

}

void loop() {
  // Đèn xanh sáng trong 3 s, đèn vàng sáng trong 1 s, đèn đỏ sáng trong 3 s

}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Dự án

Tự luyện tập: Playground Arduino