Tải bản đầy đủ (.pdf) (33 trang)

Thiết kế hệ thống đè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.27 MB, 33 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỂN THÔNG
----------

BÁO CÁO KĨ THUẬT VI XỬ LÝ
Đề tài: Thiết kế hệ thống đèn giao thông ngã tư
Giảng viên hướng

TS Nguyễn Hoàng Dũng

dẫn:
Nhóm sinh viên:

Lớp KSTN ĐTVT K61
Họ tên

MSSV

Đào Duy Hùng

20161923

Đỗ Quốc Hưng

20162007

Hà Nội, tháng 6 năm 2019
1



Lời nói đầu
Trong những năm gần đây, cùng với sự phát triển mạnh mẽ của ngành công
nghiệp chế tạo linh kiện bán dẫn và vi mạch tổng hợp, đã kéo theo sụ ra đời và phát triển
của kĩ thuật vi điều khiển. Với nhiều ưu điểm, kĩ thuật vi điều khiển đã được sử dụng
rộng rãi ở nhiều lĩnh vực khác nhau như: mạch điều khiển hệ thống đèn, mạch đếm sản
phẩm, mạch điều khiển các thiết bị điều khiển từ xa,… Bằng cách áp dụng kĩ thuật vi xử
lý vào trong quá trình sản xuất và vận hành, con người đã giải quyết và tạo ra được nhiều
ứng dụng sản phẩm hữu ích làm thay đổi cuộc sống.
Một trong những ứng dụng thiết thực nhất vi điều khiển chính là hệ thống điều
khiển đèn giao thông tại các ngã tư mà chúng ta vẫn thường thấy. Đối với hệ thống giao
thông của nước ta hiện nay, vấn đề an toàn và tránh ùn tắc tại các ngã tư là một vấn đề
nổi cộm và mang nhiều thách thức được toàn xã hội quan tâm. Vì vậy, con người và các
phương tiện hướng dẫn giao thông đều mang ý nghĩa vô cùng quan trọng. Hệ thống đèn
giao thông không chỉ giúp chỉ dẫn, phân luồng giao thông, mà còn giúp hạn chế những
xung đột xảy ra khi tham gia lưu thông trên các ngã tư, hạn chế ùn tắc. Do đó, cần thiết
phải thiết kế và cho ra đời những mạch điều khiển hệ thống đèn giao thông sao cho thông
minh, hiệu quả và dễ sử dụng. Cũng vì những lý do đó mà nhóm chúng em gồm 2 thành
viên là: Đào Duy Hùng, Đỗ Quốc Hưng đã chọn đề tài “xây dựng hệ thống đèn giao
thông sử dụng vi điều khiển Atmega328p để hoàn thành bài tập lớn cho bộ môn Kĩ thuật
vi xử lý của mình.
Báo cáo của nhóm được xây dựng theo sườn mô hình 9 bước thiết kế một sản
phẩm mạch điện tử, sẽ trình bày đầy đủ quá trình hình thành ý tưởng, nguyên lý hoạt
động, cho đến khi hoàn thiện sản phẩm. Sản phẩm và báo cáo của chúng em có thể còn
nhiều thiết sót, rất mong được thầy góp ý để chúng em có thể hoàn thiện hơn.
Chúng em chân thành cảm ơn thầy Nguyễn Hoàng Dũng đã tận tình chỉ bảo góp
ý, gợi ý giải pháp để nhóm có thể hoàn thành đề tài!

2



Mục lục
Lời nói đầu ....................................................................................................................... 2
Mục lục ............................................................................................................................. 3
Danh sách các bảng biểu .................................................................................................. 6
Chương 1. Mô tả kỹ thuật và xác lập kế hoạch ................................................................ 7
1.1. Tổng quan và xác định đề tài ................................................................................ 7
1.2. Mô tả kỹ thuật ....................................................................................................... 7
1.2.1. Yêu cầu chức năng ......................................................................................... 7
1.2.2. Yêu cầu phi chức năng ................................................................................... 8
1.3. Xác lập kế hoạch ................................................................................................... 8
1.3.1. Xác lập công việc và nhân lực ....................................................................... 8
1.3.2. Kế hoạch chung .............................................................................................. 8
1.3.3. Bảng nhân lực ................................................................................................ 9
1.3.4. Phân chia công việc........................................................................................ 9
Chương 2. Thiết kế kiến trúc ......................................................................................... 10
2.1. Sơ đồ khối ........................................................................................................... 10
2.2. Khối nguồn .......................................................................................................... 11
2.2.1. Giới thiệu 7805............................................................................................. 11
2.2.2. Sơ đồ nguyên lý............................................................................................ 11
2.3. Khối vi điều khiển ............................................................................................... 12
2.3.1. ATMEGA 328P ........................................................................................... 12
2.3.2. Sơ đồ nguyên lý khối xử lý. ......................................................................... 15
2.4. Khối nút điều khiển ............................................................................................. 16
3


