Đồ án 2 thiết kế bộ đo khoảng cách dùng cảm biến siêu âm

45 0 0
Đồ án 2 thiết kế bộ đo khoảng cách dùng cảm biến siêu âm

Đ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

b Sơ đồ khối vi điều khiển PIC16F877ACấu trúc khối vi điều khiển PIC16F877A bao gồm các khối chính: - Khối ALU – Arithmetic Logic Unit- Khối bộ nhớ chứa chương trình – Flash Program Memo

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

ĐỒ ÁN 2

THIẾT KẾ BỘ ĐO KHOẢNG CÁCH DÙNG CẢM BIẾN SIÊU ÂM

NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: PHÁT TRIỂN ỨNG DỤNG IoT

SINH VIÊN: DƯƠNG HỮU TUẤN

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Trang 3

LỜI CAM ĐOAN

Em xin cam đoan đồ án 2 “ thiết kế bộ đo khoảng cách dùng cảm biến siêu âm ” là công trình nghiên cứu của bản thân Những phần sử dụng tài liệu tham khảo trong đồ án đã được nêu rõ trong phần tài liệu tham khảo Các số liệu, kết quả trình bày trong đồ án là hoàn toàn trung thực, nếu sai em xin chịu hoàn toàn trách nhiệm và chịu mọi kỷ luật của bộ môn và nhà trường đề ra.

Hưng yên, ngày … tháng … năm….

Sinh viên

[3]

Trang 4

LỜI CẢM ƠN

Lời đầu tiên, em xin chân thành cảm ơn chuyên ngành phát triển ứng dụng IoT, khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật Hưng Yên đã tạo điều kiện thuận lợi cho em thực hiện đồ án 2.

Đặc biệt em xin chân thành cảm ơn thầy nguyễn đình chiến đã rất tận tình hướng dẫn, chỉ bảo em trong suốt thời gian thực hiện đồ án 2 vừa qua.

Mặc dù em đã có cố gắng, nhưng với trình độ còn hạn chế, trong quá trình thực hiện đề tài không tránh khỏi những thiếu sót Em hi vọng sẽ nhận được những ý kiến nhận xét, góp ý của các Thầy giáo, Cô giáo về những vấn đề triển khai trong đồ án 2.

Em xin trân trọng cảm ơn!

[4]

Trang 5

MỤC LỤC

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 2

LỜI CAM ĐOAN 3

CHƯƠNG II: CƠ SỞ LÝ THUYẾT 12

2.1 Linh kiện điện tử, vi điều khiển, và cảm biến 12

2.1.1 Vi điều khiển (PIC 16F877A) 12

2.1.2 Cảm biến 27

2.1.3 Linh kiện điện tử 32

2.2 Thiết kế mạch điện tử 38 [5]

Trang 6

2.3 Nguyên tắc hoạt động của hệ thống 39

CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 40

3.1 Đặc tả yêu cầu hệ thống 40

3.1.1 Các yêu cầu chức năng 40

3.1.2 Các yêu cầu phi chức năng 40

Trang 7

DANH MỤC TỪ VIẾT TẮT

Từ viết tắt Từ viết tắt đầy đủ

EEPROM Electrically Erasable Programmable Read-Only Memory

VCC Voltage colector to colector

CNC Computer Numerical Control PCB Printed Circuit Board USB Universal Serial Bus API Application Program Interface IoT Internet of Things

[7]

Trang 8

DANH MỤC BẢNG

bảng 2 1 chức năng các chân của pic16f877a 13

bảng 2 2 thông tin chân cảm biến hc-sc04 29

bảng 2 3 thông số kỹ thuật module a7276s 31

bảng 2 4 chức năng các chân của lcd 34

bảng 3 1 sơ đồ kết nối chân lcd1602 và pic16f877a 40

[8]

Trang 9

DANH MỤC HÌNH VẼ

hình 2 1 vi điều khiển pic16f877a dạng dip 12

hình 2 2 sơ đồ chân của vi điều khiển pic16f877a 13

hình 2 3 sơ đồ khối cấu trúc bên trong của pic16f877a 20

hình 2 4 kiến trúc von neumann và harvard 22

hình 2 5 bộ nhớ chương trình của pic16f877a 23

