Bài 98-10: Đèn giao thông Arduino
Đèn giao thông là một trong những hệ thống hàng ngày mà chúng ta hiếm khi nghĩ đến — cho đến khi chúng ta tự làm một cái. Trong dự án này, bạn sẽ sử dụng Arduino để mô phỏng một chuỗi đèn giao thông thực tế: xanh bật, rồi vàng, rồi đỏ, mỗi đèn có thời lượng có thể cấu hình riêng, lặp lại vô tận. Đây là một dự án hoàn hảo cho người mới bắt đầu vì nó dạy logic định thời tuần tự, điều khiển nhiều đầu ra, và mối quan hệ giữa những gì bạn viết trong mã và những gì bạn thấy trong thế giới vật lý.
Ngoài phần trình diễn trên lớp, logic định thời mà bạn học ở đây xuất hiện ở khắp mọi nơi:
- Xây dựng mô hình đèn giao thông thực tế cho đường sắt mô hình hoặc mô hình sa bàn
- Tạo hệ thống chỉ báo theo thời gian cho xưởng hoặc gara (ví dụ: tín hiệu "an toàn để vào" / "chờ")
- Học nền tảng cho tín hiệu qua đường dành cho người đi bộ với các pha kích hoạt bằng nút nhấn
- Tạo nguyên mẫu chuỗi rơ-le định thời cho các tác vụ tự động hóa công nghiệp hoặc gia đình
- Dạy trẻ em về tuần tự, định thời và điện tử với một vật thể quen thuộc, dễ nhận biết
Phần tuyệt nhất: toàn bộ hệ thống chạy độc lập sau khi nạp xong. Bạn lập trình Arduino một lần từ máy tính, sau đó cấp nguồn bằng pin hoặc bộ chuyển đổi và nó hoạt động mãi mãi — không cần PC (trong video ở 12:27).
Đèn Giao Thông Hoạt Động Như Thế Nào
Đèn giao thông thực ra chỉ là một chuỗi định thời của ba đầu ra. Arduino bật một LED tại một thời điểm, chờ một số giây đã đặt, tắt nó đi, và chuyển sang LED tiếp theo. Chu kỳ sau đó lặp lại. Trong ví dụ định thời của video, đèn xanh bật trong 3 giây, đèn vàng trong 1 giây, và đèn đỏ trong 3 giây — nhưng tất cả đều có thể điều chỉnh trong mã (trong video ở 49:44).
Lý do chuỗi này có cảm giác thực tế là vì thời lượng phản ánh dòng chảy giao thông thực tế: xanh và đỏ dài hơn vì xe cần thời gian để đi qua giao lộ, trong khi vàng ngắn vì nó chỉ là cảnh báo chuyển tiếp. Bạn có thể tinh chỉnh những thời lượng này để phù hợp với bất kỳ tình huống nào bạn muốn.
Phần Cứng và Linh Kiện
Danh sách linh kiện cho dự án này rất tối giản:
- 1 × bo mạch Arduino (Uno, Nano, hoặc Mega — bất cứ thứ gì có ít nhất 3 chân kỹ thuật số)
- 3 × đèn LED (đỏ, vàng/cam, và xanh lá — các màu khác nhau làm hiệu ứng rõ ràng)
- 3 × điện trở (300 Ω đến 1 kΩ đều hoạt động tốt; video sử dụng 1 kΩ)
- 1 × breadboard
- Dây nối jumper
- Tùy chọn: pin lithium-ion hoặc bộ chuyển đổi nguồn 5 V để chạy độc lập
Video khuyến nghị sử dụng ba đèn LED có màu khác biệt rõ ràng để hiệu ứng đèn giao thông hiển thị ngay lập tức — nếu không bạn sẽ phải dán nhãn chúng (trong video ở 02:04).
Hiểu Về Giới Hạn Dòng Điện Cho LED
Mỗi đèn LED đều cần một điện trở giới hạn dòng mắc nối tiếp. Lý do là: đèn LED có điện áp thuận gần như cố định (thường khoảng 2 V đối với đèn LED 5 mm tiêu chuẩn), và nếu bạn kết nối nó trực tiếp với 5 V, dòng điện sẽ tăng vọt và phá hủy nó. Điện trở sẽ hấp thụ điện áp dư thừa.
Sử dụng định luật Ohm, nếu đèn LED giảm 2 V và nguồn cấp là 5 V, thì 3 V phải giảm qua điện trở. Với dòng mục tiêu khoảng 10 mA, giá trị điện trở tính ra khoảng 300 Ω (trong video ở 04:41). Trong thực tế, bất cứ giá trị nào từ 300 Ω đến 1 kΩ đều hoạt động — giá trị cao hơn chỉ làm đèn LED mờ hơn.
Hướng Dẫn Đấu Dây
Mỗi đèn LED được đấu dây giống hệt nhau: cực dương (chân dài hơn) kết nối với một chân kỹ thuật số của Arduino, và cực âm (chân ngắn hơn, cạnh phẳng của thân LED) kết nối qua một điện trở xuống mass.
Trong phần đấu dây của video, đèn LED đỏ kết nối với chân 2, đèn LED vàng/cam với chân 3, và đèn LED xanh lá với chân 4 (trong video ở 50:50). Cả ba điện trở chia sẻ một thanh mass chung trên breadboard. Thứ tự màu sắc trên breadboard không quan trọng — điều quan trọng là số chân trong mã của bạn khớp với các chân bạn thực sự đã sử dụng.
Một mẹo hữu ích từ video: điện trở có thể đặt ở hai bên của LED. Bạn có thể đặt nó giữa chân Arduino và cực dương của LED, hoặc giữa cực âm của LED và chân nối đất — về mặt điện thì như nhau (trong video tại 51:52).
Giải thích mã
Chương trình đầy đủ có sẵn bên dưới bài viết. Ở đây chúng ta sẽ tập trung vào những phần bạn muốn tùy chỉnh.
Ở đầu sketch, ba định nghĩa chân ánh xạ mỗi LED tới một chân kỹ thuật số. Nếu bạn đã nối LED của mình tới các chân khác, hãy thay đổi các giá trị này:
const int greenLED = 4;
const int yellowLED = 3;
const int redLED = 2;
Tiếp theo là các hằng số thời gian. Chúng điều khiển thời gian mỗi đèn sáng, tính bằng mili giây. Video sử dụng mặc định 5000 ms cho xanh lá, 1000 ms cho vàng, và 5000 ms cho đỏ — nhưng trong phần demo, các giá trị này đã được đổi thành 3 s / 1 s / 3 s, và sau đó thành 10 s / 3 s / 10 s (trong video tại 56:27):
const int greenOnTime = 5000;
const int yellowOnTime = 1000;
const int redOnTime = 5000;
Để thay đổi nhịp điệu của đèn giao thông, chỉ cần sửa ba giá trị này. Muốn một giao lộ chậm, thực tế? Hãy thử 10000, 3000, 10000. Muốn demo nhanh? Hãy thử 1000, 300, 1000.
Bên trong loop(), trình tự rất đơn giản: bật xanh lá, chờ, tắt xanh lá; bật vàng, chờ, tắt vàng; bật đỏ, chờ, tắt đỏ; rồi lặp lại về xanh lá. Màn hình nối tiếp in mỗi lần thay đổi trạng thái để bạn có thể xác minh thời gian khớp với điều bạn mong đợi.
Trình diễn trực tiếp
Sau khi mã được tải lên, Arduino tự chạy chu trình. Trong video, đèn LED xanh lá sáng trước, sau khoảng thời gian của nó thì đèn vàng sáng lên trong chốc lát, rồi đến đèn đỏ, và chu trình bắt đầu lại ngay lập tức (trong video tại 55:20).
Màn hình nối tiếp phản ánh điều này bằng văn bản — "green LED on", "green off", "yellow on", v.v. — đây là cách tuyệt vời để xác nhận các giá trị thời gian của bạn đang hoạt động như mong muốn. Khi bạn sẵn sàng chạy nó không dây, hãy ngắt kết nối USB và kết nối pin lithium-ion hoặc bộ chuyển đổi 5 V; Arduino sẽ tiếp tục chạy chu trình mà không cần máy tính (trong video tại 56:11).
Các dự án liên quan từ video này
- Bài 98-1: Cách Bật và Tắt một LED với Arduino
- Bài 98-2: Cách Bật và Tắt một LED Sử dụng Nút Nhấn với Arduino
- Bài 98-3: Cách Bật/Tắt một LED Toggle Sử dụng Nút Nhấn với Arduino
- Bài 98-4: Làm Mờ Đèn LED Sử dụng Arduino: Điều Khiển Độ Sáng
- Bài 98-5: Làm Mờ Đèn Khi Nút Được Nhấn Sử dụng Arduino
- Bài 98-6: Trò Chơi LED Bập Bênh với Arduino
- Bài 98-7: Đèn Chạy Sử dụng Arduino và 5 LED
- Bài 98-8: Đèn Chạy với Nút Nhấn và LED với Arduino
- Bài 98-9: Đồng Hồ Đo Mức Điện Áp LED Sử dụng Arduino hoặc đèn chạy với biến trở
Các chương
- [00:00] Tổng quan về 10 dự án LED Arduino
- [01:22] Giới thiệu về khóa học Arduino từng bước
- [02:29] LED là gì: ký hiệu, cực dương và cực âm
- [03:49] Tính toán điện trở hạn dòng cho LED
- [49:25] Giới thiệu về dự án đèn giao thông
- [49:44] Giải thích thời gian đèn giao thông
- [50:34] Sơ đồ nối dây cho đèn giao thông
- [52:13] Giải thích mã cho đèn giao thông
- [54:32] Trình diễn trực tiếp với màn hình nối tiếp
- [55:30] Thay đổi các giá trị thời gian
- [56:11] Chạy đèn giao thông bằng nguồn pin
This code has not been parsed yet. Please return to the admin panel to parse it.
Nghĩ bạn có thể cần
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Tài nguyên & tài liệu tham khảo
-
Tài liệuDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Bên ngoài
-
Bên ngoài
-
Bên ngoài
Tập tin📁
Thư viện Arduino (tệp nén)
-
Mã nguồn bộ kit học xe thông minh 3-trong-1 của SunFounder
3in1-kit-main-v2.zip12.80 MB
Hướng dẫn Sử dụng
-
Hướng dẫn lắp ráp xe thông minh SunFounder 3-in-1 ArduinoTài liệu này hướng dẫn từng bước lắp ráp xe thông minh SunFounder 3-in-1 Arduino
SunFounder_car_assembly_manual.pdf1.20 MB