2.5. Khối dịch bit ........................................................................................................ 16
2.6. Khối hiển thị ........................................................................................................ 19
Chương 3. Cấu trúc chương trình vi điều khiển............................................................. 21
3.1. Sơ đồ trạng thái ................................................................................................... 21

3.2. Chương trình xử lý tín hiệu từ khối nút điều khiển ............................................ 22
3.3. Chương trình truyền dữ liệu ra khối dịch bit ...................................................... 22
3.4. Chương trình quét led ......................................................................................... 23
3.5. Chương trình mô phỏng thời gian thực ............................................................... 23
Chương 4. Thử nghiệm và mô phỏng ............................................................................ 24
4.1. Mô phỏng proteus ............................................................................................... 24
4.2. Thử nghiệm trên bo trắng .................................................................................... 24
4.3. Vẽ mạch nguyên lí và PCB trên Altium Designer .............................................. 25
4.4. In mạch và hoàn thiện sản phẩm ......................................................................... 26
4.5. Nhận xét .............................................................................................................. 27
4.5.1. Ưu điểm ........................................................................................................ 27
4.5.2 Nhược điểm ................................................................................................... 27
Kết luận .......................................................................................................................... 28
Tài liệu tham khảo .......................................................................................................... 29
Phụ lục ............................................................................................................................ 30
Phụ lục 1: Code chương trình xử lý tín hiệu khối nút điều khiển .............................. 30
Phụ lục 2: Code chương trình truyền dữ liệu ra khối dịch bit.................................... 31
Phụ luc 3: Code chương trình quét led ....................................................................... 32
Phụ lục 4: Code chương trình mô phỏng thời gian thực ............................................ 33

4


Danh sách hình vẽ
Hình 2.1: Sơ đồ khối hệ thống đèn giao thông .............................................................. 10
Hình 2.2: Sơ đồ chân 7805 ............................................................................................. 11
Hình 2.3: Sơ đồ nguyên lý khối nguồn .......................................................................... 11
Hình 2.4: Atmega328 ..................................................................................................... 12
Hình 2.5: Bộ dao động thạch anh cấp tín hiệu dao động cho VĐK ............................... 13
Hình 2.6: Bộ reset bằng nút của vi điều khiển atmega328 ............................................ 14

Hình 2.7: Sơ đồ nguyên lý khối xử lý ............................................................................ 15
Hình 2.8: Tín hiệu vào ra khối vi xử lý .......................................................................... 15
Hình 2.9: Sơ đồ khối nút điều khiển .............................................................................. 16
Hình 2.10: IC 74HC595 ................................................................................................. 17
Hình 2.11: Sơ đồ nguyên lý IC74HC595 ....................................................................... 18
Hình 2.12: Sơ đồ chân led 7 thanh 2 chữ số catot chung ............................................... 19
Hình 2.13: Hiển thị số 1 trên led 7 thanh 2 chữ số ........................................................ 19
Hình 3.1: Sơ đồ chuyển trạng thái của chương trình ..................................................... 21
Hình 4.1: Mô phỏng sơ đồ nguyên lý mạch trên proteus 8.6 ......................................... 24
Hình 4.2: Mạch thử nghiệm thực tế trên bo mạch trắng ................................................ 24
Hình 4.3: Mạch in thiết kế trên altium ........................................................................... 25
Hình 4.4: Hình ảnh 3d của mạch .................................................................................... 26
Hình 4.5: Bottom layer mạch đèn giao thông ................................................................ 26
Hình 4.6: Mạch hoàn thiện ............................................................................................. 27

5


Danh sách các bảng biểu
Bảng 1.1: Bảng kế hoạch chung ....................................................................................... 8
Bảng 1.2: Bảng nhân lực .................................................................................................. 9
Bảng 1.3: Bảng phân chia công việc ................................................................................ 9
Bảng 2.1: Bảng mô tả chức năng chân Atmega 328 ...................................................... 12
Bảng 2.2: Bảng mô tả chân IC 74HC595....................................................................... 17
Bảng 2.3: Bảng mô tả tín hiệu vào/ra các chân IC74HC595 ......................................... 19
Bảng 2.4: Bảng giải mã chân hiển thị trên led 7 đoạn 2 chữ số ..................................... 20
Bảng 3.1: byte dịch ra khối dịch bit ............................................................................... 22

6



Chương 1. Mô tả kỹ thuật và xác lập kế hoạch
1.1. Tổng quan và xác định đề tài
Đề tài của chúng em được phân công là thiết kế và xây dựng hệ thống đèn giao thông
ngã tư dạng mô hình. Chi tiết hệ thống của đèn giao thông sẽ gồm 2 tập hợp đèn (đỏ,
xanh, vàng) cùng với linh kiện số hiển thị thời gian đếm của các đèn. Mô hình được xây
dựng với các chức năng cơ bản và một số chức năng thêm sẽ được trình bày trong phần