hình 2 6 bộ nhớ dữ liệu của pic16f877a 24

hình 2 7 cảm biến siêu âm 27

hình 2 8 nguyên lý hoạt động của cảm biến siêu âm 28

hình 2 9 sơ đồ chân module cảm biến hc-sr04 29

hình 2 10 module a7276 30

hình 2 11 màn hình lcd 1602 34

hình 2 12 các bước làm mạch điện tử 37

hình 3 1 sơ đồ khối của hệ thống 38

hình 3 2 sơ đồ nguyên lý của hệ thống 39

hình 3 3 sơ đồ nguyên lý module hiển thị 39

hình 3 4 lưu đồ thuật toán 41

hình 3 5 sơ đồ pcb 41

hình 4 1 mô phỏng thực tế 42

[9]

Trang 10

CHƯƠNG I: MỞ ĐẦU1.1 Lý do chọn đề tài

Với sự phát triển mạnh mẽ của khoa học và cồng nghệ ngày này đi cùng với công cuộc công nghiệp hóa – hiện đại hóa đất nước đã thúc đẩy nền cồng nghiệp phát triển Các thiết bị dành cho những người tần tật như xe thông minh, gậy thông minh cũng được chế tạo ra không những ngày càng tinh tế mang tính hiện đại mà còn thông minh tăng tính tự động hóa nhằm nâng cao chất lượng đời sống của những người có khiếm khuyết về cơ thể Do sau những cuộc chiến tranh không chỉ ảnh hưởng đến những người trực tiếp tham gia chiến tranh mà còn ảnh hưởng đễ những thế hệ sau này Việc chúng ta phát triển những thiết bị để cho những người kém may mặn hơn mình là điều lên làm.mình.

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

1.2.1 Mục tiêu tổng quát

Phát hiện nhanh chóng và kịp thời để đưa ra canh báo khi phát có vật cản khoảng cách gần và gửi cảnh báo cho người thân nếu nhịp tim của người dùng không được ổn định.

1.2.2 Mục tiêu cụ thể

- Cảnh báo bằng còi và màn hình LCD 16X2 khi phát hiện vật cản.

- Cảnh báo qua tin nhắn điện thoại khi nhịp tim của người dung quá ngưỡng quy định.

- Thực hiện gửi định vị khi nhịp tim của người dùng quá ngương mức cho phép.

- Đảm bảo an toàn, chính xác và kịp thời.

1.3.Nội dung thực hiện

- Dùng cảm biến Cảm Biến Siêu Âm HC-SR04 để đo khoảng các cùng với cảm biến và Cảm Biến Nhịp Tim Pulse Sensor để đo nhịp tim của người dùng.

Trang 11

- Cảnh báo bằng còi, màn hình lcd hiện thi khoảng cách từ người dùng đến vật cản cảnh báo nếu khoảng cách dưới 10cm.

- Đồng thời thực hiện việc đo nhịp tim của người dùng qua Cảm Biến Nhịp Tim Pulse Sensor sẽ gửi cảnh báo và vị trí của người dùng cho những người thân.

1.4.Phương pháp tiếp cận

- Áp dụng kiến thức đã học vào lập trình.

- Sử dụng các tài liệu liên quan để hỗ trợ việc lập trình - Tham khảo ý kiến đóng góp của giảng viên hướng dẫn - Tham khảo trên mạng Internet.

1.5.Kết quả dự kiến

- Mạch hoạt động đúng với các chức năng đặt ra - Đảm báo được tính án toàn và chuẩn xác.

Trang 12

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT2.1 Linh kiện điện tử, vi điều khiển, và cảm biến

2.1.1 Vi điều khiển (PIC 16F877A)

