Tải bản đầy đủ (.docx) (22 trang)

Báo cáo đèn giao thông ở ngã tư

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.49 MB, 22 trang )

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CƠNG NGHỆ THƠNG TIN

BÀI BÁO CÁO
MƠN HỌC : LẬP TRÌNH HỆ THỐNG NHÚNG

Đề tài : MẠCH ĐÈN GIAO THÔNG

Họ và tên sinh viên

: Hồng Việt Ngun (Nhóm trưởng)
Nguyễn Anh Tú
Lý Văn Hiếu
Đỗ Đức Long
Nguyễn Xuân Tùng

Lớp

: ĐH11C3

Tên học phần

: Lập trình hệ thống nhúng

Giảng viên hướng dẫn : Trần Cảnh Dương

Hà Nội - 2023


LỜI MỞ ĐẦU
Sống trong những năm của “ Cuộc cách mạng công nghiệp 4.0” , rất nhiều công


nghệ mới được phát triển mạnh mẽ . Chúng ta càng thấy được sức mạnh từ những
bộ xử lí , nó là đầu não , là trái tim của mọi mọi cỗ máy trong cuộc cách mạng 4.0.
Các vi xử lí ngày càng được trang bị , tích hợp nhiều tính năng , và đặc biệt ngày
càng nhỏ gọn. Các vị được xử lí để hồn thiện để sử dụng rộng rãi trong công công
nghiệp , khoa học kĩ thuật , khoa học , sinh học ,…
Để tìm hiểu, học tập về vi xử lí, đưa các tính năng của vi xử lí vào cuộc sống ,
nhóm em quyết định tìm hiểu về vi xử lý ATMEGA 328P do hãng Atmel sản
xuất .
Với đề tài tìm hiểu : “ Đèn tín hiệu giao thơng tại ngã tư sử dụng vi xử lí Atmega
328P ” . Với mơ hình một ngã tư, nhóm em hướng đến hiểu được cách thức hoạt
dộng của vi xử lí ATmega 328P, xây dựng một mạch điện đầu tiên trong ngành
điện tử của mình .Bước đầu đến với thế giới vi điều khiển để phát triển sau này .
NỘI DUNG
I. Tổng quan về bài tập
1. Yêu cầu
Thiết kế mạch điều khiển đèn tín hiệu giao thơng tại ngã tư sử dụng vi xử lý
AtMEGA 328P
Mạch sử dụng cho ngã tư giao thơng có mật độ phương tiện qua lại lớn . Giúp điều
tiết giao thông và giảm ùn tắc , tai nạn giao thông …


 Thiết kế mạch phải đảm bảo độ an toàn cho người và phương tiện tham gia
giao thông .
 Sử dụng các linh kiện điện tử chất lượng cao , đảm bảo độ bền và ổn định
cho mạch .
 Thiết kế mạch phải đảm bảo tính hiệu quả và tiết kiệm năng lượng .
 Thực hiện việc lập trình và kiểm tra mạch đảm bảo hoạt động chính xác và
đáp ứng các yêu cầu cần thiết .
 Đảm bảo đúng các quy định về mạch điện và an toàn lao động .
 Thiết kế mạch phải đảm bảo tính tiện dụng trong việc sửa chữa và bảo trì .

 Kiểm tra kỹ trước khi đưa vào sử dụng để đảm bảo tính tin cậy của mạch .
II. Tổng quan board Arduino , IC dịch 74HC595 , Led 7 đoạn và 1 số linh
kiện khác
1. Board Arduino uno R3
1.1 Giới thiệu về Arduino
 Arduino là một nền tảng phát triển phần cứng và phần mềm mã nguồn mở
được sử dụng rộng rãi trong việc xây dựng các dự án điện tử và dự án IoT
(Internet of Things). Nền tảng này cung cấp một mơi trường lập trình và một
loạt các bo mạch (boards) nhỏ gọn được thiết kế để dễ dàng lập trình và điều
khiển các thiết bị và cảm biến khác nhau.
 Dưới đây là một số thông tin cơ bản về Arduino:
 Boards Arduino: Có nhiều loại board Arduino khác nhau, như Arduino Uno,
Arduino Nano, Arduino Mega, và nhiều loại board khác. Mỗi loại board có
đặc điểm riêng, như kích thước, số lượng chân, và khả năng xử lý khác
nhau.


 Các thư viện (Libraries): Arduino có một cộng đồng lớn và đa dạng các thư