1.2. Mô tả kỹ thuật
1.2.1. Yêu cầu chức năng
- Hiển thị đèn 3 màu: Xanh – đỏ - vàng ứng với 2 hướng đi tại một ngã tư. Ý nghĩa
của từng đèn như sau: Xanh - các phương tiện được phép đi thẳng hoặc rẽ phải; Đỏ - các
phương tiện không được đi quá giới hạn vạch kẻ đường ; Vàng – báo hiệu các phương
tiện chuẩn bị dừng lại vì sắp đến tín hiệu đèn đỏ.
- Hiển thị thời gian trùng khớp với sự xuất hiện của 3 màu. Do tính chất của giao
thông nước ta, thời gian đèn đỏ thường lớn nhất và bằng tổng thời gian đèn xanh với đèn
vàng cộng lại.
- Cho phép người dùng điều chỉnh thời gian hiển thị trực tiếp cho đèn vàng và đèn
xanh. Người dùng tự cân đối điều chỉnh thời gian hiển thị của đèn vàng và đèn xanh sao
cho đèn đỏ (thời gian hiển thị đèn đỏ bằng tổng thời gian hiển thị đèn vàng và đèn xanh)
có thời gian hiển thị từ 00 đến 99 giây.
- Hệ thống có thể reset bằng tay hoặc sẽ tự reset khi mất nguồn. Chế độ ban đầu khi
khởi động sau reset cho phép người dùng có thể cài đặt thời gian gốc bắt đầu (với giờ và
phút). Ngoài ra có thể thay đổi chương trình vi điều khiển qua thiết bị USB PL 2303.
- Sau khi cài đặt thời gian bắt đầu hoạt động (thời gian gốc). Hệ thống lấy đó làm
mốc quy chiếu để hoạt động theo chế độ: hoạt động điều khiển giao thông từ 5 giờ sáng
đến 11 giờ tối và chuyển sang đèn vàng từ 11 giờ tối đến 5 giờ sáng hôm sau.
- Ngắt trạng thái hoạt động điều khiển giao thông chuyển sang trạng thái chỉ đèn đỏ
hoặc chỉ đèn xanh hoặc chỉ đèn vàng để phục vụ một số mục đích nhất định.


7


1.2.2. Yêu cầu phi chức năng
- Mạch sử dụng nguồn hoạt động công suất thấp. tiêu tốn ít năng lượng, có khả năng
hoạt động lâu dài.
- Sử dụng 1 cặp led 7 thanh 2 chữ số để hiện thời gian đèn sáng ứng với từng màu,
hiển thị rõ nét, dễ quan sát trong điều kiện ánh sáng ban ngày.
- Sử dụng con vi xử lý thuộc họ điều khiển AVR lập trình ghép nối vi điều khiển với
các thiết bị ngoại vi.
- Hoạt động tốt ở nhiệt độ từ 2 đến 60 độ C, phù hợp với điều kiện thời tiết của nước
ta.
- Mạch có kích thước nhỏ gọn, dễ dàng di chuyển, tối ưu về mặt không gian sắp xếp
linh kiện.
- Giá thành để hoàn thiện: không quá 200.000 VNĐ.

1.3. Xác lập kế hoạch
1.3.1. Xác lập công việc và nhân lực
Kế hoạch của nhóm bắt đầu tư khi có thông báo của giáo viên hướng dẫn, cả nhóm
họp bàn phương hướng công việc, đánh giá năng lực từng cá nhân qua đó để lập danh
sách các bước công việc cần làm và để có dược người đảm nhiệm tốt nhất.
1.3.2. Kế hoạch chung
Bảng 1.1: Bảng kế hoạch chung
Thời gian
27/04 – 02/05
02/05 – 04/05
04/05 – 08/05
08/05 – 15/05
15/05 – 22/05
22/05 – 24/05

24/05 – 30/05

Công việc thực hiện
Tìm hiểu chung về đề tài và phân tích yêu cầu kĩ thuật
Lập kế hoạch
Thiết kế sơ đồ khối và nguyên lí
Lập trình và mô phỏng mạch
Mua linh kiện, test mạch trên bo trắng
Làm mạch in
Hàn mạch, hoàn thiện sản phẩm, viết báo cáo

Bảng 1.1 là lịch trình các công việc cần thực hiện trong suốt quá trình làm dự án.
8


1.3.3. Bảng nhân lực
Bảng nhân lực là bảng thống kê lại tất cả những thông tin về từng cá nhân trong
một nhóm. Bảng nhân lực bao gồm: điểm mạnh, điểm yếu, kĩ năng, thời gian làm việc…
của các thành viên trong nhóm. Chính vì vậy, bảng nhân lực sẽ giúp chúng ta phân công
công việc một cách hợp lý nhất, phù hợp với từng cá nhân trong nhóm nhất. Dưới đây
Bảng 1.2 là bảng nhân lực của nhóm cho bài tập lớn.
Bảng 1.2: Bảng nhân lực
MSSV

Tên

Điểm mạnh

Điểm yếu


20162007
20161923

Đỗ Quốc Hưng
Đào Duy Hùng

báo cáo, hàn mạch
coding, lắp mạch

