Ardunio thực chiến: BÀI 3 – ĐÈN GIAO THÔNG TỰ ĐỘNG BẰNG ARDUINO - A-Kinh nghiem hay

1. Giới thiệu

Ở Bài 1, chúng ta điều khiển 1 đèn LED.

Ở Bài 2, chúng ta đã biết cách:

Đọc nút nhấn → Arduino xử lý → điều khiển LED

 Sang Bài 3, chúng ta bắt đầu xây dựng một mô hình gần với tự động hóa thực tế hơn:

🔴 Đèn đỏ → 🟢 Đèn xanh → 🟡 Đèn vàng → lặp lại.

Arduino sẽ tự động điều khiển 3 đèn LED theo đúng trình tự và thời gian đã lập trình.

Đây chính là tư duy rất quan trọng trong lập trình điều khiển:

THIẾT BỊ → TRÌNH TỰ → THỜI GIAN → LẶP LẠI


2. Mục tiêu bài học

Sau bài này, người học sẽ biết:

  • Điều khiển nhiều thiết bị đầu ra cùng lúc.
  • Sử dụng nhiều chân Digital của Arduino.
  • Kết hợp nhiều lệnh digitalWrite().
  • Tạo trình tự hoạt động bằng delay().
  • Hiểu cách Arduino thực hiện một chu trình tự động.
  • Biết cách thay đổi thời gian hoạt động của từng đèn.
  • Bước đầu tư duy thiết kế một hệ thống điều khiển thực tế.

3. Linh kiện cần chuẩn bị

♻️ Linh kiện đã có từ Bài 1

Linh kiệnSố lượng
Arduino Uno1
Breadboard1
Dây cắm jumperCó sẵn
Cáp USB1

🛒 Linh kiện mua thêm cho Bài 3

Linh kiệnSố lượng
LED đỏ1
LED vàng1
LED xanh1
Điện trở 220Ω–330Ω3
👉 Như vậy, người đã mua bộ Bài 1 không cần mua lại Arduino, breadboard, dây nối...

Chỉ cần mua bộ nâng cấp Bài 3.

4. Nguyên lý hoạt động

Chúng ta sử dụng 3 chân Digital:

Arduino

   │

   ├── D8  → 🔴 LED ĐỎ

   │

   ├── D9  → 🟡 LED VÀNG

   │

   └── D10 → 🟢 LED XANH

Arduino sẽ thực hiện:

        ┌───────────────┐

        │   🔴 ĐỎ 5s    │

        └───────┬───────┘

                ↓

        ┌───────────────┐

        │  🟢 XANH 5s   │

        └───────┬───────┘

                ↓

        ┌───────────────┐

        │  🟡 VÀNG 2s   │

        └───────┬───────┘

                ↓

             Lặp lại

                ↺

5. Đấu dây

Mỗi LED cần một điện trở riêng.

🔴 LED đỏ

Arduino D8

   │

 [220Ω]

   │

  LED ĐỎ

   │

  GND

🟡 LED vàng

Arduino D9
   │
 [220Ω]
   │
  LED VÀNG
   │
  GND


🟢 LED xanh


Arduino D10
   │
 [220Ω]
   │
  LED XANH
   │
  GND

Sơ đồ tổng quát

                    ARDUINO UNO

                 ┌───────────────┐

                 │               │

D8 ─── [220Ω] ───► 🔴 LED ───────┤

                 │               │

D9 ─── [220Ω] ───► 🟡 LED ───────┤

                 │               │

D10 ── [220Ω] ───► 🟢 LED ───────┤

                 │               │

GND ─────────────► GND           │

                 └───────────────┘

⚠️ Lưu ý

LED có hai chân:

  • Chân dài → Anode (+)
  • Chân ngắn → Cathode (-)

Chân ngắn của các LED nối về GND.

Không được bỏ điện trở hạn dòng cho LED.

6. Lập trình Arduino

Đây là chương trình đầu tiên của chúng ta có nhiều đầu ra hoạt động theo trình tự.

const int LED_RED = 8;
const int LED_YELLOW = 9;
const int LED_GREEN = 10;

void setup()
{
    pinMode(LED_RED, OUTPUT);
    pinMode(LED_YELLOW, OUTPUT);
    pinMode(LED_GREEN, OUTPUT);
}

void loop()
{
    // =========================
    // ĐÈN ĐỎ
    // =========================
    digitalWrite(LED_RED, HIGH);
    digitalWrite(LED_YELLOW, LOW);
    digitalWrite(LED_GREEN, LOW);

    delay(5000);

    // =========================
    // ĐÈN XANH
    // =========================
    digitalWrite(LED_RED, LOW);
    digitalWrite(LED_YELLOW, LOW);
    digitalWrite(LED_GREEN, HIGH);

    delay(5000);

    // =========================
    // ĐÈN VÀNG
    // =========================
    digitalWrite(LED_RED, LOW);
    digitalWrite(LED_YELLOW, HIGH);
    digitalWrite(LED_GREEN, LOW);

    delay(2000);
}

Arduino Code
const int LED_RED = 8;
const int LED_YELLOW = 9;
const int LED_GREEN = 10;