PIC16F8X là nhóm PIC trong họ PIC16XX của họ Vi điều khiển 8-bit, tiêu hao năng lượng thấp, đáp ứng nhanh, chế tạo theo công nghệ CMOS, chống tĩnh điện tuyệt đối Tất cả các PIC16/17 đều có cấu trúc RISC PIC16CXX các đặc tính nổi bật, 8 mức ngăn xếp Stack, nhiều nguồn ngắt tích hợp bên trong lẫn ngoài Có cấu trúc Harvard với các bus dữ liệu và bus thực thi chương trình riêng biệt nhau cho phép độ dài 1 lệnh là 14-bit và bus dữ liệu 8-bit cách biệt nhau Tất cả các lệnh đều mất 1 chu kỳ lệnh ngoại trừ các lệnh rẽ nhánh chương trình mất 2 chu kỳ lệnh Chỉ có 35 lệnh và 1 lượng lớn các thanh ghi cho phép đáp ứng cao trong ứng dụng.

Họ PIC16F8X có nhiều tính năng đặc biệt làm giảm thiểu các thiết bị ngoại vi, vì vậy tính kinh tế cao, có hệ thống nổi bật đáng tin cậy và sự tiêu thụ năng lượng thấp Chế độ SLEEP tiết kiệm nguồn và có thể được đánh thức bởi các nguồn reset.

PIC16F877A có 40/44 chân với sự phân chia cấu trúc như sau: - Có 5 port xuất/nhập

- Có 8 kênh chuyển đổi A/D 10-bit

Hình 2 1 Vi điều khiển PIC16F877A dạng DIP

Trang 13

- Có 2 bộ PWM

- Có 3 bộ định thời: Timer0, timer1 và timer2 - Có giao tiếp truyền nối tiếp: chuẩn RS232, I2C… a) Sơ đồ chân PIC16F877A

Chức năng các chân của PIC16F877A

Bảng 2 1 Chức năng các chân của PIC16F877A

1 MCLR/VPP - : Hoạt động Reset ở mức thấp - VPP: ngõ vào áp lập trình

2 RA0/AN0 - RA0: xuất/nhập số - AN0 : ngõ vào tương tự

Hình 2 2 Sơ đồ chân của vi điều khiển PIC16F877A

Trang 14

Chân TênChức năng

3 RA1/AN1 - RA1: xuất/nhập số - AN1: ngõ vào tương tự - RA2: xuất/nhập số

4

- AN2: ngõ vào tương tự

- VREF -: ngõ vào điện áp chuẩn (thấp) của bộ A/D

5 RA3/AN3/VREF+

- RA3: xuất/nhập số - AN3: ngõ vào tương tự

- VREF+ : ngõ vào điện áp chuẩn (cao) của bộ

- AN4: ngõ vào tương tự 4 - SS: ngõ vào chọn lựa SPI phụ - C2 OUT : ngõ ra bộ so sánh 2

8 RE0/ /AN5 - RE: xuất nhập số

- RD: điều khiển việc đọc ở port nhánh song song

Trang 15

- AN5 : ngõ vào tương tự

9 RE1/ /AN6

- RE1: xuất/nhập số

- WR: điều khiển việc ghi ở port nhánh song song - AN6 : ngõ vào tương tự

10 RE2/ /AN7

- RE2: xuất/nhập số

- CS: Chip lựa chọn sự điều khiển ở port nhánh song song

- AN7: ngõ vào tương tự

13 OSC1/CLKI

Ngõ vào dao động nội hoặc xung clock bên ngoài - OSC1: ngõ vào dao động thạch anh hoặc xung clock bên ngoài Ngõ vào Schmitt trigger khi được cấu tạo ở chế độ RC, một cách khác của CMOS

- CLKI: ngõ vào nguồn xung bên ngoài Luôn được kết hợp với chức năng OSC1

14 OSC2/CLKO

Ngõ vào dao động thạch anh hoặc xung clock - OSC2: Ngõ ra dao động thạch anh Kết nối đến thạch anh hoặc bộ cộng hưởng.

- CLKO : ở chế độ RC, ngõ ra của OSC2, bằng tần số của OSC1 và chỉ ra tốc độ của chu kỳ lệnh

Trang 16

15 RC0/T1OCO/T1C

- RC0: xuất/nhập số

- T1OCO: ngõ vào bộ dao động Timer 1 - T1CKI : ngõ vào xung clock bên ngoài Timer 1

16 RC1/T1OSI/CCP2

- RC1: xuất/nhập số

- T1OSI: ngõ vào bộ dao động Timer 1 - CCP2: ngõ vào Capture 2, ngõ ra compare 2,

Trang 17