code
hàn mạch

1.3.4. Phân chia công việc
Ta tiến hành phân công các thành viên trong nhóm vào các công việc dựa theo các
tiêu chí:


Công việc được phân chia đều cho các thành viên trong nhóm.



Các công việc được giao cho từng thành viên phải phù hợp với ưu nhược điểm
cũng như thời gian làm việc.
Bảng 1.3: Bảng phân chia công việc
Công việc
Tìm hiểu chung về đề tài
Phân tích yêu cầu kĩ thuật
Lập kế hoạch
Thiết kế sơ đồ nguyên lí
Coding

Mua linh kiện
Lắp mạch và test trên bo trắng
Làm mạch in
Hàn mạch
Viết báo cáo

Nhân lực
Hùng, Hưng
Hưng
Hùng
Hùng, Hưng
Hùng, Hưng
Hùng, Hưng
Hùng, Hưng
Hưng
Hùng
Hùng, Hưng

Thời gian
27/04 – 02/05
02/05 – 04/05
04/05 – 08/05
08/05 – 15/05
15/05 – 22/05
22/05 – 24/05
24/05 – 30/05
02/05 – 04/05
04/05 – 08/05
08/05 – 15/05


9


Chương 2. Thiết kế kiến trúc
2.1. Sơ đồ khối
Từ ý tưởng xây dựng hệ thống, mô hình được thiết kế sơ đồ khối như Hình 2.1.

Hình 2.1: Sơ đồ khối hệ thống đèn giao thông
Hình 2.1 mô tả kết cấu của hệ thống đèn giao thông gồm 4 khối chính:
-

Khối nguồn: chuyển đổi nguồn DC từ 7 đến 18V thành nguồn DC 5V.

-

Khối nút điều khiển: tạo các tín hiệu điện áp khác nhau đưa và khối vi điều khiển
xử lý

-

Khối vi điều khiển: sử dụng atmega328 xử lý các tín hiệu tương tự từ khối nút
điều khiển, xử lý và đưa ra các tín hiệu điều khiển khối dịch bit và khối hiển thị

-

Khối dịch bit: sử dụng IC dịch bit 74HC595 nhân dữ liệu liên tiếp từ khối vi điều
khiển và chuyển thành song song.

-


Khối hiển thị: gồm đèn led ba loại màu và led 7 đoạn 2 chữ số phục vụ hiển thị.

10


2.2. Khối nguồn
2.2.1. Giới thiệu 7805

Hình 2.2: Sơ đồ chân 7805
Hình 2.2 mô tả sơ đồ chân của IC ổn áp LM7805 với hình bên trái là sơ đồ chân và
hình dạng thực tế của LM7805 còn hình bên phải là ký hiệu của LM7805 trong mô phỏng
và chức năng tương ứng của mỗi chân. Dựa vào hình có thể thấy chân 1 là chân nối với
tín hiệu đầu vào là điện áp muốn hạ xuống và thường ít nhất phải lớn hơn 3V so với điện
áp ra cần ổn định, chân 3 là đầu ra ứng với nguồn nuôi 5V cho mạch, chân 2 là chân nối
đất.
2.2.2. Sơ đồ nguyên lý
Sơ đồ nguyên lý của khối nguồn để tạo ra nguồn nuôi 5V cho mạch thể hiện trong
Hình 2.3. Sử dụng tụ lắp ở hai đầu để lọc nhiễu nguồn giúp nguồn ổn định.

Hình 2.3: Sơ đồ nguyên lý khối nguồn

11


2.3. Khối vi điều khiển
Khối vi điều khiển hoạt động bởi nguồn nuôi 5VDC. Khối nhận tín hiệu từ khối nút
điều khiển và thực hiện đưa ra các tín hiệu điều khiển khối hiển thị và khối dịch bit.

2.3.1. ATMEGA 328P
ATMEGA 328P (Hình 2.4) là dòng vi điều khiển phổ biến thuộc họ AVR với tốc độ

xử lý nhanh 1MIPS trên 1MHz, bộ nhớ chương trình 32KB ISP flash có thể ghi xóa hàng
nghìn lần, 1KB EEPROM, một bộ nhớ RAM vô cùng lớn trong các dòng vi xử lý 8 bit
(2KB SRAM). Đặc biệt ATMEGA 328P còn có bộ chuyển đổi tương tự sang số ADC
(analog to digital converter) phù hợp để ứng dụng sản xuất các mạch đo tín hiệu tương
tự: điện áp, dòng điện, nhiệt độ, …

Hình 2.4: Atmega328
Mô tả các chân và chức năng của từng chân được thể hiện trong Bảng 2.1.
Bảng 2.1: Bảng mô tả chức năng chân Atmega 328
Chân số
1
2
3
4
5
6

Mô tả
PC6
PD0
PD1
PD2
PD3
PD4

Chức năng
reset chương trình khi về 0
chân digital 0 (RX)
chân digital 1 (TX)
chân digital 2

chân digital 3
chân digital 4
12


