1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Đồ án môn học kỹ thuật số mạch đếm và hiển thị đèn giao thông sử dụng IC 74HC595 (full code)

23 114 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 2,03 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Vì vậy để đảm bảo giao thông được an toàn và thông suốt thì việc sử dụng các hệ thống tín hiệu để điều khiển và phân luồng tại các nút giao thông là rất cần thiết.. Nhận thấy đây là vấn

Trang 1

BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐH GIAO THÔNG VẬN TẢI TP HCM KHOA ĐIỆN – ĐIỆN TỬ VIỄN THÔNG

BÁO CÁO ĐỒ ÁN MÔN HỌC

HỌC PHẦN: KỸ THUẬT SỐ

Giảng viên hướng dẫn: Th.S Lại Nguyễn Duy

Nhóm thực hiện: Nhóm 10

Sinh viên thực hiện:

1 Ngô Quốc Trưởng 1951050105 TD19

2 Phan Đình Hoài 1951050060 TD19

3 Nguyễn Đăng Khoa 1951050069 TD19

4 Lê Đình Trọng 1951050038 TD19

Trang 2

BẢNG PHÂN CÔNG NHIỆM VỤ

1 Ngô Quốc Trưởng Thiết kế mạch, viết chương trình và làm báo cáo

2 Phan Đình Hoài Thi công mạch và làm báo cáo

3 Nguyễn Đăng Khoa Mua linh kiện và thi công mạch

4 Lê Đình Trọng Mua linh kiện và thi công mạch

Trang 3

LỜI NÓI ĐẦU

Một số đô thị lớn hiện nay như Hà Nội, TP Hồ Chí Minh,… số lượng dân cư sinh sống, làm việc rất lớn, dẫn đến số lượng xe máy tham gia giao thông cũng rất nhiều Những giờ cao điểm ở những nút giao thông lớn lượng xe tham gia đông dẫn đến tình trạng kẹt xe, thiếu an toàn cho người tham gia giao thông Vì vậy để đảm bảo giao thông được an toàn và thông suốt thì việc sử dụng các hệ thống tín hiệu để điều khiển và phân luồng tại các nút giao thông là rất cần thiết

Nhận thấy đây là vấn đề rất cần thiết, với những kiến thức đã được học trong học phần Kỹ thuật số cùng với một số kiến thức liên quan khác, nhóm chúng em đã lựa chọn

đề tài cho bài tập lớn là: “Thiết kế và thi công mạch hiển thị đèn giao thông”

Trang 4

MỤC LỤC

LỜI NÓI ĐẦU 2

CHƯƠNG 1 Khái quát chung về đề tài 5

1.1 Đặt vấn đề và lý do chọn đề tài 5

1.2 Mục tiêu của đề tài 5

CHƯƠNG 2 Giới thiệu về các thiết bị 6

2.1 Arduino Uno R3 6

2.1.1 Thông số kỹ thuật 6

2.1.2 Nguồn cấp 7

2.1.3 Bộ nhớ 7

2.1.4 Các chân đầu vào và đầu ra 7

2.2 IC 74HC595 8

2.2.1 Sơ đồ chân 8

2.2.2 Nguyên lý hoạt động của IC 9

2.2.3 Giản đồ xung 12

2.3 LED 7 đoạn 12

2.3.1 Cấu tạo 12

2.3.2 Nguyên lý hoạt động 12

2.4 LED phát sáng 13

CHƯƠNG 3 Thiết kế và mô phỏng mạch hiển thị đèn giao thông 14

3.1 Phần mềm hỗ trợ 14

3.1.1 Arduino IDE 14

3.1.2 Protues 8 Professional 15

3.2 Sơ đồ khối 16

3.3 Nguyên lí hoạt động 16

3.4 Mô phỏng mạch trên Protues và nguyên lý hoạt động 17

3.5 Lưu đồ giải thuật 18

3.6 Code chương trình 18

3.7 Tiến hành thi công mạch 20

CHƯƠNG 4 Kết luận và hướng phát triển 22

4.1 Kết luận 22

