BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH BÁO CÁO TÊN MÔN HỌC: VI ĐIỀU KHIỂN TÊN CHỦ ĐỀ: THIẾT KẾ HỆ THỐNG ĐÈN GIAO THÔNG CÓ ĐẾM GIÂY DÙNG ARDUINO KHOA/ VIỆN: Viện k
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH
BÁO CÁO
TÊN MÔN HỌC: VI ĐIỀU KHIỂN
TÊN CHỦ ĐỀ: THIẾT KẾ HỆ THỐNG ĐÈN GIAO THÔNG
CÓ ĐẾM GIÂY DÙNG ARDUINO
KHOA/ VIỆN: Viện kỹ thuật HUTECH
GIẢNG VIÊN HƯỚNG DẪN: Trần Duy Cường
Tp HCM, ngày 01 tháng 11 năm 2024
Sinh viên thực hiện
Nguyễn Nhật Anh
MSSV
2282500036
Lớp
22DOTC1
Trang 2VIỆN KỸ THUẬT HUTECH
PHIẾU GIAO ĐỀ TÀI TÊN MÔN HỌC: VI ĐIỀU KHIỂN NGÀNH: CÔNG NGHỆ KỸ THUẬT Ô TÔ
1 Họ và tên sinh viên/ nhóm sinh viên được giao đề tài (sĩ số 01):
(1) Nguyễn Nhật Anh 2282500036 22DOTC1
2 Tên đề tài: Thiết kế hệ thống đèn giao thông có đếm giây dùng Arduino
3 Các dữ liệu ban đầu:
- Thiết kế hệ thống đèn giao thông trên phần mềm Wokwi.
- Dùng Arduino để thiết kế mạch có: LED đơn, LED 7 đoạn, điện trở, nút nhấn.
- Viết code trên phần mềm Wokwi.
4 Nội dung nhiệm vụ:
a) (CLO1) Thiết kế sơ đồ mạch.
b) (CLO2) Vẽ sơ đồ khối hệ thống.
c) (CLO3) Nêu nguyên lý hoạt động của hệ thống.
d) (CLO4) Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
5 Kết quả tối thiểu phải có:
- File mô phỏng mạch.
- Cuốn báo cáo đề tài.
Trang 3Ngày giao đề tài: 17/10/2024 Ngày nộp đề tài: 01/11/2024
Sinh viên thực hiện
(Ký và ghi rõ họ tên)
Nguyễn Nhật Anh
Tp HCM, ngày 01 tháng 11 năm 2024
Giảng viên hướng dẫn
(Ký và ghi rõ họ tên)
Trần Duy Cường
Trang 4VIỆN KỸ THUẬT HUTECH
PHIẾU CHẤM ĐIỂM HỌC PHẦN VI ĐIỀU KHIỂN
1 Họ và tên sinh viên:
Họ và tên
Nguyễn Nhật Anh
MSSV
2282500036
Lớp
22DOTC1
Ngành: Công nghệ Kỹ thuật Ô tô
2 Họ và tên giảng viên hướng dẫn (GVHD): Trần Duy Cường
3 Họ và tên giảng viên phản biện (GVPB):………
4 Đánh giá kết quả theo thang điểm 10 (Ghi rõ điểm số và điểm chữ):…………
….………
CĐR
Tiêu chí
đánh giá
(trọng số)
Mức F (0-3.9)
Mức D (4.0-5.4)
Mức C (5.5-6.9)
Mức B (7.0-8.4)
Mức A (8.5-10)
GVH D (50%)
GVPB (50%)
CLO5 Hình thức – nội
dung báo cáo
(10%)
Mắc trên 20 lỗi chính tả, ngữ pháp và định dạng văn bản
Không chú thích hình ảnh, bảng biểu, đồ thị, biểu đồ
Không tuân thủ quy định về bố cục
Mắc trên 20 lỗi chính tả, ngữ pháp và định dạng văn bản
Nhưng không biết cách sử dụng văn phong khoa học Chú thích hình ảnh, bảng biểu, đồ thị, biểu đồ chưa đầy
đủ, chưa đúng quy định
Mắc 10-20 lỗi chính tả, ngữ pháp và định dạng văn bản nhưng không biết cách sử dụng văn phong khoa học Chú thích hình ảnh, bảng biểu, đồ thị, biểu đồ chưa đầy
đủ, chưa đúng quy định
Mắc dưới
10 lỗi chính
tả, ngữ pháp
và định dạng văn bản, sử dụng hợp lý văn phong khoa học nhưng còn lỗi trong việc sử dụng thuật ngữ chuyên ngành Chú thích hình ảnh, bảng biểu, đồ thị, biểu đồ đầy
đủ nhưng chưa đúng
Hầu như không mắc lỗi chính tả, ngữ pháp và định dạng văn bản sử dụng hợp lý văn phong khoa học và thuật ngữ chuyên ngành Chú thích hình ảnh, bảng biểu, đồ thị, biểu đồ đúng quy định
Trình bày đúng bố
Trang 5Có tuân thủ quy định về
bố cục nhưng nội dung của từng phần được sắp xếp logic
Trình bày đúng bố cục nhưng nội dung của từng phần được sắp xếp chưa hợp lý
quy định
Trình bày đúng bố cục phần lớn nội dung các phần rõ ràng
và hợp lý
cục, nội dung tất cả các phần rõ ràng, hợp
lý, chi tiết
CLO7
Nội dung báo
cáo
(10%)
Đáp ứng dưới 30% yêu cầu
Đáp ứng 30%
- dưới 50%
yêu cầu
Đáp ứng 50%
- dưới 70%
yêu cầu
Đáp ứng 70% - dưới 80% yêu cầu
Đáp ứng 80%
- 100% yêu cầu
CLO4
Trả lời câu hỏi
và trao đổi
trong phần thảo
luận
(25%)
Không trả lời đúng câu hỏi nào
Trả lời đúng dưới 1/2 số câu hỏi
Trả lời đúng 1/2 số câu hỏi
Trả lời đúng trên 2/3 số câu hỏi
Trả lời đúng tất cả các câu hỏi
CLO6
Trình bày
nguyên lý hoạt
động của hệ
thống
(10%)
Đáp ứng dưới 30% yêu cầu
Đáp ứng 30%
- dưới 50%
yêu cầu
Đáp ứng 50%
- dưới 70%
yêu cầu
Đáp ứng 70%
- dưới 80%
yêu cầu
Đáp ứng 80%
- 100% yêu cầu
CLO1
Lựa chọn vi
điều khiển phù
hợp (10%)
Đáp ứng dưới 30% yêu cầu
Đáp ứng 30%
- dưới 50%
yêu cầu
Đáp ứng 50%
- dưới 70%
yêu cầu
Đáp ứng 70%
- dưới 80%
yêu cầu
Đáp ứng 80%
- 100% yêu cầu CLO2
Viết chương
trình điều khiển
(20%)
Đáp ứng dưới 30% yêu cầu
Đáp ứng 30%
- dưới 50%
yêu cầu
Đáp ứng 50%
- dưới 70%
yêu cầu
Đáp ứng 70%
- dưới 80%
yêu cầu
Đáp ứng 80%
- 100% yêu cầu
CLO3
Thiết kế phần
cứng hệ thống
(15%)
Tính toán thiết kế không chính xác
Tính toán thiết kế chưa chặt chẽ và đầy đủ
Tính toán thiết kế chặt chẽ và đầy
đủ, có phân tích, giải thích được ý nghĩa, kết luận nhưng chưa chặt chẽ
Tính toán thiết kế chặt chẽ và đầy đủ; có phân tích, giải thích được ý nghĩa kết quả,
mô phỏng chưa chi tiết, kết luận khá chặt chẽ
Tính toán thiết kế chính xác hoàn toàn, phân tích, giải thích được ý nghĩa kết quả,
mô phỏng chi tiết và sâu sắc, kết luận chặt chẽ
TỔNG CỘNG:
Trang 6ĐIỂM TRUNG BÌNH
Tp HCM, ngày 01 tháng 11 năm 2024
Giảng viên hướng dẫn
(Ký và ghi rõ họ tên)
Tp HCM, ngày 01 tháng 11 năm 2024
Giảng viên phản biện
(Ký và ghi rõ họ tên)
Trang 7Mục Lục:
Mục Lục: 1
1 Lời cảm ơn : 2
2 Thiết kế sơ đồ mạch : 3
3 Vẽ sơ đồ khối của hệ thống: 3
4 Nêu nguyên lý hoạt động của hệ thống: 4
4 Vẽ lưu đồ giải thuật và viết chương trình điều khiển: 5
Trang 8LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành đến Thầy Trần Duy Cường, người đã nhiệt tình hướng dẫn và truyền đạt kiến thức quý báu về môn Vi Điều Khiển Nhờ vào sự tận tụy, kinh nghiệm và phương pháp giảng dạy sáng tạo của Thầy, em đã có cơ hội hiểu sâu hơn về các nguyên lý và ứng dụng của vi điều khiển trong thực tiễn.
Em cũng xin cảm ơn các bạn học trong lớp đã cùng nhau chia sẻ kiến thức, hỗ trợ
và cùng vượt qua những khó khăn trong suốt quá trình học tập Những buổi thảo luận
và làm bài tập nhóm đã giúp em mở rộng tư duy, tiếp thu nhiều kiến thức mới và kỹ năng thực hành cần thiết.
Em xin gửi lời cảm ơn đến gia đình, những người luôn ủng hộ và tạo điều kiện tốt nhất để em có thể tập trung học tập Em hy vọng rằng những kiến thức đã tích lũy trong môn Vi Điều Khiển sẽ là nền tảng vững chắc để em phát triển hơn trong tương lai.
Em xin chân thành cảm ơn Thầy Trần Duy Cường!
Trang 9A) Thiết kế sơ đồ mạch (CLO1)
Trang 10Mô phông sơ đồ mạch điện đèn giao thông bằng arduino
B) (CLO2) Vẽ sơ đồ khối hệ thống.
Mô tả sơ đồ khối của hệ thống
C) (CLO3) Nêu nguyên lý hoạt động của hệ thống.
Đèn giao thông Arduino với nút nhấn và LED 7 đoạn có thể hoạt động như sau:
1 Các thành phần chính:
o Arduino: Là bộ vi điều khiển để điều khiển đèn LED, LED 7 đoạn và
nhận tín hiệu từ nút nhấn.
o LED: Bao gồm 3 đèn LED (đỏ, vàng, xanh) để hiển thị tín hiệu giao
thông.
o LED 7 đoạn: Hiển thị số giây đếm ngược cho các trạng thái.
o Nút nhấn: Được nối với Arduino để kích hoạt chế độ đèn đỏ và xanh
đứng yên
o Điện trở: Dùng để bảo vệ các LED khỏi cháy.
o Dây nối: Kết nối các thành phần với Arduino.
2 Nguyên lý hoạt động:
o Đèn giao thông bình thường:
Arduino sẽ điều khiển các đèn LED hoạt động theo chu kỳ đèn giao thông thông thường.
Ví dụ, đèn đỏ sáng 9 giây, đèn xanh sáng 9 giây, và đèn vàng sáng 5 giây.
Đồng thời, LED 7 đoạn sẽ đếm ngược thời gian tương ứng cho mỗi đèn để hiển thị số giây còn lại.
o Khi nhấn nút
Nguồn
led 7
nút nhấn
Trang 11 Khi giữ nút nhấn đỏ , Arduino sẽ kích hoạt chế độ dừng chuyển đèn sang đỏ trong một khoảng thời gian cố định.và khi giữ nút xanh tương tự
Trong thời gian này, LED 7 đoạn sẽ đứng yên và hiển thị 0 giây
Khi thả nút nhấn, đèn sẽ quay lại trạng thái giao thông bình thường.
D) (CLO4) Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
Nút nhấn
giũ nút đỏ, đèn đỏ sáng trong thời gian cố
định giữ nút xanh, đèn xanh sáng trong thời gian cố định
hoạt động
đèn đỏ, tắt các đèn khác đèn vàng, tắt các đèn khác đèn xanh, tắt các đèn khác
Bắt đầu
Khai báo chân led đơn và nút nhấn khai báo chân led 7 đoạn
Kết thúc
Trang 12Lưu đồ giải thuật
Chương trình điều khiển:
const int ledDo = 2
const int ledVang = 3
const int ledXanh = 4
const int nutNhanDo = 6
const int nutNhanXanh = 5
const int thoiGianDo = 9;
const int thoiGianVang = 5;
const int thoiGianXanh = 9;
const int ledA = 7;
const int ledB = 8;
const int ledC = 9;
const int ledD = 10;
const int ledE = 11;
const int ledF = 12;
const int ledG = 13;
byte soLED[] = {
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111 // 9
};
void setup() {
pinMode(ledDo, OUTPUT);
pinMode(ledVang, OUTPUT);
pinMode(ledXanh, OUTPUT);
pinMode(ledA, OUTPUT);
Trang 13pinMode(ledB, OUTPUT);
pinMode(ledC, OUTPUT);
pinMode(ledD, OUTPUT);
pinMode(ledE, OUTPUT);
pinMode(ledF, OUTPUT);
pinMode(ledG, OUTPUT);
// Thiết lập chân của các nút nhấn là INPUT_PULLUP
pinMode(nutNhanDo, INPUT_PULLUP);
pinMode(nutNhanXanh, INPUT_PULLUP);
}
// Hàm hiển thị số trên LED 7 đoạn
void hienThiSo(int so) {
byte maLed = soLED[so];
digitalWrite(ledA, bitRead(maLed, 0));
digitalWrite(ledB, bitRead(maLed, 1));
digitalWrite(ledC, bitRead(maLed, 2));
digitalWrite(ledD, bitRead(maLed, 3));
digitalWrite(ledE, bitRead(maLed, 4));
digitalWrite(ledF, bitRead(maLed, 5));
digitalWrite(ledG, bitRead(maLed, 6));
}
void loop() {
// Kiểm tra nếu nút nhấn đèn đỏ được bấm
if (digitalRead(nutNhanDo) == LOW) {
// Bật đèn Đỏ và tắt các đèn khác
digitalWrite(ledDo, HIGH);
digitalWrite(ledVang, LOW);
digitalWrite(ledXanh, LOW);
hienThiSo(0);
delay(500);
}
// Kiểm tra nếu nút nhấn đèn xanh được bấm
else if (digitalRead(nutNhanXanh) == LOW) {
// Bật đèn Xanh và tắt các đèn khác
digitalWrite(ledDo, LOW);
digitalWrite(ledVang, LOW);
digitalWrite(ledXanh, HIGH);
hienThiSo(0);
delay(500);
} else {
// Điều khiển đèn giao thông bình thường với kiểm tra ngắt // Đèn Đỏ
digitalWrite(ledDo, HIGH);
digitalWrite(ledVang, LOW);
digitalWrite(ledXanh, LOW);
for (int i = thoiGianDo; i >= 0; i ) {
Trang 14if (digitalRead(nutNhanDo) == LOW || digitalRead(nutNhanXanh) ==
LOW) break;
hienThiSo(i);
delay(1000);
}
// Đèn Vàng
digitalWrite(ledDo, LOW);
digitalWrite(ledVang, HIGH);
digitalWrite(ledXanh, LOW);
for (int i = thoiGianVang; i >= 0; i ) {
if (digitalRead(nutNhanDo) == LOW || digitalRead(nutNhanXanh) ==
LOW) break;
hienThiSo(i);
delay(1000);
}
// Đèn Xanh
digitalWrite(ledDo, LOW);
digitalWrite(ledVang, LOW);
digitalWrite(ledXanh, HIGH);
for (int i = thoiGianXanh; i >= 0; i ) {
if (digitalRead(nutNhanDo) == LOW || digitalRead(nutNhanXanh) ==
LOW) break;
hienThiSo(i);
delay(1000);
}
}