7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

VCC
GND

XTAL 1
XTAL 2
PD5
PD6
PD7
PB0
PB1
PB2
PB3
PB4
PB5
AVCC
AREF
GND
PC0
PC1
PC2
PC3
PC4
PC5

chân nguồn (1.5V – 5.5V)
chân nối đất
chân dao động thạch anh 1
chân dao động thạch anh 2
chân digital 5 (PWM)
chân digital 6 (PWM)
chân digital 7
chân digital 8
chân digital 9 (PWM)

chân digital 10(PWM)
chân digital 11(PWM)
chân digital 12
chân digital 13
cấp điện áp dương cho bộ ADC
điện áp tham chiều bộ ADC
chân nối đất
tín hiệu vào analog 0
tín hiệu vào analog 1
tín hiệu vào analog 2
tín hiệu vào analog 3
tín hiệu vào analog 4
tín hiệu vào analog 5

Từ Bảng 2.1 ta thấy các chân để vi điểu khiển có thể hoạt động là chân VCC, GND,
AVCC (cung cấp năng lượng), hai chân XTAL1 và XTAL 2 nhận tín hiệu dao động từ
bộ dao động thạch anh (Hình 2.5).

Hình 2.5: Bộ dao động thạch anh cấp tín hiệu dao động cho VĐK
Bộ dao động thạch anh cho atmega 328 yêu cầu thạch anh 16MHz và 2 tụ 22pF.
13


Bộ chuyển đổi ADC:
Chân AVCC được dùng để cấp nguồn nuôi cho bộ ADC, ngay cả khi các chân analog
không được sử dụng thì AVCC vẫn được nối Vcc.
Bộ ADC gồm 6 kênh 10bit từ A0 đến A5 (PC0 – PC5). Các giá trị tương tự đọc vào từ
chân analog được chuyển đổi sang dạng số 10bit (có 210 giá trị). Chân AREF mang điện
áp tham chiếu cho bộ chuyển đổi ADC. Điện áp đưa vào chân analog yêu cầu nhỏ hơn
điện áp trên AREF, giá trị số thu được phụ thuộc vào tỉ lệ giữa điện áp trên chân analog

và điện áp tham chiếu. Ví dụ, Vref (trên chân AREF) là 5 V, Vin trên A0 là 3.2V thì giá
trị số thu được sẽ là: [

𝑉𝑖𝑛
𝑉𝑟𝑒𝑓

3.2

x 1024] = [

5

x 1024] = 655. Nếu Vin < 0 thì giá trị thu được

là 0 hoặc nếu Vin >= Vref thì giá trị thu được là 1023.
Bộ reset:
Chân reset của vi điều khiển là chân số 1, ở trạng thái thấp vi điều khiển reset chạy
lại chương trình. Chân reset được nối qua trở và nút bấm để reset bằng tay như trong
Hình 2.6

.
Hình 2.6: Bộ reset bằng nút của vi điều khiển atmega328

14


2.3.2. Sơ đồ nguyên lý khối xử lý.
Sơ đồ nguyên lý khối xử lý mô tả trong Hình 2.7. Các chân VCC và AVCC đều được
nối lên nguồn 5V-DC. Chân AREF đặt vào điện áp tham chiếu Vref là 5V. Chân A0 hay
chân analog 0 nhận tín hiệu vào là điện áp Vpa đi ra từ khối nút điều khiển (0 < Vpa <

Vref).

Hình 2.7: Sơ đồ nguyên lý khối xử lý
Các tín hiệu vào ra trên khối xử lý thể hiện trên Hình 2.8.

Hình 2.8: Tín hiệu vào ra khối vi xử lý
Bảng 2.2 mô tả nhiệm vụ của các tín hiệu thể hiện trong Hình 2.8.
Tín hiệu
reset
A0
digital 5,6,7
digital 8 ÷ 13
digital 3,4

Loại
Input
Input
Output
Output
Output

Mô tả
Tín hiệu reset đi từ bộ reset, trạng thái thấp reset mạch
Tín hiệu điện áp từ bộ nút điều khiển qua chân analog 0
Tín hiệu điều khiển khối dịch bit
Tín hiệu điều khiển 6 led đèn
Tín hiệu điều khiển bật tắt các led 7 thanh 2 chữ số

15



2.4. Khối nút điều khiển
Khối nút điều khiển sử dụng 4 nút điều kết hợp với các điển trở khác nhau để đưa ra
tín hiệu điện áp A0 như Hình 2.9.

Hình 2.9: Sơ đồ khối nút điều khiển

Sử dụng nguyên lý phân áp để đưa ra các mức điện áp khác nhau cho các tín hiệu
A0 khác nhau. Khi nút 1 được ấn điện áp A0 sẽ là Vcc.

R

. Với các giá trị điện trở

R+R1