viện, giúp bạn dễ dàng sử dụng các chức năng phổ biến như đọc cảm biến,
điều khiển động cơ, và giao tiếp với các thiết bị khác.
 Sử dụng trong dự án DIY và IoT**: Arduino thường được sử dụng trong các
dự án tự làm (DIY) và các ứng dụng IoT. Bạn có thể sử dụng Arduino để
xây dựng các thiết bị như đèn LED thông minh, hệ thống giám sát môi
trường, robot, và nhiều ứng dụng khác.
 Mạng cộng đồng rộng lớn: Cộng đồng Arduino rất mạnh mẽ, với hàng ngàn
dự án và tài liệu trực tuyến. Điều này giúp người dùng có thể tìm hiểu và
chia sẻ kiến thức dễ dàng.
 Mã nguồn mở: Arduino là mã nguồn mở, có nghĩa là bạn có quyền truy cập
và sửa đổi mã nguồn của nó theo nhu cầu của bạn.
 Arduino đã đóng góp rất nhiều cho việc phổ cập kiến thức về lập trình và

điện tử, đặc biệt là trong lĩnh vực của IoT, và đã trở thành một công cụ quan
trọng trong thế giới của các nhà phát triển và những người đam mê cơng
nghệ.

Hình 1.1 Arduino
1.2 Phần cứng cơ bản và ngoại vi trên Arduino

 Phần cứng cơ bản và các module ngoại vi quan trọng trên Arduino bao gồm:


 Vi điều khiển (Microcontroller): Arduino được trang bị một vi điều khiển
(microcontroller) để thực hiện các chương trình và nhiệm vụ điều khiển. Các
phiên bản Arduino thường sử dụng các vi điều khiển ATmega của hãng
Atmel (hiện nay là Microchip Technology).
 Nguồn cung cấp: Arduino có một kết nối nguồn dự phịng (USB hoặc DC)
và có thể được cấp nguồn bằng nguồn DC hoặc thông qua cổng USB.
 Nút nhấn (Push Buttons): Một số phiên bản Arduino có các nút nhấn để thực
hiện các chức năng như nạp chương trình hoặc khởi động lại vi điều khiển.
 Đèn LED: Arduino thường đi kèm với các đèn LED để làm sáng hoặc làm
mờ tùy thuộc vào chương trình hoặc dữ liệu đầu vào.
 Chân kết nối (Pin Headers): Arduino có nhiều chân kết nối dùng để kết nối
các cảm biến, module ngoại vi và các linh kiện điện tử khác.
 Cổng nạp chương trình (Programming Port): Cổng USB để nạp chương trình
vào Arduino thơng qua một cáp USB.
 Các module ngoại vi phổ biến được sử dụng với Arduino bao gồm:
 Cảm biến: Arduino có thể kết nối với nhiều loại cảm biến như cảm biến ánh
sáng, cảm biến nhiệt độ, cảm biến gia tố, cảm biến màu sắc, cảm biến
khoảng cách và nhiều cảm biến khác để thu thập dữ liệu từ mơi trường.
 Màn hình: Arduino có thể được kết nối với màn hình LCD, LED hoặc
OLED để hiển thị thơng tin hoặc kết quả của chương trình.

 Mơ-đun khơng dây: Arduino có thể sử dụng mơ-đun khơng dây như
Bluetooth, Wi-Fi, LoRa để kết nối và giao tiếp không dây với các thiết bị
khác hoặc mạng.


 Servo Motor và Motor Driver: Để điều khiển động cơ và servo motor, bạn
có thể sử dụng các module ngoại vi như L298N Motor Driver hoặc các servo
motor.
 Shield: Các shield là các module mở rộng cho Arduino, cung cấp các tính
năng bổ sung như điều khiển động cơ, kết nối Ethernet, và giao tiếp không
dây.
1.3 Công cụ phát triển cho Arduino
 Để phát triển và lập trình cho các board Arduino, chúng ta cần sử dụng một
số công cụ phát triển phổ biến sau:
 Arduino IDE (Integrated Development Environment) : Arduino IDE
là một ứng dụng phát triển miễn phí và mã nguồn mở được thiết kế
đặc biệt cho lập trình và nạp chương trình cho các board Arduino.
 Nó cung cấp một giao diện đồ họa thân thiện với người dùng cho việc viết