4.2 Hướng phát triển 22

TÀI LIỆU THAM KHẢO 23

Trang 5

CHƯƠNG 1 KHÁI QUÁT CHUNG VỀ ĐỀ TÀI

1.1 ĐẶT VẤN ĐỀ VÀ LÝ DO CHỌN ĐỀ TÀI

Đa số chúng ta đều lựa chọn xe máy là phương tiện di chuyển hằng ngày, ở Việt Nam số lượng xe máy trong những năm qua tăng một cách đột biến, mật độ xe lưu thông trên đường ngày một nhiều, trong khi đó hệ thống đường giao thông tại Việt Nam còn quá nhiều hạn chế nên thường gây ra các hiện tượng như kẹt xe, ách tắc giao thông, đặc biệt là tai nạn giao thông ngày càng phổ biến trở thành mối hiểm họa cho nhiều người

Để giải quyết vấn đề đó, lần lượt luật giao thông ra đời để người dân tuân thủ theo, nâng cao ý thức chấp hành, hệ thống biển báo trên đường đi, Trong đó hệ thống đèn giao thông là công cụ điều khiển giao thông công cộng thực tế và hiệu quả có vai trò rất lớn trong việc đảm bảo an toàn và giảm thiểu tai nạn giao thông

Trước thực tiễn ấy cũng với những kiến thức đã được học ở học phần Kỹ thuật số

và các học phần liên quan trước đó thì chúng em chọn đề tài “Thiết kế và thi công

mạch hiển thị đèn giao thông” để tiến hành nghiên cứu và thực hiện đề tài

Hình 1 Hệ thống đèn giao thông

1.2 MỤC TIÊU CỦA ĐỀ TÀI

Mục tiêu của đề tài “Thiết kế và thi công mạch hiển thị đèn giao thông” bao gồm:

− Tìm hiểu cơ chế hoạt động của LED 7 đoạn, IC 74HC595, board mạch Aruduino,

− Viết chương trình hiển thị đèn giao thông với 2 chế độ

− Thiết kế và thi công mạch in

Trang 6

CHƯƠNG 2 GIỚI THIỆU VỀ CÁC THIẾT BỊ

2.1 ARDUINO UNO R3

Hình 2 Arduino Uno R3

Arduino Uno là một bảng mạch vi điều khiển nguồn mở dựa trên vi điều khiển

Microchip ATmega328 được phát triển bởi Arduino.cc Bảng mạch được trang bị các

bộ chân đầu vào/ đầu ra Digital và Analog có thể giao tiếp với các bảng mạch mở rộng khác nhau

2.1.1 Thông số kỹ thuật

Vi điều khiển ATmega328 họ 8bit

Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB) Tần số hoạt động 16 MHz

Dòng tiêu thụ khoảng 30mA

Điện áp vào khuyên dùng 7-12V DC

Điện áp vào giới hạn 6-20V DC

Số chân Digital I/O 14 (6 chân hardware PWM)

Số chân Analog 6 (độ phân giải 10bit)

Dòng tối đa trên mỗi chân I/O 30 mA

Dòng ra tối đa (5V) 500 mA

Dòng ra tối đa (3.3V) 50 mA

Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi

bootloader SRAM 2 KB (ATmega328)

EEPROM 1 KB (ATmega328)

Trang 7

2.1.2 Nguồn cấp

− LED: Có 1 LED được tích hợp trên bảng mạch và được nối vào chân D13 Khi

chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW)

− VIN: Chân này dùng để cấp nguồn ngoài (điện áp cấp từ 7-12VDC)

− 5V: Điện áp ra 5V (dòng điện trên mỗi chân này tối đa là 500mA)

− 3V3: Điện áp ra 3.3V (dòng điện trên mỗi chân này tối đa là 50mA)

− GND: Là chân mang điện cực âm trên board

− IOREF: Điệp áp hoạt động của vi điều khiển trên Arduino UNO và có thể đọc

điện áp trên chân IOREF Chân IOREF không dùng để làm chân cấp nguồn

2.1.3 Bộ nhớ

Vi điều khiển ATmega328:

− 32 KB bộ nhớ Plash: trong đó bootloader chiếm 0.5KB

− 2 KB cho SRAM: (Static Random Access Menory): giá trị các biến khai báo

sẽ được lưu ở đây Khai báo càng nhiều biến thì càng tốn nhiều bộ nhớ RAM Khi mất nguồn dữ liệu trên SRAM sẽ bị mất

− 1 KB cho EEPROM: (Electrically Eraseble Programmable Read Only

Memory): Là nơi có thể đọc và ghi dữ liệu vào đây và không bị mất dữ liệu khi mất nguồn

2.1.4 Các chân đầu vào và đầu ra

2.1.4.1 Các chân digital

Trên Board Arduino Uno có 14 chân Digital được sử dụng để làm chân đầu vào

và đầu ra và chúng sử dụng các hàm pinMode(), digitalWrite(), digitalRead() Giá trị điện áp trên mỗi chân là 5V, dòng trên mỗi chân là 20mA và bên trong có điện trở kéo lên là 20-50 ohm Dòng tối đa trên mỗi chân I/O không vượt quá 40mA để tránh trường hợp gây hỏng board mạch

Ngoài ra, một số chân Digital có chức năng đặt biệt:

− Serial: 0 (RX) và 1 (TX): Được sử dụng để nhận dữ liệu (RX) và truyền dữ liệu

(TX) TTL

− Ngắt ngoài: Chân 2 và 3

− PWM: 3, 5, 6, 9 và 11 Cung cấp đầu ra xung PWM với độ phân giải 8 bit bằng

hàm analogWrite ()

− SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Các chân này hỗ trợ giao tiếp

SPI bằng thư viện SPI

Trang 8

− LED: Có 1 LED được tích hợp trên bảng mạch và được nối vào chân D13 Khi

chân có giá trị mức cao (HIGH) thì LED sẽ sáng và LED tắt khi ở mức thấp (LOW)

− TWI/I2C: A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị

vi điều khiển bao nhiêu tùy thích bằng việc mắc nối tiếp đầu vào dữ liệu các IC với nhau

2.2.1 Sơ đồ chân

Hình 4 Sơ đồ chân của IC 74HC595

Trang 9

Tên chân Chức năng

(RCLK) Xung xuất dữ liệu ra ngõ ra

𝑂𝐸 Cho phép ngõ ra, tích cực mức thấp Mức 0 là cho phép ngõ ra, mức 1 là

không cho phép ngõ ra

(QH’) Ngõ ra dữ liệu nối tiếp Khi dùng nhiều 74HC595 mắc nối tiếp nhau thì chân này đưa vào đầu vào (DS) của con tiếp theo khi đã dịch đủ 8 bit

2.2.2 Nguyên lý hoạt động của IC

2.2.2.1 Sơ đồ kết nối và sơ đồ logic

Hình 5 Sơ đồ kết nối IC 74HC595

Trang 10

Hình 6 Sơ đồ logic IC 74HC595

Trang 11

2.2.2.2 Nguyên lý hoạt động

Hình 7 Nguyên lý hoạt động của IC 74HC595

Ta đặt dữ liệu vào chân DS, và tạo một xung SHCP thì dữ liệu tại chân DS sẽ được dịch vào thanh ghi 8-STAGE SHIFT REGISTER

Lần lượt làm như trên 8 lần (dịch bit cao trước), thì ta được 8 bit trong thanh ghi 8-STAGE SHIFT REGISTER

Sau đó ta tạo một xung STCP thì 8 bit trong thanh ghi 8-STAGE SHIFT REGISTER sẽ được sao chép sang thanh ghi 8-BIT STORAGE REGISTER Lúc này nếu chân OE ở mức thấp thì ngõ ra sẽ bằng với giá trị thanh ghi 8-BIT STORAGE

REGISTER, còn nếu chân OE ở mức cao thì ngõ ra ở trạng thái tổng trở cao (Hi-Z)

Chú ý:

− Khi dịch dữ liệu vào thanh ghi 8-STAGE SHIFT REGISTER, và chưa tạo xung STCP thì thanh ghi 8-BIT STORAGE REGISTER sẽ giữ nguyên trạng thái và ngõ ra cũng giữ nguyên trạng thái

− Khi chân MR ở mức 0 thì dữ liệu trên thanh ghi 8-STAGE SHIFT REGISTER

sẽ bị xóa, còn thanh ghi 8-BIT STORAGE REGISTER sẽ giữ nguyên trạng thái

và ngõ ra cũng giữ nguyên trạng thái

Trang 12

− Mỗi đèn LED 7 đoạn có chân đưa ra khỏi hộp hình vuông Mỗi một chân sẽ được gán cho một chữ cái từ a đến g tương ứng với mỗi LED Những chân khác

được nối lại với nhau thành một chân chung

Hình 9 LED 7 đoạn

2.3.2 Nguyên lý hoạt động

Tất cả các chân anode được nối với nhau với logic là 1 Mỗi phân đoạn được chiếu sáng bằng cách sử dụng điện trở tín hiệu logic 0 (hay low) vào các cực cathode (từ a

Trang 13

Hình 10 Nguyên lý hoạt động của LED 7 đoạn anode chung

Tùy vào chữ số thập phân nào được hiển thị mà một bộ đèn LED cụ thể sẽ được phân cực thuận Ví dụ để hiển thị chữ số 0, cần phải chiếu sáng 6 đoạn tương ứng là a,

b, c, d, e và f Như vậy các số từ 0 đến 9 có thể hiển thị bằng 1 LED 7 đoạn như hình bên dưới

Hình 11 Sơ đồ nguyên lý hoạt động của LED 7 đoạn

2.4 LED PHÁT SÁNG

− LED là một linh kiện quang điện tử

− Nó cho ta những lơi điểm sau: tần số hoạt động cao, thể tích nhỏ, công suất tiêu

hao bé , không hút điện mạnh

− Sự phát sinh dựa trên nguyên tắc hoàn toàn giống bóng đèn

− Ở đây vật chất được đốt nóng là photon sẽ bị phóng thích

Hình 12 Cấu tạo của LED phát sáng

Trang 14

CHƯƠNG 3 THIẾT KẾ VÀ MÔ PHỎNG MẠCH HIỂN THỊ ĐÈN

GIAO THÔNG 3.1 PHẦN MỀM HỖ TRỢ

Hình 13 Giao diện phần mềm Arduino IDE

Nó có các phiên bản cho các hệ điều hành như MAC, Windows, Linux và chạy trên nền tảng Java đi kèm với các chức năng và lệnh có sẵn đóng vai trò quan trọng để

gỡ lỗi, chỉnh sửa và biên dịch mã trong môi trường

Có rất nhiều các module Arduino như Arduino Uno, Arduino Mega, Arduino Leonardo, Arduino Micro và nhiều module khác

Mỗi module chứa một bộ vi điều khiển trên bo mạch được lập trình và chấp nhận thông tin dưới dạng mã

Mã chính, còn được gọi là sketch, được tạo trên nền tảng IDE sẽ tạo ra một file Hex, sau đó được chuyển và tải lên trong bộ điều khiển trên bo

Trang 15

Môi trường IDE chủ yếu chứa hai phần cơ bản: Trình chỉnh sửa và Trình biên dịch, phần đầu sử dụng để viết mã được yêu cầu và phần sau được sử dụng để biên dịch

và tải mã lên module Arduino

Môi trường này hỗ trợ cả ngôn ngữ C và C ++

Hình 15 Giao diện chính của phần mềm Protues

Vì phần mềm đơn giản, dễ sử dụng nên chúng em đã sử dụng phần mềm này để

mô phỏng mạch nguyên lý và thiết kế mạch in

Trang 16

3.2 SƠ ĐỒ KHỐI

Trong đó:

− Nguồn: Cung cấp nguồn 5V ổn định cho mạch

− Arduino: Xử lý và điều khiển mạch

− IC 74HC595: Xuất số đếm ra LED 7 đoạn

− LED 7 đoạn: Hiển thị số đếm

− LED tín hiệu: Hiển thị tín hiệu giao thông (xanh, đỏ vàng)

Trang 17

3.4 MÔ PHỎNG MẠCH TRÊN PROTUES VÀ NGUYÊN LÝ HOẠT ĐỘNG

Hình 16 Mô phỏng mạch nguyên lý trên phần mềm Protues

Hình 17 Mô phỏng mạch 3D (không có board aruduino)

Hình 18 Bản thiết kế mạch in

Trang 18

3.5 LƯU ĐỒ GIẢI THUẬT

Hình 19 Lưu đồ giải thuật

Trang 19

volatile unsigned int count=0;

unsigned int LED1=10;

unsigned int LED2=10;

unsigned int LED3=10;

unsigned int LED4=10;

unsigned int LED5=10;

digitalWrite(x1, !congtac && count<=10);

digitalWrite(v1, !congtac && count>10 && count<=15 || congtac && clk_1hz);

digitalWrite(R1, !congtac && count > 15);

digitalWrite(R2, !congtac && count<=15);

digitalWrite(x2, !congtac && count > 15 && count <=25);

Trang 20

LED1 = (congtac?10:(count<=10?(10-count)%10:(count<=15?(15-count)%10:(30-count)%10))); LED2 = (congtac?10:(count<=10?(10-count)/10:(count<=15?(15-count)/10:(30-count)/10)));

LED3 = (congtac?10:(count<=15?(15-count)%10:(count<=25?(15-count)%10:(30-count)%10))); LED4 = (congtac?10:(count<=15?(15-count)/10:(count<=25?(25-count)/10:(30-count)/10)));

digitalWrite(st,0);

shiftOut(ds, sh, MSBFIRST, mahex_a[LED5]);

shiftOut(ds, sh, MSBFIRST, mahex_a[LED4]);

shiftOut(ds, sh, MSBFIRST, mahex_a[LED3]);

shiftOut(ds, sh, MSBFIRST, mahex_a[LED2]);

shiftOut(ds, sh, MSBFIRST, mahex_a[LED1]);

Trang 21

Trong quá trình làm mạch, do kinh nghiệm còn kém nên mạch chưa có tính thẩm

mỹ cao cũng như chưa có tính chuyên nghiệp

Hình 21 Tiến hành kiểm tra thông mạch

Sau khi đã hàn linh kiện và kiểm tra các yêu cầu đảm bảo mạch không bị lỗi thì nhóm tiến hành nạp chương trình và hoàn thiện mạch

Hình 22 Mạch hoàn thiện sau khi nạp chương trình

Trang 22

CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

4.1 KẾT LUẬN

Sau quá trình tìm hiểu và nghiên cứu cũng như được sự giúp đỡ của thầy Th.S Lại

Nguyễn Duy, chúng em đã hoàn thành đồ án môn học với đề tài “Thiết kế và thi công

mạch hiển thị đèn giao thông” Mặc dù mạch thiết kế và thi công mạch chưa có tính

thẩm mỹ cao nhưng vẫn đảm bảo được các mục tiêu đề ra, song qua đó chúng em đã học hỏi được nhiều kiến thức trong học phần Kỹ thuật số nói riêng và trong chuyên ngành của chúng em nói chung Qua đồ án này sẽ tạo bước đà cho chúng em có thể phát triển và hoàn thiện ở các đồ án môn học tiếp theo sau này

4.2 HƯỚNG PHÁT TRIỂN

Vì ở đây chỉ dừng lại ở giới hạn đồ án môn học nên chúng em chỉ thiết kế và thi công trên mạch in nhưng nếu có điều kiện để phát triển đồ án thì chúng em có những hướng phát triển như sau:

− Xây dựng mô hình thực tế

− Thêm tấm pin năng lượng mặt trời để cấp nguồn cho hệ thống

− Thêm chế độ điều khiển thủ công thời gian hiển thị các đèn

Trang 23

TÀI LIỆU THAM KHẢO

Ngày đăng: 26/08/2021, 23:08

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w