R1,R2,R3,R4 khác nhau khi các nút b1 đến b4 được ấn sẽ đưa ra các tín hiệu điện áp A0
khác nhau, các tín hiệu tương tự này khi qua bộ chuyển đổi ADC của vi điều khiển sẽ
được phân biệt bằng các số khác nhau trong khoảng 0 đến 1023.
Giá trị R, R1, R2, R3, R4 được lựa chọn lần lượt là 10k, 1k, 2.2k, 3k, 3.9k.

2.5. Khối dịch bit
Để nhận tín hiệu điều khiển từ khối xử lý trung tâm của Atmega328, ta cần một IC
có khả năng xử lý dịch bit qua đó điều khiển hiển thị của led 7 đoạn. IC 74HC595 chính
là lựa chọn phù hợp. IC 74HC595 là thanh ghi dịch 8bit kết hợp chốt dữ liệu, đầu vào
nối tiếp đầu ra song song. Chức năng: Thường dùng trong các mạch quét led 7, led
16


matrix…để tiết kiệm số chân vi điều khiển tối đa (3 chân). Có thể mở rộng số chân vi

điều khiển bao nhiêu tùy thích mà không IC nào làm được bằng việc nối tiếp đầu vào dữ
liệu các IC với nhau. Nói một cách chính xác, IC này là IC “dịch chốt”.
Dịch được dùng cho IC này thực chất là cách nói của dân kỹ thuật về đặc tính ngõ
vào nối tiếp của IC. Vậy "đặc tính ngõ vào nối tiếp của IC" là như thế nào? Có thể nói 1
cách đơn giản là ta có thể đưa lần lượt nhiều giá trị logic vào 1 ngõ vào của IC đó để nó
lưu vào bộ nhớ chờ đến khi có lệnh xử lí. Có thể hiểu ngõ vào nối tiếp tức là các giá trị
được nạp vào IC một cách từ từ ở từng thời điểm khác nhau trên cùng 1 ngõ vào, còn
nếu nói vào song song thì có nghĩa là sẽ có nhiều ngõ vào và các giá trị sẽ được nạp vào
IC cùng 1 lúc. Thuật ngữ này đối với ngõ ra cũng tương tự.
Chốt là khi thỏa mản 1 điều kiện nào đó nó sẽ cho phép IC giữ nguyên giá trị ngõ
ra, không cho nó thay đổi mặc dù tín hiệu ngõ vào có thay đổi thế nào.

Hình 2.10: IC 74HC595
Hình 2.10 là hình ảnh sơ đồ các chân của ic 74HC595. Các chân quan trọng của IC
này được mô tả trong Bảng 2.2.
Bảng 2.2: Bảng mô tả chân IC 74HC595
Chân số
1
2
3
4
5

Mô tả
Q1
Q2
Q3
Q4
Q5


Chức năng
chân ra song song bit số 1
chân ra song song bit số 2
chân ra song song bit số 3
chân ra song song bit số 4
chân ra song song bit số 5
17


6
7
8
9
10

Q6
Q7
GND
Q7’
~MR

11

SH_CP

12

ST_SP

13

14
15
16

~OE
DS
Q0
VCC

chân ra song song bit số 6
chân ra song song bit số 7
chân nối đất
chân ra nối tiếp ở chế độ ghép nối nhiều IC74HC595
tích cực mức thấp reset dòng bit cũ của IC
chân vào xung, khi có sườn dương IC đưa tín hiệu vào
từ chân DS
chân vào xung, khi có sườn dương IC đưa tín hiệu chờ
trong IC ra ngõ ra song song
tích cực thấp cho điều chỉnh trạng thái ngõ ra
chân vào data nhận chuỗi 8 bit 1 lần
chân ra song song bit số 0
chân cấp nguồn

Nguyên lý của IC74HC595 có thể được hiểu rõ rang hơn qua Hình 2.11.

Hình 2.11: Sơ đồ nguyên lý IC74HC595
Nhìn vào Hình 2.11 có thể hiểu nguyên lý hoạt động của IC. Dữ liệu 8bit được đưa
vào chân 14 DS. Khi gặp sườn dương của xung SHCP, dữ liệu 8 bit được đưa vào thanh
ghi lưu trữ. Với ~MR ở trạng thái tích cực thấp, dữ liệu lưu trữ sẽ bị xóa đi. Chân Q7’
sẽ chuyển chuỗi dữ liệu nối tiếp truyền sang đưa vào DS của IC74HC595 khác ở chế độ

nối tiếp. Các bit được lưu trữ ở thanh ghi lưu trữ khi có sườn dương của xung STCP
18


được đưa ra ngõ ra song song từ Q0 đến Q7, với điều kiện ~OE tích cực thấp. Khi ~OE
ở trạng thái cao thì các chân ra Q sẽ ở trạng thái trở kháng cao.
Tín hiệu của khối dịch bit được mô tả trong Bảng 2.3.
Bảng 2.3: Bảng mô tả tín hiệu vào/ra các chân IC74HC595
Chân
SHCP
STCP
DS
Q1 – Q7

Tín hiệu loại
Input
Input
Input
Output