void setup()
{
    pinMode(LED_RED, OUTPUT);
    pinMode(LED_YELLOW, OUTPUT);
    pinMode(LED_GREEN, OUTPUT);
}

void loop()
{
    // =========================
    // ĐÈN ĐỎ
    // =========================
    digitalWrite(LED_RED, HIGH);
    digitalWrite(LED_YELLOW, LOW);
    digitalWrite(LED_GREEN, LOW);

    delay(5000);

    // =========================
    // ĐÈN XANH
    // =========================
    digitalWrite(LED_RED, LOW);
    digitalWrite(LED_YELLOW, LOW);
    digitalWrite(LED_GREEN, HIGH);

    delay(5000);

    // =========================
    // ĐÈN VÀNG
    // =========================
    digitalWrite(LED_RED, LOW);
    digitalWrite(LED_YELLOW, HIGH);
    digitalWrite(LED_GREEN, LOW);

    delay(2000);
}

7. Chương trình hoạt động như thế nào?

Arduino bắt đầu tại:

digitalWrite(LED_RED, HIGH);

→ Đèn đỏ sáng.

Sau đó:

delay(5000);

Arduino chờ 5 giây.

Tiếp theo:

digitalWrite(LED_RED, LOW); digitalWrite(LED_GREEN, HIGH);

→ Đèn đỏ tắt.
→ Đèn xanh sáng.

Arduino tiếp tục chờ 5 giây.

Sau đó chuyển sang:

digitalWrite(LED_GREEN, LOW); digitalWrite(LED_YELLOW, HIGH);

→ Đèn xanh tắt.
→ Đèn vàng sáng.

Sau 2 giây, hàm loop() chạy lại từ đầu.

Vì vậy chu trình sẽ liên tục:

ĐỎ → XANH → VÀNG → ĐỎ → XANH → VÀNG...

8. Thực hành

Sau khi nạp chương trình, hãy quan sát:

Lần 1

🔴 Đỏ sáng 5 giây

Lần 2

🟢 Xanh sáng 5 giây

Lần 3

🟡 Vàng sáng 2 giây

Sau đó quay lại:

🔴 → 🟢 → 🟡 → 🔴...

9. Bài tập thực hành

Đây là phần rất quan trọng vì người học bắt đầu tự thay đổi chương trình, chứ không chỉ copy code.

🟢 Bài tập 3A – Thay đổi thời gian

Hãy sửa chương trình thành:

🔴 Đỏ : 10 giây 🟢 Xanh : 8 giây 🟡 Vàng : 3 giây

Người học chỉ cần tìm các dòng:

delay(5000);

và

delay(2000);

rồi thay đổi giá trị.

🟡 Bài tập 3B – Đèn vàng nhấp nháy

Thay vì sáng vàng liên tục 2 giây, hãy lập trình:

🟡 Sáng 0,5 giây ⬛ Tắt 0,5 giây 🟡 Sáng 0,5 giây ⬛ Tắt 0,5 giây

Gợi ý:

digitalWrite(LED_YELLOW, HIGH); delay(500); digitalWrite(LED_YELLOW, LOW); delay(500);

🔴 Bài tập 3C – Thử thách

Hãy lập trình:

🔴 Đỏ 5 giây 🟢 Xanh 5 giây 🟡 Vàng nhấp nháy 3 lần 🔴 Đỏ 5 giây ...

💡 Đây là bước đầu tiên để người học biết ghép nhiều hành động thành một quy trình tự động.

10. Kiến thức quan trọng rút ra

BÀI 1 Arduino → LED ↓ Điều khiển OUTPUT BÀI 2 Nút nhấn → Arduino → LED ↓ INPUT → PROCESS → OUTPUT BÀI 3 Arduino → LED Đỏ → LED Vàng → LED Xanh ↓ TRÌNH TỰ + THỜI GIAN ↓ TỰ ĐỘNG HÓA

Đây chính là nền tảng để sau này chuyển sang:

  • cảm biến;relay;động cơ;servo;LCD;đo nhiệt độ;cảnh báo;điều khiển thiết bị điện;
  • hệ thống nhà thông minh.

🛒 BỘ LINH KIỆN THỰC HÀNH ARDUINO – BÀI 3

🚦 MÔ HÌNH ĐÈN GIAO THÔNG TỰ ĐỘNG

Bạn đã có bộ Arduino cơ bản từ Bài 1 và Bài 2?
Không cần mua lại! Bài 3 chỉ cần bổ sung các linh kiện mới.

🔴
LED đỏ
1 chiếc
🟡
LED vàng
1 chiếc
🟢
LED xanh
1 chiếc
🔧
Điện trở
3 chiếc

🎓 Kèm hướng dẫn thực hành: sơ đồ đấu dây + chương trình Arduino + bài tập nâng cấp.


0 nhận xét Blogger 0 Facebook

 

 
A-Kinh nghiem hay ©Email: Dhkanguyen@gmail.com. Powered by >Template sưu tầm trên Internet
Link:|Fanpage||Website|Zalo|Telegram
Top
// //