CHƯƠNG 1. SƠ ĐỒ KHỐI VÀ LINH KIỆN SỬ DỤNG TRONG HỆ THỐNG 1.1 Sơ đồ khối CẢM MẠCH PHÁT HIỆN BIẾN ĐIỂM ZERO NGUỔN 220VAC NGUỒN XUNG 24VDC HIỂN THỊ BỘ ĐIỀU KHIỂN 2 LCD ĐÈN BÁO MẠCH TRUNG TÂM PIC CÔNG SUẤT KHỐI CÀI ĐẶT C NÚT NHẤN D LÒ SẤY BĂNG ĐC QUẠT TẢI ĐẢO GIAO TIẾP UART GIAO DIỆN MÁY TÍNH Hình 1-1: Sơ đồ khối tổng quan. Giám sát và điều khiển mô hình lò sấy nông sản SVTH: Lê Văn Đức Thiện ĐỒ ÁN TỐT NGHIỆP Trang 3/80 1.2 Sơ đồ nguyên lý mạch Hình 1-2: Sơ đồ nguyên lý mạch làm việc. Giám sát và điều khiển mô hình lò sấy nông sản SVTH: Lê Văn Đức Thiện ĐỒ ÁN TỐT NGHIỆP Trang 4/80 1.3 Giới thiệu linh kiện chính sử dụng Vi Điều Khiển PIC 16F877A và AT89S52.
Hình 1-3: Mô tả các chân PIC 16F877A và AT 89S52. Trong đề tài này chọn vi điều khiển PIC16F877A và AT 89S52. PIC16F877A lập trình phục vụ công việc đọc tín hiệu nhiệt độ từ cảm biến DS18B20, xuất giá trị nhiệt độ lên LCD16x2, các nút nhấn điều khiển thiết bị tại hộp điều khiển, giao tiếp máy tính truyền nhận dữ liệu điều khiển các thiết bị. Vì trong qua trình làm số lượng chân chức năng dùng cho PIC 16F877A đã hết nên thêm một vi điều khiển AT 89S52 dùng với mục đích điều khiển đảo chiều hai Giám sát và điều khiển mô hình lò sấy nông sản SVTH: Lê Văn Đức Thiện ĐỒ ÁN TỐT NGHIỆP Trang 5/80 động cơ DC qua module L298.
Sau đây là giới thiệu qua về các chân chức năng và cách tính ngắt timer cho vi điều khiển trong quá trình làm. Vi điều khiển 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 8K x 14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte. Số PORT I/O là 5 với 33 pin I/O trên tổng số 40 chân. - Các đặc tính ngoại vi bao gồm các khối chức năng sau: + Timer0: bộ đếm 8 bít với bộ chia tần số 8 bít. + Timer1: bộ đếm 16 bít với bộ chia tần + Timer2: bộ đếm 8 bít với bộ chia tần số, bộ postcaler.
+ Hai bộ Capture/ so sánh/ điều chế độ rộng xung CCP1, CCP2. + Các chuẩn giao tiếp nối tiếp SSP, SPI và I2C. + Chuẩn giao tiếp nối tiếp USART với 9 bít địa chỉ. + Cổng giao tiếp song song PSP với các chân điều khiển RD, WR, CS ở bên ngoài.
- Các kênh Analog: + 8 kênh chuyển đổi ADC 10 bít, hai bộ so sánh, ngoài ra có thể cấu hình bằng câu lệnh lên 13bit, 16bit trong code. - Bên cạnh đó là một vài đặc tính khác của vi điều khiển như: + Bộ nhớ flash với khả năng ghi xóa được 100.000 lần, tiện cho sửa code + Bộ nhớ EEPROM với khả năng ghi xóa được 1. + Dữ liệu bộ nhớ EEPROM 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 Pickit2.
+ Watchdog Timer với bộ dao động trong. + Chức năng bảo mật mã chương trình bằng khóa chip trong Pickit2.exe Giám sát và điều khiển mô hình lò sấy nông sản SVTH: Lê Văn Đức Thiện ĐỒ ÁN TỐT NGHIỆP Trang 6/80 Hình 1-4: Sơ đồ khối tổ chức của Timer0. Vì trong chương trình sử dụng các ngắt Timer, ngắt ngoài RB, RB0, EXT ngắt truyền nhận EUSART - #INT_RDA. Cho nên hiểu và tính toán các ngắt này rất quan trọng trong quá trình lập trình.5 Thanh ghi INTCON thanh ghi phục vụ các ngắt.
Bảng 1-1: Tóm tắt chức năng các bit trong thanh ghi INTCON. Ví dụ muốn lập trình ngắt khi có sự kiện nút nhấn trên chân RB ta cần cho RBIE=1 và GIE =1 ; chiếu lên bảng1-1 sẽ thấy rõ chức năng câu lệnh. Sau đó ta chỉ cần xây dựng mạch kết nối linh kiện nút nhấn tới các chân RB tương ứng với PIC để lập trình sự kiện ngắt. Đối với ngắt timer, quan tâm đến bộ chia tần và bộ chia trước.
Giám sát và điều khiển mô hình lò sấy nông sản SVTH: Lê Văn Đức Thiện ĐỒ ÁN TỐT NGHIỆP Trang 7/80 Trên hình 1.4 PS2, PS1, PS0 chính là bộ chia trước (prescaler asigment) PSA: nếu bít này bằng 1 thì sử dụng WDT, và 0 là dùng cho timer0. Tosc: là bit cho phép timer0 hoạt động ở chế độ nào: Counter đếm xung thì bit =1 bằng 0 thì định thời. Bảng 1-2: Liệt kê bộ chia trước của Timer. Vì Timer0 là timer 8 bit nên sau khi cấu hình ngắt timer0 bắt đầu đếm giá trị sẽ chạy từ 0 ÷ 255, theo xung nhịp của PIC.
Nếu định thời tràn thì cờ ngắt T0IF =1 chưa tràn thì T0IF=0. Ví dụ: Muốn hẹn Timer0 làm một công việc gì đó sau 5(ms). Với thạch anh là 20Mhz vậy fosc =20Mhz, sau khi đi qua PIC sẽ bị chia 4 còn lại 5Mhz như hình 1.4 1 bên trên, Tosc= 0, 2us đây chính là chu kì làm việc còn lại của thạch anh. 5Mhz + Ta chọn bộ chia trước cho timer0 là: 1:256.
+ Gọi tout là thời gian muốn tạo =5(ms) =5000 (us) , fout =1/5 (KHz) + Câu lệnh: Setup_timer0(N) = tout. 4 Giá trị N cần tìm là: tout = Bộ chia trước*(độ phân giải Timer0 –N )* =5000us. fosc 4 5000us 5000=256*(256-N)* => N = 256 = 158,3 : 20 (4 / 20) Đây là giá trị cần nạp cho bộ đếm Timer0, sau khi đếm 158, 3 + 1 lần sẽ tạo tràn Timer0=5ms, cộng thêm 1 lần cho tràn hẳn, sau đó ta reset timer lại là ổn. Setup_timer0(159) 5ms.
Giám sát và điều khiển mô hình lò sấy nông sản SVTH: Lê Văn Đức Thiện ĐỒ ÁN TỐT NGHIỆP Trang 8/80 1.4 Cảm Biến Nhiệt Độ DS18B20 Hình 1-5: Cảm biến nhiệt độ DS18B20 dạng dây. Sơ đồ nguyên lý kết nối giữa vi điều khiển và cảm biến như hình 1-2 Thông số kỹ thuật của DS18B20: + Điện áp sử dụng: 3.5 độ từ -10 độ đến 85 độ + Nhiệt độ sử dụng: -55 đến 125 độ + Độ phân giải có thể lựa chọn 9-12 bit + Sử dụng 1-Wire interface - chỉ cần một chân giải tín hiệu số đầu vào vi điều khiển để xử lý tín hiệu của nhiều cảm biến sử dụng 1 Wire. + Nhiều cảm biến cùng kết nối vào một chân lấy dữ liệu số. Màu dây kết nối: Dây đỏ - VCC Dây đen - GND Dây vàng -DATA + Ống thép không gỉ đường kính 6mm, dài 50mm + Đường kính: 4mm.
+ Chiều dài hiện tại từ nơi cần đo đến hộp vi điều khiển là 1m hoặc có thể nối dài thêm. Giám sát và điều khiển mô hình lò sấy nông sản SVTH: Lê Văn Đức Thiện ĐỒ ÁN TỐT NGHIỆP Trang 9/80 1.5 Giao tiếp UART - chuẩn RS232 (COM) và Module Blutooth HC05 1.1 Truyền thông nối tiếp UART (Universal Asynchronous serial Reveiver and Transmitter (UART)) Vấn đề giao tiếp giữa PC và vi điều khiển rất quan trọng trong các ứng dụng điều khiển, đo lường. có hai cách ghép nối phổ biến là kiểu song song và nối tiếp. Cả hai đều có những ưu và nhược điểm riêng: Ghép nối theo kiểu song song thì cần nhiều ngõ truyền nhận cùng lúc, ưu điểm tốc độ nhanh xong nhiều ngõ, còn theo kiểu nối tiếp cùng một lượng data truyền nhận thì nối tiếp chỉ cần một đường truyền 8 bit nhưng phải cấu hình trước theo chuẩn khung Farm truyền nhận trước.
Hình 1-6: a: truyền nhận song song; b: truyền nhận nối tiếp. Vì tính ưu điểm tiết kiệm chân truyền nhận tín hiệu chọn cách ghép nối tiếp qua cổng nối tiếp. UART và RS232 là một trong những kỹ thuật được sử dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính, kết nối nhiều nhất là 2 thiết bị, chiều dài kết nối tối đa cho phép để đảm bảo dữ liệu là 12.5 đến 25m, tốc độ 20 kbit/s đôi khi là tốc độ 115kbit/s với một số thiết bị đặc biệt. Chuẩn giao tiếp UART khác với RS232 ở mức điện áp: UART thể hiện mức logic 0 (0V) và logic 1 là từ (3-5V), còn với RS232 là (-12V-3V) là mức 1 và (+3V+12V) là mức 0.
Giám sát và điều khiển mô hình lò sấy nông sản SVTH: Lê Văn Đức Thiện ĐỒ ÁN TỐT NGHIỆP Trang 10/80 Hình 1-7: Giao tiếp truyền thông RS232 và sơ đồ nguyên lý. Chức năng của các chân của cổng Com DB9: +Chân 1: Data Carrier Detect (DCD): Phát tín hiệu mang dữ liệu. +Chân 2: Receive Data (RxD): Nhận dữ liệu. +Chân 3: Transmit Data (TxD): Truyền dữ liệu.
+Chân 4: Data Termial Ready (DTR): Đầu cuối dữ liệu sẵn sàng được kích hoạt bởi bộ phận khi muốn truyền dữ liệu. +Chân 5: Singal Ground (SG): Mass của tín hiệu. +Chân 6: Data Set Ready (DSR): Dữ liệu sẵn sàng, được kích hoạt bởi bộ truyền khi nó sẵn sàng nhận dữ liệu. +Chân 7: Request to Send: Yêu cầu gửi, bộ truyền đặt đường này lên mức hoạt động khi truyền dữ liệu.
+Chân 8: Clear To Send (CTS): Xóa để gửi, bộ nhận đặt đường này lên mức kích hoạt động để thông báo cho bộ truyền là nó nhận tín hiệu. +Chân 9: Ring Indicate (RI): Báo chuông cho biết là bộ nhận đang nhận tín hiệu rung chuông. Ở đây chỉ cần 2 chân tín hiệu của cổng Com Rx (2), và chân Tx(3) để nhận truyền tín hiệu các chân còn lại sẽ không kết nối. Giám sát và điều khiển mô hình lò sấy nông sản SVTH: Lê Văn Đức Thiện ĐỒ ÁN TỐT NGHIỆP Trang 11/80 1.2 So sánh truyền đồng bộ và bất đồng bộ trong truyền nối tiếp Hiểu được bản chất của truyền đồng bộ và bất đồng bộ: “Đồng bộ” để chỉ sự “báo trước” trong quá trình truyền.
Ví dụ thiết bị 1 (TB1) kết nối với với thiết bị 2 (TB2) bởi 2 đường, một đường dữ liệu và 1 đường xung nhịp. Cứ mỗi lần TB1 muốn gửi 1 bit dữ liệu đi, thì TB1 phải điều khiển đường xung nhịp chuyển từ mức thấp lên mức cao báo cho TB2 sẵn sàng nhận một bit. Bằng cách “báo trước” cách truyền nhận này dễ dàng và ít “rủi ro” trong quá trình truyền. Tuy nhiên, cách truyền này đòi hỏi ít nhất 2 đường truyền cho 1 quá trình (send or receive).
“Không đồng bộ” chỉ cần một đường truyền cho một quá trình. “Khung dữ liệu” đã được chuẩn hóa bởi các thiết bị nên không cần đường xung nhịp báo trước dữ liệu đến.