Mô tả
Nhận tín hiệu xung từ chân digital 7
Nhận tín hiệu xung từ chân digital 6
Nhân dữ liệu từ chân digital 5
Đưa dữ liệu song song ứng với các giá trị từ a đến f

2.6. Khối hiển thị

Hình 2.12: Sơ đồ chân led 7 thanh 2 chữ số catot chung
Led 7 đoạn 2 chứ số gồm 2 loại: anot chung và catot chung. Mạch nhóm sử dụng

loại catot chung. Nhìn Hình 2.12 từ trái sang phải các chữ số hiển thị lần lượt phụ thuộc
vào các chân D1, D2. Led ở trạng thái hoạt động khi các chân D ở mức thấp (L). Khi các
chân D đều ở mức thấp các số hiển thị trên 4 chữ số đều giống nhau (Hình 2.9).

Hình 2.13: Hiển thị số 1 trên led 7 thanh 2 chữ số
19


Hiển thị các chữ số từ 0 đến 9 khi các chân A,B,C,D,E,F,G ở trạng thái như Bảng 2.4.
Bảng 2.4: Bảng giải mã chân hiển thị trên led 7 đoạn 2 chữ số
A B C D E F G Hiển thị
H H H H H H L

0

L H H L L L L

1

H H L H H L H

2

H H H H L L H

3

L H H L L H H

4


H L H H L H H

5

H L H H H H H

6

H H H L L L L

7

H H H H H H H

8

H H H H L H H

9

Trong Bảng 2.2 H là mức cao và L là mức thấp. Vì khi hiển thị các chữ số chỉ có thể
hiện thì đồng thời một số nên nhóm dùng Atmega 328 để điều khiển led hiển thị các chữ
số khác nhau theo mong muốn bằng phương pháp quét led.
Phương pháp quét led: Ta sẽ thực hiện bật tắt liên tục các đèn D1, D2 để có thể
hiển thị số mong muốn. Gọi thời gian để hiển thị một số có 2 chữ số trên led là một chu
kì hiển thị. Khi đó chu kì hiển thị sẽ gồm 2 giai đoạn. Giai đoạn 1: D2 tắt, chuyển dữ
liệu hiển thị cho chữ số thứ nhất vào, bật D1. Giai đoạn 2: D1 tắt, chuyển dữ liệu cho
chữ số thứ hai vào, bật D2. Như vậy trong một chu kì hiển thị các đèn sẽ hiện thị đầy đủ
2 chữ số đưa vào. Nếu tần số hiện thỉ lớn hơn 24Hz thì mắt sẽ không cảm nhận được sự

gián đoạn của các led, ta có được sự hiển thị đầy đủ như mong muốn.
Các chân digital 3, 4 của vi điều khiển thực hiện việc bật hoặc tắt D1, D2. Còn các
chân led sẽ nhận tín hiệu từ đầu ra song song của bộ dịch bit từ Q1 đến Q7. Ngoài ra
khối hiển thị còn các 3 cặp led: xanh, đỏ, vàng. Các led này được điều khiển bởi chân
digital 8 đến 13. Thời gian hiển thị phụ thuộc vào thời gian setup cho đèn vàng và xanh.
20


Chương 3. Cấu trúc chương trình vi điều khiển
3.1. Sơ đồ trạng thái
Sơ đồ chuyển trạng thái của chương trình trong vi điều khiển thể hiện trong Hình
3.1.

Hình 3.1: Sơ đồ chuyển trạng thái của chương trình
Nhìn vào Hình 3.1 ta thấy có 4 trạng thái chính có thể coi là 4 chương trình con của
chương trình. Trạng thái C1 là trạng thái sau khi reset, chương trình con là set thời gian
bắt đầu cho hệ thống. Khi nút thứ nhất ấn và được nhả ra, ta coi B1 = 1 biểu thị cho sự
kiện đó và khi B1 = 0 nghĩa là không có sự chuyển đổi trạng thái từ nhấn sang nhả. Khi
B1 = 1, chương trình chuyển sang trạng thái C2 ứng với chương trình set thời gian hiển
thị cho đèn vàng và đèn xanh. C3 là trạng thái ứng với chương trình hoạt động bình
thường của đèn giao thông (hoạt động từ 5 giờ đến 23 giờ trong ngày, từ 23 giờ đến 5
giờ ngày hôm sau sẽ là bật mỗi đèn vàng). C4 là trạng thái hiển thị đèn đỏ, vàng, hoặc
xanh theo ý muốn. Trạng thái C1 chỉ có được khi ấn nút reset hay có nghĩa là ta chỉ set
thời gian bắt đầu cho hệ thống khi hệ thống khởi động lại.
Trong các trạng thái C1, C2, C4 ta sử dụng nút thứ 2 để chuyển đổi theo mong muốn.
Cụ thể ở trạng thái C1 khi set thời gian giờ và phút, nút 2 sẽ dùng để chuyển đổi giữa
việc set giờ và phút bắt đầ. Ở C2 khi set thời gian cho đèn vàng và xanh, nút 2 sẽ chuyển
21