mã và nạp chương trình lên board.
 Arduino IDE được hỗ trợ trên nhiều hệ điều hành như Windows, macOS và
Linux.
 PlatformIO: PlatformIO là một mơi trường phát triển tích hợp (IDE)
được sử dụng để lập trình cho nhiều loại vi điều khiển nhúng, bao
gồm Arduino.
 Nó cung cấp một loạt tính năng mạnh mẽ cho việc phát triển và quản lý dự
án, bao gồm hỗ trợ cho nhiều board Arduino khác nhau.
 PlatformIO có phiên bản cài đặt trên nhiều nền tảng, bao gồm Visual Studio
Code và Atom.



 Visual Studio Code (VSCode): VSCode là một trình soạn thảo mã
nguồn mở mạnh mẽ và linh hoạt, có thể mở rộng thơng qua các tiện
ích mở rộng.
 Bạn có thể cài đặt các tiện ích mở rộng cho Arduino phát triển trong
VSCode, và kết hợp nó với PlatformIO để tạo môi trường phát triển
Arduino mạnh mẽ.
 Energia: Energia là một môi trường phát triển được phát triển đặc biệt
cho lập trình các board mbed và LaunchPad của Texas Instruments,
nhưng cũng hỗ trợ một số board Arduino.
 Nó sử dụng ngơn ngữ lập trình Wiring, giống với Arduino, và có một
IDE dựa trên Eclipse.
 MPLAB X IDE (cho Arduino 101): MPLAB X IDE là một IDE phát
triển bởi Microchip Technology, sử dụng cho lập trình board Arduino
101, một board phát triển dựa trên nền tảng Intel Curie.
 Dựa vào sở thích và nhu cầu của bạn, bạn có thể chọn một trong các cơng cụ
phát triển này để lập trình và phát triển cho board Arduino. Arduino IDE là
công cụ phổ biến và thích hợp cho người mới bắt đầu, trong khi PlatformIO
cung cấp một sự mạnh mẽ và linh hoạt hơn cho các dự án phức tạp.


Hình 1.2 Phần mềm Arduino

2. IC ghi dịch 74HC595
2.1 Cấu tạo , đặc tính kỹ thuật IC 74HC595
 IC 74HC595 là một loại IC (Integrated Circuit) được sử dụng rộng rãi trong
điện tử và kỹ thuật số để mở rộng số lượng đầu ra GPIO (General Purpose
Input/Output) của một vi điều khiển (microcontroller) hoặc một vi mạch
điện tử. Nó là một loại IC dựa trên công nghệ CMOS (Complementary
Metal-Oxide-Semiconductor) và thuộc họ IC 74HC, một phân loại thường
được sử dụng trong ứng dụng kỹ thuật số.

 Cấu tạo:
 IC 74HC595 có 16 chân kết nối, trong đó một số chân quan trọng bao
gồm:
 Chân VCC (Power Supply): Cung cấp điện áp cung cấp cho IC (thường
5V).
 Chân GND (Ground): Kết nối đất.


 Chân SER (Serial Data Input): Dữ liệu đầu vào từ vi điều khiển.
 Chân SRCLK (Shift Register Clock): Clock cho việc dịch chuyển dữ liệu
vào bộ đăng ký.
 Chân RCLK (Register Clock): Clock để lưu trữ dữ liệu từ bộ dịch vào bộ
đăng ký.
 Chân SRCLR (Serial Data Clear): Đặt mức Logic LOW để xóa dữ liệu
trong bộ dịch.
 Chân QA đến QH': 8 chân đầu ra được kết nối đến các thiết bị ngoại vi