- PSP2: dữ liệu port nhánh song song

22 RD3/PSP3 - RD3: xuất/nhập số

- PSP3 : dữ liệu port nhánh song song

23 RC4/SDI/SDA

- RC4: xuất/nhập số - SDI: dữ liệu vào SPI

- SDA : xuất/nhập dữ liệu vào I2C

Trang 19

b) Sơ đồ khối vi điều khiển PIC16F877A

Cấu trúc khối vi điều khiển PIC16F877A bao gồm các khối chính: - Khối ALU – Arithmetic Logic Unit

- Khối bộ nhớ chứa chương trình – Flash Program Memory - Khối bộ nhớ chứa dữ liệu EEPROM – Data EEPROM - Khối bộ nhớ file thanh ghi RAM – RAM file Register - Khối thanh ghi đặt biệt

- Khối ngoại vi timer

- Khối giao tiếp, khối chuyển đổi ADC - Khối các Port xuất nhập

Trang 20

Hình 2 3 Sơ đồ khối cấu trúc bên trong của PIC16F877A

c) Các thông số kỹ thuật

Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit Mỗi lệnh đều được thực thi trong một chu kì xung clock Tốc độ hoạt động tối đa cho phép là 20MHz với một chu kì lệnh là 200ns Bộ nhớ chương trình 8Kx14bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte, bao gồm 5 PORT vớ 33 pin I/O.

Các đặc tính ngoại vi bao gồm các khối chức năng sau: - Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.

Trang 21

- Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.

- Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler Hai bộ Capture/ so sánh/ điều chế độ rộng xung.

- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.

- Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bên ngoài.

- Các đặc tính Analog: 8 kênh chuyển đổi ADC 10 bit Hai bộ so sánh - Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.

- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.

- Dữ liệu bộ nhớ EEPROM, có 256 byte (có địa chỉ 00h÷FFh), có thể lưu trữ trên 40 năm.

- Khả năng tự nạp chương trình với sự điều khiển của phần mềm.

- Watchdog Timer với bộ dao động trong Chức năng bảo mật mã chương trình Chế độ Sleep.

- Có thể hoạt động với nhiều dạng Oscillator khác nhau d) Tổ chức bộ nhớ

PIC16F877A bao gồm 3 loại bộ nhớ: bộ nhớ chương trình (Program Memory), bộ nhớ dữ liệu RAM và bộ nhớ dữ liệu EEPROM

PIC có kiến trúc bộ nhớ dạng Harvard, một kiến trúc cải tiến so với kiến trúc Von Neumann.

Trang 22

Hình 2 4 Kiến trúc Von Neumann và Harvard

Kiến trúc Von Neumann: với kiến trúc này thì bộ nhớ giao tiếp với CPU

thông qua 1 bus dữ liệu 8 bit, bộ nhớ có các ô nhớ chứa dữ liệu 8 bit, bộ nhớ vừa lưu trữ chương trình và dữ liệu.

- Ưu điểm: kiến trúc đơn giản.

- Nhược điểm: do chỉ có 1 bus nên tốc độ truy xuất chậm, khó thay đổi dung lượng lưu trữ của ô nhớ.

Kiến trúc Harvard: với kiến trúc này thì bộ nhớ được tách ra làm 2 loại bộ

nhớ độc lập: bộ nhớ lưu chương trình và bộ nhớ lưu dữ liệu, CPU giao tiếp với 2 bộ nhớ độc lập nên cần 2 bus độc lập Vì độc lập nên có thể thay đổi số bit lưu trữ của từng bộ nhớ mà không ảnh hưởng lẫn nhau Với PIC thì bộ nhớ chương trình với mỗi ô nhớ lưu trữ 14 bit, còn bộ nhớ dữ liệu với mỗi ô nhớ lưu dữ liệu 8 bit.

- Ưu điểm: do chỉ có 2 bus nên tốc độ truy xuất nhanh, thay đổi số bit của ô nhớ - Khuyết điểm: kiến trúc phức tạp

Bộ nhớ chương trình:

Trang 23

Hình 2 5 Bộ nhớ chương trình của PIC16F877A

Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dung lượng bộ nhớ 8K word (1word = 14bit) và được phân thành nhiều trang (từ page 0 đến page 3) Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192 lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1 word (14bit)).

Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hóa bởi bộ đếm chương trình Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset vector) Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h (Interrupt vector).