đổi lựa chọn giữa việc set thời gian cho vàng hoặc là cho xanh. Còn ở trạng thái thứ 4,
nút thứ 2 sẽ lựa chọn việc chỉ hiện thị loại đèn nào trong 3 loại: đỏ, xanh, hoặc vàng.

3.2. Chương trình xử lý tín hiệu từ khối nút điều khiển
Hàm analogRead(): luôn trả về một giá trị nguyên trong khoảng từ 0 đến 1023 tùy
thuộc và điện áp tham chiếu từ 0 đến 5V. Đề tài này, nhóm sử dụng điện áp tham chiếu
là 5V. Phần 2.3 đã trình bày về cách tính toán từ tín hiệu tương tự sang giá trị số. Từ các
giá trị điện trở lựa chọn, ta tính được các giá trị số tương ứng với việc nhấn các nút từ 1
đến 4 lần lượt là: 931, 839, 788, 737.
Vì giá trị thực tế không ổn định hoặc có thể có sai số nên khi xử lý trong code ta sẽ
để các giá trị xác định việc ấn các nút chạy trong khoảng chênh lệch ±10. Ví dụ 931 thì
cho 920 < analogRead() < 940.
Phần code xử lí tín hiệu nhận biết việc ấn các nút để trong Phụ lục 1.

3.3. Chương trình truyền dữ liệu ra khối dịch bit
Hàm shiftOut(): có nhiệm vụ chuyển 1 byte ra ngoài từng bit một. Bit được chuyển
đi có thể bắt đầu từ bit nằm bên trái nhất hoặc bit nằm bên phải nhất. Các bit này được
xuất ra tại chân dataPin (lựa chọn là digital 5) sau khi chân clockPin được kéo xuống (từ
High xuống Low) hoặc được kéo lên (từ Low lên High).
Các byte dịch ra ngoài chương trình phù hợp với việc hiển thị các số của led 7 thanh
2 chữ số từ 0 đến 9. Các byte dịch ra khối chuyển đổi nối tiếp song song thể hiện trong
Bảng 3.1.
Bảng 3.1: byte dịch ra khối dịch bit
0gfedcba

Số tương ứng 0gfedcba

Số tương ứng

00111111


0

01101101

5

00000110

1

01111101

6

01011011

2

00000111

7

01001111

3

01111111

8


01100110

4

01101111

9
22


Phần code chương trình dịch bit trong Phụ lục 2.

3.4. Chương trình quét led
Theo nguyên lý quét led được trình bày trong Phần 2.6, code chương trình quét led
trong Phụ lục 3.

3.5. Chương trình mô phỏng thời gian thực
Một chức năng quan trọng của hệ thống đèn giao thông là với thời gian setup ban
đầu khi khởi động (reset), hệ thống sẽ thực hiện việc bật tắt đèn (từ vàng sang điều khiển
giao thông) theo đúng khoảng thời gian thực tế. Để thực hiện khả năng này, hàm millis()
được sử dụng.
Hàm millis(): có nhiệm vụ một số thuộc kiểu unsigned long (32 bit) là thời gian tính
theo mili giây kể từ lúc mạch Arduino bắt đầu chương trình. Nó sẽ tràn số sau khi vượt
quá giá trị 232-1 tương đương với 50 ngày. Tuy nhiên ta có thể dùng phương pháp ép
kiểu về unsigned long để xử lý vấn đề này.
Phần code sử dụng millis để tính toán thời gian thực để trong Phụ lục 4.

23



Chương 4. Thử nghiệm và mô phỏng
4.1. Mô phỏng proteus
Sau khi thiết kế sơ đồ khối và mạch nguyên lí hoàn chỉnh, nhóm đi và mô phỏng trên
proteus như Hình 4.1 để kiểm tra lại tính chính xác cũng như có những sự thay đổi phù
hợp với thực tế.

Hình 4.1: Mô phỏng sơ đồ nguyên lý mạch trên proteus 8.6

4.2. Thử nghiệm trên bo trắng

Hình 4.2: Mạch thử nghiệm thực tế trên bo mạch trắng

24


Hình 4.2 là hình ảnh mạch sau khi lắp đặt thử nghiệm thành công trên thực tế, sau
khi hiệu chỉnh một số các thành phần phù hợp yêu cầu đầu ra.

4.3. Vẽ mạch nguyên lí và PCB trên Altium Designer
Dựa trên sơ đồ nguyên lí đã xây dựng, nhóm chúng em đã tiến hành vẽ lại mạch
nguyên lí và mạch in PCB trên phần mềm Altium Designer với các tiêu chí như sau:
• Mạch in 1 lớp, hạn chế sử dụng dây câu
• Kích thước mạch 7x6 𝑐𝑚2
• Chiều rộng dây lớn hơn 1mm.
Dưới đây Hình 4.3 và Hình 4.4 là hình ảnh 3D và mạch in của mạch.

Hình 4.3: Mạch in thiết kế trên altium

25



×