hoặc hiển thị đèn LED.
 Đặc tính kỹ thuật (thơng số quan trọng có thể thay đổi theo phiên bản cụ
thể):
 Điện áp cung cấp (VCC): Thường là 2V - 6V, phổ biến nhất là 5V.
 Số lượng đầu vào (SER) và đầu ra (QA đến QH'): Mỗi IC 74HC595
có 1 chân đầu vào và 8 chân đầu ra.
 Tốc độ hoạt động (clock frequency): Thường là tối đa 20 MHz.
 Dòng tiêu thụ thấp: Rất thấp, điều này làm cho nó phù hợp cho ứng
dụng di động và tiết kiệm năng lượng.


Hình 1.3 Sơ đồ chân của IC 74HC595
2.2 Nguyên lý hoạt động của IC ghi dịch 74HC595
 Nguyên lý hoạt động của IC ghi dịch 74HC595 như sau:

 Đầu vào dữ liệu (serial input): IC 74HC595 có một đầu vào dữ liệu (SER) để
nhận dữ liệu từ nguồn dữ liệu ngoại, chẳng hạn như một vi điều khiển hoặc
mạch điều khiển.
 Đầu ra dữ liệu tuần tự (serial output): IC cũng có một đầu ra dữ liệu tuần tự
(Q7') để kết nối với IC khác trong chuỗi. Dữ liệu từ nguồn gốc (SER) sẽ
được dịch chuyển qua các IC ghi dịch khác thông qua chuỗi này.
 Điều khiển dữ liệu: Dữ liệu từ nguồn gốc được đưa vào IC 74HC595 thơng
qua đầu vào SER. Sau đó, dữ liệu này được dịch chuyển từ bit thấp đến bit


cao thông qua một dãy cung cấp xung clock (SH_CP) và xung trình lên
(ST_CP).
 Lưu trữ dữ liệu: Dữ liệu được dịch chuyển vào các thanh ghi trong IC và lưu
trữ tại các đầu ra của nó. IC 74HC595 có tám thanh ghi lưu trữ dữ liệu. Sau
khi dữ liệu đã được dịch chuyển vào thanh ghi cuối cùng, nó sẽ xuất hiện tại
các đầu ra của IC và có thể được sử dụng để điều khiển các thiết bị ngoại vi,
chẳng hạn như đèn LED hoặc màn hình 7 đoạn.
 Xung clock (SH_CP) và xung trình lên (ST_CP): Xung clock được cung cấp
qua SH_CP để dịch chuyển dữ liệu từ bit thấp đến bit cao. Xung trình lên
(ST_CP) được sử dụng để chuyển dữ liệu từ các thanh ghi tạm thời vào các
thanh ghi lưu trữ.
3. Các linh kiện khác
3.1 Modum led 7 đoạn hàn sẵn IC74HC595
 Mô tả
 Dễ dàng điều khiển và hiển thị thông tin lên 8 led 7 đoạn chỉ với 3 chân giao
tiếp thông qua IC ghi dịch 74HC595, ngồi ra mạch cịn có khả năng mở
rộng thêm các led tiếp theo qua cổng đầu ra nối tiếp, mạch có bộ thư viện đi
kèm dễ sử dụng phù hợp cho các ứng dụng: bộ đếm, đồng hồ,...
 Thông Số Kỹ Thuật
- Điện áp: 3 - 6VDC

- Dòng điện tiêu thụ: 50mA
- Sử dụng 2 led 7 đoạn: 0.56inch
- IC ghi dịch: 74HC595 x2


- Kích thước: 25 x 38mm

Hình 1.4 Led 7 đoạn giao tiếp IC 74HC595
3.2 Mạch Led Đèn Giao Thông Mô Hình 5V
3.2.1 Mơ tả mạch
 Mạch đèn giao thơng 5V sử dụng Arduino để điều khiển LED 7 đoạn thông
qua IC 74HC595. Mạch này có thể được cài đặt để mô phỏng đèn giao thông
với các chế độ khác nhau như đèn đỏ, đèn xanh và đèn vàng.
3.2.2 Cách thức hoạt động
 Arduino gửi dữ liệu thông qua IC 74HC595 để điều khiển các LED 7 đoạn
tương ứng.
 Dữ liệu được gửi từ Arduino đến IC 74HC595 dưới dạng số nhị phân, xác
định trạng thái sáng hoặc tắt của từng đèn LED 7 đoạn.
 IC 74HC595 sau đó điều khiển các LED 7 đoạn để hiển thị các ký tự tương
ứng, tạo ra hiển thị giống như đèn giao thông thực tế.
3.2.3 Thơng số kỹ thuật
 Kích thước: 56 * 21 * 11mm


 Màu sắc: đỏ, vàng, xanh
 LED: 3 led đục - đường kính bóng led 8mm Điện áp: 5V Trọng lượng: 25
gram
 4 Chân nối: GND Red Yellow Green

Hình 1.5 Modum Đèn Giao Thông

3.3 Breadboard
3.3.1 Giới thiệu về Breadboard
 Breadboard (hay cịn gọi là test board) là cơng cụ được sử dụng rất
nhiều để thiết kế và thử nghiệm mạch.
3.3.2 Cấu tạo của Breadboard
 Khu vực trung tâm chính của breadboard là một khối gồm hai cột.
 Mỗi cột được tạo thành từ nhiều hàng.
 Mỗi hàng được nối điện theo từng hàng.


 Dọc hai bên là hai bus dọc để cấp điện vào cột bên trong.

Hình 1.6 Breadboard

III. Thiết kế mạch và quá trình thực hiện
1. Cấu trúc và chi tiết về cách hệ thống hoạt động được thiết kế.
 Hệ thống đèn giao thông tại ngã tư này gồm :
 Thời gian sáng của các đèn Tđỏ= 17+3 giây, Tvàng = 03 giây, Txanh = 17
giây.
 Hiến thị thời gian đếm ngược bằng led 7 đoạn .
 Gồm 3 đèn tín hiệu Xanh, Đỏ , Vàng .


 Chỉ hoạt động ở một chế độ.
 Khơng có chế độ phân làn xe ở các thời điểm.
 Với các phương pháp đã nêu ở trên ở đây chúng em lựa chọn giải pháp điều
khiển bằng vi điều khiển bởi đây là phương pháp phù hợp và tối ưu nhất với
đề tài.
 Thiết kế hệ thống điều khiến đèn giao thông tại ngã tư dùng vi điều khiển
gồm:

4 cột đèn, có đèn tín hiệu phân luồng rẽ trái trước.
 Hiển thị thời gian đếm lùi trên led 7 thanh ở vị trí lưng trừng cột và trên
đỉnh của cột đèn.

Hình 1.7 Hệ thống đèn giao thơng
 Chu kỳ đèn tín hiệu T= Tđ0+ T0x + Tv
 Trong đó :
 Tđ: Là thời gian đèn đỏ sáng.
 Tx: Làthời gian đèn xanh sáng.
 Tx: Là thời gian đèn vàng sáng.


 Tđ=Tx + V
2. Nguyên lí hoạt động
 Xử lý lệnh đèn đỏ:
 Khi một chiều đường chính được đèn đỏ, tất cả phương tiện trên chiều đó
phải dừng lại.
 Xử lý lệnh đèn xanh:
 Khi đèn xanh của chiều đường chính được bật, phương tiện trên chiều đó
được phép di chuyển và đi qua ngã tư.
 Xử lý lệnh đèn vàng:
 Đèn vàng thường được bật để cảnh báo phương tiện trước khi đèn đỏ của
chiều đường chính được bật. Khi đèn vàng sáng, phương tiện trên chiều
đường chính nên chậm lại chuẩn bị dừng.
 Chuyển trạng thái và lặp lại quy trình:
 Khi đèn xanh của chiều đường phụ được bật, thì đèn đỏ của chiều đường
chính được bật. Quy trình này liên tục lặp lại để điều khiển luân phiên di
chuyển của các phương tiện tại ngã tư.
 Quy trình này giúp tạo ra sự an tồn và thơng thống trong việc quản lý việc
đi lại của phương tiện tại ngã tư. Quyết định nào bật đèn nào, bật trong bao

lâu, và thứ tự luân phiên dựa vào hệ thống đèn giao thơng và tín hiệu điều
khiển phía sau mạch đèn giao thơng, thường được lập trình cẩn thận để đảm
bảo hiệu suất và an toàn giao thông tốt nhất.
3. Bảng đấu nối các mạch
3.1 Led 7 đoạn với Arduino


VCC

5V

GND

GND

SDI

Chân số 2 trên Arduino

SCLK

Chân số 3 trên Arduino

LOAD

Chân số 4 trên Arduino

3.2 Mạch đèn giao thông 5V với Arduino
GND


GND

R1,R2

8 , 11

Y1,Y2

9 , 12

G1,G2

10 , 13


4. Sơ đồ mạch trên proteus và hình ảnh sản phẩm

Hình 1. Mơ phỏng trên peoteus


Hình 1. Mặt trước và mặt sau của sản phẩm


5. Code lập trình cho Arduino bằng phần mềm Arduino IDE



×