Bộ nhớ dữ liệu:

Trang 24

Hình 2 6 Bộ nhớ dữ liệu của PIC16F877A

Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank Đối với PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFG nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR nằm ở vùng địa chỉ còn lại trong bank Các thanh ghi SFR thường xuyên được sử dụng sẽ được đặt ở tất cả các bank của bộ nhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chương trình.

e) Cổng xuất nhập dữ liệu

Trang 25

PORTA: bao gồm 6 chân I/O đây là các chân “hai chiều” nghĩa là có thể xuất

và nhập được Chức năng I/O này được điều khiển bởi thanh ghi TRISA (địa chỉ 85h) Muốn xác lập chức năng của một chân trong PORTA là input thì ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORT là output thì ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORTA là TRISA, đối với PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD và đối với PORTF là TRISE) Ngoài ra, PORTA còn có các chức năng quan trọng sau:

- Ngõ vào Analog của bộ ADC thực hiện chức năng chuyển từ dữ liệu từ tín hiệu Analog sang tín hiệu Digital

- Ngõ vào điện thế so sánh

- Ngõ vào xung Clock của Timer0 trong kiến trúc phần cứng thực hiện các nhiệm vụ đếm xung thông qua Timer0…

- Ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port) Các thanh ghi SFR liên quan đến PORTA bao gồm:

- PORTA (địa chỉ 05h): chứa các giá trị pin trong PORTA - TRISA (địa chỉ 85h): điều khiển xuất nhập.

- CMCON (địa chỉ 9Ch): thanh ghi điều khiển bộ so sánh - CVRCON (địa chỉ 9Dh): thanh ghi điều khiển bộ so sánh điện áp - ADCON1 (địa chỉ 9Fh): thanh ghi điều khiển bộ ADC.

PORTB: bao gồm 8 chân I/O và thanh ghi điều khiển xuất nhập tương ứng là

TRISB Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0 PORTB còn được tích hợp chức năng điện trở kéo lên, được điều khiển bởi chương trình Các thanh ghi SFR liên quan đến PORTB bao

Trang 26

[26]

Trang 27

- PORTB (địa chỉ 06h, 106h): chứa giá trị pin trong PORTB - TRISB (địa chỉ 86h, 186h): điều khiển xuất nhập

- OPTION_REG (địa chỉ 81h, 181h): điều khiển ngắt ngoại vi bộ Timer0.

PORTC: gồm có 8 chân và cũng thực hiện được 2 chức năng input và output

dưới sự điều khiển của thanh ghi TRISC tương tự như hai thanh ghi trên Ngoài ra PORTC còn có chức năng quan trọng sau:

- Ngõ vào xung clock cho Timer1 trong kiến trúc phần cứng.

- Bộ PWM thực hiện chức năng điều xung lập trình được tần số, duty cycle: sử dụng trong điều khiển tốc độ và vị trí động cơ v.v…

- Tích hợp các bộ giao tiếp nối tiếp 12C, SPI, USART

PORTD: gồm có 8 chân, thanh ghi TRISD điều khiển 2 chức năng input và

output của PORTD tương tự như trên PORTD cũng là cổng xuất dữ liệu của chuẩn giao tiếp song song PSP (Parallel Slave Port) Các thanh ghi liên quan đến PORTD bao gồm:

- Thanh ghi PORTD: chứa giá trị các pin trong PORTD - Thanh ghi TRISD: điều khiển xuất nhập.

- Thanh ghi TRISE: điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP.

PORTE: gồm có 3 chân, thanh ghi điều khiển xuất nhập tương ứng là TRISE.

Các chân của PORTE có ngõ vào analog Bên cạnh đó PORTE còn là chân điều khiển của chuẩn giao tiếp PSP Các thanh ghi liên quan đến PORTE bao gồm:

- PORTE: chứa giá trị các chân trong PORTE.

- TRISE: điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP - ADCON1: thanh ghi điều khiển khối ADC.

Ngày đăng: 08/04/2024, 17:35

Tài liệu cùng người dùng

Tài liệu liên quan