Mạch đo mực nước dùng pic (có code và sơ đồ mạch)

21 4 0
Mạch đo mực nước dùng pic (có code và sơ đồ mạch)

Đ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

ĐỒ ÁN MẠCH ĐO MỰC NƯỚC DÙNG PIC MỤC LỤC CHƯƠNG 1:GIỚI THIỆU 1.1 Giới thiệu chung 1.2 Mục đích thực đề tài 1.3 Nhiệm vụ đề tài CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG .8 2.1 Thiết kế sơ đồ khối 2.2 GIỚI THIỆU CÁC LINH KIỆN 2.2.1 VI ĐIỀU KHIỂN PIC 2.2.2 Cảm biến siêu âm SRF04 12 2.2.2.1 Thông số kĩ thuật SRF04 12 2.2.2.2 Sơ đồ chân 12 2.2.2.3 Giao tiếp với vi điều khiển 12 2.2.2.4 Cách tính khoảng cách từ thời gian đo 13 2.2.3 LCD 16x02 .13 CHƯƠNG 3: PHẦN MỀM 15 3.1 Lưu đồ hoạt động 15 3.2 Mô 16 3.3 Thi công mạch 16 CHƯƠNG 4: KẾT LUẬN .17 4.1 Kết luận 17 4.2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI .17 PHỤ LỤC 19 DANH MỤC CÁC HÌNH VẼ Hình 2.1: Sơ đồ khối mạch Hình 2.2.1: Sơ đồ chân hình dạng PIC 16F877A Hình 2.2.2-1: SRF04 12 Hình 2.2.2-2: Khoảng cách từ SRF04 tới vật 13 Hình 2.2.3: LCD 16x02 14 Hình 3.1: Lưu đồ hoạt động 15 Hình 3.2: Mạch mô proteus 16 Hình 3.3: Mạch in 16 DANH MỤC BẢNG BIỂU Bảng 2.2.1: Chức chân .9 Bảng 2.2.2-1:Sơ đồ chân SRF04 .12 Bảng 2.2.3: Sơ đồ chân LCD 14 CHƯƠNG 1: GIỚI THIỆU 1.1 Giới thiệu chung Ngày ta có cách thiết bị điều khiển bị động dựa vào tác động thay đổi bên ngồi Nhưng điều chưa đủ, Chúng ta cần có thiết bị tự chuẩn đốn, dự báo để điều khiển thiết bị cách thông minh 1.2 Mục đích thực đề tài Bằng cách sử dụng sử dụng PIC16F877A linh kiện, gồm điện trở, tụ điện, LCD 16x02 cảm biến siêu âm SRF-04 Ta dễ dàng tạo thiết bị đo mực nước 1.3 Nhiệm vụ đề tài Thiết kế mạch đo mực nước Sử dụng PIC16F877A SRF-04 để đo khoảng cách xuất liệu LCD Xây dựng phần cứng hệ thống CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG 2.1 Thiết kế sơ đồ khối Hình 2.1: Sơ đồ khối mạch Khối SRF-04: có chức đo khoảng cách từ mạch tới vật cản đưa giá trị khối vi điều khiển Khối điều khiển: Có chứa vi điều khiển PIC16F877A Nhận tín hiệu từ khối cảm biến đưa về, cho hiển thị LCD Khối LCD: hiển thị thông tin từ khối khối điều khiển đưa tới Khối nguồn: có chức biến đổi dòng soay chiều 220v thành dòng chiều cung cấp cho khối hoạt động Nguyên lý hoạt động: Khi PÍC6F877A nhận tín hiệu từ SRF-04 đưa về, khối vi điều khiển xử lý tính tốn khoảng cách từ SRF-04 tới vật thể gửi tín hiệu cho LCD hiển thị 2.2 Giới thiệu linh kiện 2.2.1 Vi điều khiển PIC PIC16F877A có 40/44 chân với phân chia cấu trúc sau :  Có port xuất/nhập  Có kênh chuyển đổi A/D 10-bit  Có PWM  Có định thời: Timer0, timer1 timer2  Có giao tiếp truyền nối tiếp: chuẩn RS 232, I2C…  Có giao tiếp LCD Hình 2.2.1: Sơ đồ chân hình dạng PIC 16F877A Bảng 2.2.1: chức chân Chân Tên Chức /VPP RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/TOCKI/C1OUT RA5/AN4/ /C2OUT : Hoạt động Reset mức thấp - VPP : ngõ vào áp lập trình - RA0 : xuất/nhập số - AN0 : ngõ vào tương tự - RA1 : xuất/nhập số - AN1 : ngõ vào tương tự - RA2 : xuất/nhập số - AN2 : ngõ vào tương tự - VREF -: ngõ vào điện áp chuẩn (thấp) A/D - RA3 : xuất/nhập số - AN3 : ngõ vào tương tự - VREF+ : ngõ vào điện áp chuẩn (cao) A/D - RA4 : xuất/nhập số - TOCKI : ngõ vào xung clock bên cho timer0 - C1 OUT : Ngõ so sánh - RA5 : xuất/nhập số - AN4 : ngõ vào tương tự - SS : ngõ vào chọn lựa SPI phụ RE0/ RE1/ /AN6 10 RE2/ /AN7 11 VDD 12 VSS 13 OSC1/CLKI 14 OSC2/CLKO 15 RC0/T1 OCO/T1CKI 16 RC1/T1OSI/CCP2 17 RC2/CCP1 18 RC3/SCK/SCL 19 RD0/PSP0 20 RD1/PSP1 /AN5 - C2 OUT : ngõ so sánh - RE0 : xuất nhập số - RD : điều khiển việc đọc port nhánh song song - AN5 : ngõ vào tương tự - 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ự - RE2 : xuất/nhập số - CS : Chip lựa chọn điều khiển port nhánh song song - AN7 : ngõ vào tương tự Chân nguồn PIC Chân nối đất Ngõ vào dao động thạch anh xung clock bên - OSC1 : ngõ vào dao động thạch anh xung clock bên Ngõ vào Schmit trigger cấu tạo chế độ RC ; cách khác CMOS - CLKI : ngõ vào nguồn xung bên ngồi Ln kết hợp với chức OSC1 Ngõ vào dao động thạch anh xung clock - OSC2 : Ngõ dao động thạch anh Kết nối đến thạch anh cộng hưởng - CLKO : chế độ RC, ngõ OSC2, tần số OSC1 tốc độ chu kỳ lệnh - RC0 : xuất/nhập số - T1OCO : ngõ vào dao động Timer - T1CKI : ngõ vào xung clock bên Timer - RC1 : xuất/nhập số - T1OSI : ngõ vào dao động Timer - CCP2 : ngõ vào Capture 2, ngõ compare 2, ngõ PWM2 - RC2 : xuất/nhập số - CCP1 : ngõ vào Capture 1, ngõ compare 1, ngõ PWM1 - RC3 : xuất/nhập số - SCK : ngõ vào xung clock nối tiếp đồng bộ/ngõ chế độ SPI - SCL : ngõ vào xung clock nối tiếp đồng bộ/ ngõ chế độ I2C - RD0 : xuất/nhập số - PSP0 : liệu port nhánh song song - RD1 : xuất/nhập số - PSP1 : liệu port nhánh song song 21 RD2/PSP2 22 RD3/PSP3 23 RC4/SDI/SDA 24 RC5/SDO 25 RC6/TX/CK 26 RC7/RX/DT 27 RD4/PSP 28 RD5/PSP5 29 RD6/PSP6 30 RD7/PSP7 31 VSS 32 VDD 33 RB0/INT 34 RB1 35 RB2 36 RB3 37 RB4 38 RB5 39 RB6/PGC 40 RB7/PGD - RD2 : xuất/nhập số - PSP2 : liệu port nhánh song song - RD3: xuất/nhập số - PSP3 : liệu port nhánh song song - RC4 : xuất/nhập số - SDI : liệu vào SPI - SDA : xuất/nhập liệu vào I2C - RC5 : xuất/nhập số - SDO : liệu SPI - RC6 : xuất/nhập số - TX : truyền bất đồng USART - CK : xung đồng USART - RC7 : xuất/nhập số - RX : nhận bất đồng USART - DT : liệu đồng USART - RD4: xuất/nhập số - PSP4 : liệu port nhánh song song - RD5: xuất/nhập số - PSP5 : liệu port nhánh song song - RD6: xuất/nhập số - PSP6 : liệu port nhánh song song - RD7: xuất/nhập số - PSP7 : liệu port nhánh song song Chân nối đất Chân nguồn PIC - RB0 : xuất/nhập số - INT : ngắt Xuất/nhập số Xuất/nhập số - RB3 : xuất/nhập số - Chân cho phép lập trình điện áp thấp ICPS - Xuất/nhập số - Ngắt PortB - Xuất/nhập số - Ngắt PortB - RB6 : xuất/nhập số - PGC : mạch vi sai xung clock lập trình ICSP - Ngắt PortB - RB7 : xuất/nhập số - PGD : mạch vi sai liệu lập trình ICSP - Ngắt PortB 2.2.2 Cảm biến siêu âm SRF04 SRF04 cảm biến siêu âm dung để đo khoảng cách tới vật cản Khoảng cách đo: 3cm-4cm Ứng dụng: chống trộm, đo mực nước, robot dị đường…… Hình 2.2.2-1: SRF04 2.2.2.1 Thông số kĩ thuật SRF04 + Nguồn cung cấp: 5V DC + Dòng: 30mA (Max 50mA) + Tần số hoạt động: 40KHz + Khoảng cách lớn đo được: 6m + Khoảng cách nhỏ đo được: cm + Góc quét: 45 ° [3] 2.2.2.2 Sơ đồ chân Chân Chức Vcc Nguồn 5V Trigger Chân kích phát song âm Echo Chân phát song âm dội lại GND Nguồn GND Bảng 2.2.2-1: Sơ đồ chân SRF04 2.2.2.3 Giao tiếp với vi điều khiển  Đo khoảng cách cảm biến siêu âm SRF04 đo thời gian chân Echo mức cao  Để đo khoảng cách ta làm bước sau: 10     Kích chân Trigger: xuất mức chân Trigger delay tối thiểu 10ms Sau đợi chân Echo lên mức cao Khi chân Echo lên mức cao, kích hoạt Timer Khi chân Echo xuống mức thấp (hoặc chương trình xử lý ngắt), dừng Timer tính tốn giá trị từ Timer, sau suy khoảng cách  Reset giá trị đếm cho Timer, chuẩn bị lần đo 2.2.2.4 Cách tính khoảng cách từ thời gian đo d Hình 2.2.2-2: Khoảng cách từ SRF04 tới vật Gọi S quãng đường song âm S= x d Gọi V vận tốc song âm V=344m/s = 34400cm/s V=0.0344m/us Gọi t thời gian truyền ta có: Như vậy: D = t/58 S=2xd=Vxt D = V x t/2 = 0.0344 x t/2 = (t/58) 2.2.3 LCD 16x02 Trong đồ án, khối hiển thị sử dụng LCD 16x02 LCD viết tắt từ Liquid Crystal Display nhiều thiết bị điện tử sử dụng Là loại hiển thị cấu tạo tế bào ( điểm ảnh) chứa tinh thể lỏng có khả thay đổi tính phân cực ánh sáng thay đổi cường độ ánh sáng truyền qua kết hợp với kính lọc phân cực Ưu điểm phẳng, cho hình ảnh sáng, chân thật tiết kiệm lượng 11 Hình 2.2.3: LCD 16x02 Chức Số thứ tự chân Tên Ground Nguồn cho LCD Tương phản Vss(GND) Trạng Thái Logic - Vdd(Vcc) - 5V Vee RS RW E 10 11 12 13 14 D0 D1 D2 D3 D4 D5 D6 D7 1 Từ xuống 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0-Vdd D0-D7: Lệnh D0-D7:Dữ liệu Ghi (Từ IC vào LCD) Đọc (Từ LCD vào IC) Vơ hiệu hóa LCD LCD hoạt động Bắt đầu ghi/đọc Bit LSB Bit Bit Bit Bit Bit Bit Bit MSB Điều khiển LCD Dữ liệu/lệnh Bảng 2.2.3: Sơ đồ chân LCD 12 Mô Tả 0V CHƯƠNG 3: PHẦN MỀM 3.1 Lưu đồ hoạt động Hình 3.1: Lưu đồ hoạt động 13 3.2 Mơ Hình 3.2: Mạch mơ proteus 3.3 Thi cơng mạch Hình 3.3: Mạch in 14 CHƯƠNG 4: KẾT LUẬN 4.1 Kết luận Sau hơn  thời gian tìm hiểu, nghiên cứu, tham khảo nhiều tài liệu hướng dẫn thầy cô, em thực xong đề tài : ‘‘Mạch đo mực nước. Việc hoàn thành đề tài với nội dung mục tiêu đề ban đầu đem lại cho em thực lượng kiến thức bổ ích, thiết thực có khả ứng dụng thực tế Sau thời gian thực đồ án, em hoàn thành công việc sau :   Xây dựng, thiết kế thi cơng mạch Tìm hiểu vầ thiết kế mạch 4.2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI Đề tài ‘‘mạch đo mực nước” thực mơ hình thí nghiệm Để đưa đề tài vào áp dụng thực tiễn đời sống sản xuất cần phải nâng cấp mở rộng hệ thống Ngoài ra, dựa vào ứng dụng tầm khả hoạt động , phát triển thành đề tài khác hệ thống ổn định lò nhiệt, hệ thống ổn định áp suất…… 15 Tài liệu tham khảo [1] Giáo trình vi điều khiển: 123doc.org //document/1250977-giao-trinh-vi-dieu-khienpic-16f877a.htm [2] Vi điều khiển PIC16f877A: tailieu.tv/tai-lieu/vi-dieu-khien-pic16f877a-17967/ [3] http://mualinhkien.vn/san-pham/34/cam-bien-sieu-am-srf04.html [4] Hocavr.com 16 #define LCD_EN #define LCD_RS PIN_D1 PIN_D0 #define LCD_D4 #define LCD_D5 #define LCD_D6 #define LCD_D7 PIN_D7 PIN_D6 PIN_D5 PIN_D4 PHỤ LỤC // misc display defines#define Clear_Scr 0x01 // prototype statements #separate void LCD_khoitao (void); #separate void LCD_thietlap (unsigned int cX); #separate void LCD_VIETKITU (unsigned int cX); #separate void LCD_GUILENH (unsigned int cX); #separate void LCD_Kichhoatxung (void); #separate void LCD_SetData (unsigned int cX); #use standard_io (B) #use standard_io (A) //khoi tao LCD********************************************** #separate void LCD_khoitao (void) { LCD_SetData (0x00); delay_ms (200); output_low (LCD_RS); LCD_SetData (0x03); L CD_PulseEnable (); LCD_Kichhoatxung (); LCD_Kichhoatxung (); LCD_SetData (0x02); LCD_Kichhoatxung (); LCD_GUILENH (0x2C); LCD_GUILENH (0X0C); LCD_GUILENH (0x06); LCD_GUILENH (0x01); } 17 #separate void LCD_thietlap (unsigned int cX) { LCD_SetData (swap ( cX ) | 0x08); LCD_Kichhoatxung (); LCD_SetData (swap (cX)); LCD_Kichhoatxung (); } #separate void LCD_VIETKITU (unsigned int cX) { output_high (LCD_RS); LCD_GUILENH (cX); output_low (LCD_RS); } #separate void LCD_GUILENH (unsigned int cX) { LCD_SetData (swap (cX)); /* send high nibble */ LCD_Kichhoatxung (); LCD_SetData (swap (cX)); /* send low nibble */ LCD_Kichhoatxung (); } #separate void LCD_Kichhoatxung (void) { output_high (LCD_EN); delay_us (3); // was 10 output_low (LCD_EN); delay_ms (3); // was } #separate void LCD_SetData (unsigned int cX) { output_bit (LCD_D4, cX & 0x01); output_bit (LCD_D5, cX & 0x02); output_bit (LCD_D6, cX & 0x04); output_bit (LCD_D7, cX & 0x08); } #DEFINE #DEFINE TRIGGER PIN_C4 ECHO PIN_C5 FLOAT KC1, KC2; UNSIGNED INT32 I, GT_TRAN, K,KQ; 18 #int_timer1 void interrupt_timer1() { GT_TRAN++; } VOID TAO_XUNG_TRIGGER() // tao xung de day tin hieu ngoai { DELAY_MS(50); OUTPUT_HIGH(TRIGGER); DELAY_MS(1); OUTPUT_LOW(TRIGGER); // kich muc thap thi tao duoc xung SET_TIMER1(0); //chuong trinh ngat reset ve WHILE(!(INPUT(ECHO))); SETUP_TIMER_1(T1_INTERNAL); } WHILE(INPUT(ECHO)); KC1 = GET_TIMER1(); SETUP_TIMER_1(T1_DISABLED); // khong cho doc gia tri timer VOID SETUP_SRF04() { SETUP_TIMER_1(T1_DISABLED); ENABLE_INTERRUPTS(GLOBAL); ENABLE_INTERRUPTS(INT_TIMER1); K=1; } // cho phép ngat // cho phep ngat timer VOID DOC_SRF04() { KC2=0; // reset gia tri FOR(I=0;I

Ngày đăng: 01/07/2023, 09:36

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

  • Đang cập nhật ...

Tài liệu liên quan