36
LỜI NÓI ĐẦU Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, thế giới của chúng ta đã và đang một ngày thay đổi, văn minh hơn, hiện đại hơn. Sự phát triển của kỹ thuật điện tử đã tạo ra hàng loạt những thiết bị với những đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ … là những yếu tố rất cần thiết góp phần cho hoạt động của con người đạt hiệu quả cao. Là một nước đang phát triển, các vấn đề liên quan đến khoa học công nghệ lại trở nên cần thiết hơn. Chính vì vậy, trong những năm qua, nước ta đã chú trọng và đầu tư rất nhiều đến các ngành công nghệ cao, đặc biệt là lĩnh vực tự động hóa, vi xử lý, vi điều khiển … Và một trong những ứng dụng vào đời sống của công nghệ điện tử là một mạch điện tử có thể giao tiếp với máy tính, được điều khiển trực tiếp trên board mạch hay điều khiển gián tiếp thông qua một giao diện được lập trình và cài đặt trên máy tính. Vì vậy mà nhóm quyết định chọn đề tài “ Thiết kế mạch đo nhiệt độ và độ ẩm hiển thị trên LCD và giao tiếp với máy tính qua cổng COM”. Mạch có các chức năng như đọc và gửi nhiệt độ và độ lên Vi điều khiển xử lý dữ liệu để hiển thị trên LCD và trên giao diện của máy tính, dữ liệu sẽ được cập nhật khi có sự thay đổi từ môi trường. Mạch còn có một Relay có thể điều khiển thiết bị khi nhiệt độ và độ ẩm thay đổi. MỤC LỤC CHƯƠNG 1:DẪN NHẬP 1.1 Mục đích chọn đề

Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

Embed Size (px)

Citation preview

Page 1: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

LỜI NÓI ĐẦU

Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, thế giới của chúng ta đã và đang một ngày thay đổi, văn minh hơn, hiện đại hơn. Sự phát triển của kỹ thuật điện tử đã tạo ra hàng loạt những thiết bị với những đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ … là những yếu tố rất cần thiết góp phần cho hoạt động của con người đạt hiệu quả cao.

Là một nước đang phát triển, các vấn đề liên quan đến khoa học công nghệ lại trở nên cần thiết hơn. Chính vì vậy, trong những năm qua, nước ta đã chú trọng và đầu tư rất nhiều đến các ngành công nghệ cao, đặc biệt là lĩnh vực tự động hóa, vi xử lý, vi điều khiển …

Và một trong những ứng dụng vào đời sống của công nghệ điện tử là một mạch điện tử có thể giao tiếp với máy tính, được điều khiển trực tiếp trên board mạch hay điều khiển gián tiếp thông qua một giao diện được lập trình và cài đặt trên máy tính. Vì vậy mà nhóm quyết định chọn đề tài “ Thiết kế mạch đo nhiệt độ và độ ẩm hiển thị trên LCD và giao tiếp với máy tính qua cổng COM”. Mạch có các chức năng như đọc và gửi nhiệt độ và độ lên Vi điều khiển xử lý dữ liệu để hiển thị trên LCD và trên giao diện của máy tính, dữ liệu sẽ được cập nhật khi có sự thay đổi từ môi trường. Mạch còn có một Relay có thể điều khiển thiết bị khi nhiệt độ và độ ẩm thay đổi.

MỤC LỤCCHƯƠNG 1:DẪN NHẬP 1.1 Mục đích chọn đề tài………………………………………………… 1.2 Yêu cầu………………………………………………………………. 1.2 Giới hạn………………………………………………………………. CHƯƠNG 2:TỔNG QUAN HỆ THỐNG 2.1 Cơ sở lý thuyết………………………………………………………. 2.1.1 Truyền thông RS232………………………………………….. 2.1.2 Truyền thông RS485………………………………………….. 2.1.3 Truyền thông UART…………………………………………... 2.2 Sơ đồ khối…………………………………………………………… 2.3 Lựa chọn linh kiện…………………............................................... 2.3.1 PIC16F877A…………………………………………………… 2.3.2 Màn hình LCD………………………………………………… 2.3.3 IC LM35………………………………………………………… 2.3.4 Cảm biến HS1101……………………………………………..

Page 2: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

2.4 Sơ đồ nguyên lý…………………………………………………….. 2.4.1 Khối nguồn…………………………………………………….. 2.5.2 Khối Vi xử lý…………………………………………………… 2.5.3 Khối đo nhiệt độ và độ ẩm……………………………………. 2.5.4 Khối relay……………………………………………………….. CHƯƠNG 3:THIẾT KẾ PHẦN CỨNG 3.1 Sơ đồ mạch in………………………………………………………CHƯƠNG 4:THIẾT KẾ PHẦN MỀM 4.1 Code chương trình…………………………………………………CHƯƠNG 5: KẾT LUẬN 5.1 Kết quả thi công……………………………………………………. 5.2 Hạn chế……………………………………………………………… 5.3 Hướng phát triển……………………………………………………

CHƯƠNG 1:DẪN NHẬP

1.1 .Mục đích chọn đề tài

Ngày nay do công nghệ ngày càng phát triển, nhu cầu điều khiển thiết bị bằng tay hoặc tự động ngày càng cao. Nhóm thực hiện đề tài đo nhiệt độ hiển thị trên LCD giao tiếp với máy tính qua cổng COM với mục đích thực hành một trong những ứng dụng quan trọng của ngành công nghiệp điều khiển thiết bị. Đề tài mang tính hiện thực và giúp chúng tôi hiểu rõ hơn về chức năng của các linh kiện thực hiện trong mạch.

1.2. Yêu cầu Thiết kế phần cứng mạch đo nhiệt độ và độ ẩm hiển thị LCD giao tiếp máy tính qua cổng COM để người sử dụng có thể điều khiển thiết bị thông qua giao diện trên máy tính.

1.3 .Giới hạn Sản phẩm của nhóm thực hiện đề tài còn nhiều thiếu sót, vì mạch chỉ thực hiện những chức năng đơn giản trong thực tế. Sản phẩm vẫn chưa thể hiện được chức năng điều khiển thiết bị bật hoặc tắt theo giờ đặt trước và những chức năng phức tạp khác.

CHƯƠNG 2:TỔNG QUAN HỆ THỐNG

Page 3: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

2.1 CƠ SỞ LÝ THUYẾT

2.1.1 Chuẩn giao tiếp RS232( cổng COM ) Chuẩn RS232 sử dụng phương thức truyền không đối xứng, sử dụng tín hiệu điện áp chênh lệnh giữa một dây tín hiệu và đất.Mức điện áp được sử dụng giao động -15v đến +15v. Mức logic 1 tương đương với điện áp từ -3v đến 15v, mức logic 0 tương đương với điện áp từ 3v đến 15v. Tốc độ làm truyền nhận khoảng 20KPS và phụ thuộc vào khoảng cách. Công suất phát tương đối thấp nhờ vào trở kháng đầu vào hạn chế.Chuẩn RS232 loại 9 chân:

Giao diện chuẩn RS232 loại 9 chân ( cổng COM)DCD : Phát hiện sóng mang.DSR : sẵn sàng làm việc.RXD :nhận dữ liệu.RTS : yêu cầu truyền dữ liệu.TXD : Truyền dữ liệu.CTS : sẵn sàng nhận dữ liệu.DTR : sẵn sàng làm việc.RI : Báo chuông.GND : 0V

Hình 1.1: Giao diện cổng COM

Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232, được gọi là cổng COM. Chúng được dùng ghép nối cho chuột, modem, thiết bị đo lường…Khi cần dùng nhiều cổng hơn ta có thể lắp đặt các card mở rộng trên đó có thêm một đến hai cổng Com. Có hai dạng cổng COM: cổng COM 25 chân và cổng COM 9 chân. Ưu điểm giao diện nối tiếp RS232:

- Khả năng chống nhiễu của các cổng nối tiếp cao.- Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện.- Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua cổng nối

tiếp.

Page 4: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

Hình 1.2: Thứ tự các chân cổng COM

Bảng 1.1: Chức năng các chân cổng COMDB-9 Tên Ký hiệu Chức năng

1Data CarrierDetect

DCD Phát hiện tín hiệu mang dữ liệu

2 Receive Data RxD Nhận dữ liệu

3 Transmit Data TxD Truyền dữ liệu

4Data Terminal Ready

DTRĐầu cuối dữ liệu sẵn sàng, được kích hoạt bởi bộ nhận khi muốn truyền dữ liệu

5 Singal Ground SG Mass của tín hiệu

6 Data Set Ready DSRDữ 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

7 Request to Send RTSYêu cầu gửi, bộ truyền đặt đường này lên mức hoạt động khi sẵn sàng truyền dữ liệu

8 Clear To Send CTS

Xóa để gửi, bộ nhận đặt đường này lên mức hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận dữ liệu.

9 Ring Indicate RIBáo chuông, cho biết là bộ nhận đang nhận tín hiệu rung chuông.

Những đặc điểm cần lưu ý trong chuẩn RS232: Trong chuẩn RS232, các giới hạn trên đối với mức logic 0 và logic 1 là ±12V.

Chuẩn RS232 ngày nay đang được áp dụng còn cố định trở kháng tải trong phạm vi từ 3000 đến 7000.

Page 5: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

Mức logic 1 có điện áp nằm trong khoảng –3V đến –12V, mức logic 0 từ +3V đến +12V.- Trở kháng tải phải lớn hơn 3000 nhưng phải nhỏ hơn 7000.

- Tốc độ truyền/nhận dữ liệu cực đại là 100kbps (ngày nay có thể đạt được 200 kbps).

- Các lối vào phải có điện dung nhỏ hơn 2500pF- Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối

tiếp RS232 không thể vượt quá 15 m nếu không sử dụng Modem.Các giá trị tốc độ truyền dữ liệu chuẩn là : 50, 75, 110, 150, 300, 600, 1200,

2400,4800,9600,19200,28800……56600,115200bps

2.1.2 Chuẩn giao tiếp RS485

-Ta dùng cổng nối tiếp (cổng COM) để thực hiện giao tiếp giữa PC với các Kit Vi xử lí. Các nhà sản xuất máy tính đã chuẩn hoá giao tiếp cho cổng nối tiếp (cổng COM) là chuẩn RS-232. Tuy nhiên chuẩn RS-232 chỉ cho phép ghép nối ĐIỂM – ĐIỂM, do đó không thể áp dụng cho mạng cần thiết kế. Việc chọn một chuẩn truyền thông khác là cần thiết, và sử dụng chuẩn RS-485 là chọn lựa hợp lý.

-Mạng sử dụng chuẩn RS-485 rất đa dạng: ta có thể ghép nối các PC với nhau, hoặc giữa PC với các Vi xử lí, hoặc bất kì thiết bị truyền thông nối tiếp bất đồng bộ nào. Khi so sánh với Ethernet và những giao diện truyền thông theo những chuẩn khác thì giao diện RS-485 đơn giản và giá thành thấp hơn nhiều.

Một số ưu điểm của RS-485

- Giá thành thấp.

-Các bộ điều khiển Driver và bộ nhận Receiver không đắt và chỉ yêu cầu cung cấp nguồn đơn +5V để tạo ra mức điện áp vi sai tối thiểu 1.5V ở ngõ ra vi sai.

-Khả năng nối mạng. RS-485 là một giao diện đa điểm, thay vì giới hạn ở hai đơn vị, RS-485 là giao diện có thể cung cấp cho việc kết nối có nhiều bộ truyền và nhận. Với bộ nhận có trở kháng cao kết hợp với bộ repeater, RS-485 có thể cho kết nối lên đến 256 node.

- Khả năng kết nối: RS-485 có thể truyền xa 1200m, tốc độ lên đến 10Mbps. Nhưng 2 thông số này không xảy ra cùng lúc. Khi khoảng cách truyền tăng thì tốc độ baud giảm. Ví dụ: khi tốc độ là 90Kbps thì khoảng cách là 1200m, 1Mbps thì khoảng cách là 120m, còn tốc độ 10Mbps thì khoảng cách là15m.

Page 6: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

- Sở dĩ RS-485 có thể truyền trên một khoảng cách lớn là do chúng sử dụng đường truyền cân bằng. Mỗi một tín hiệu sẽ truyền trên một cặp dây, với mức điện áp trên một dây là điện áp bù (trái dấu) với điện áp trên dây kia

Những đặc điểm cần lưu ý trong chuẩn RS485:- RS-485 là chuẩn truyền vi sai, sử dụng hai dây cân bằng.

-RS-48 RS-485 có thể truyền xa 1200m, tốc độ lên đến 10Mbps. Nhưng 2 thông số này không xảy ra cùng lúc. Khi tốc độ truyền tăng thì tốc độ baud giảm là chuẩn truyền vi sai, sử dụng hai dây cân bằng.

-Vì có khả năng chống nhiễu tốt như vậy nên chuẩn RS-485 có khả năng truyền dữ liệu trên một khoảng cách xa.

- Điện áp vi sai ngõ ra từ +1.5V đến +5V nếu là logic mức 0 và mức logic 1 sẽ là từ -1.5V đến -5V.

- Một đặc điểm quan trọng của RS-485 là có thể cung cấp đến 32 Drivers và Receivers trên cùng một đường truyền. Điều này cho phép tạo thành một mạng cục bộ. Để có khả năng như vậy, ngõ ra Driver RS-485 phải là ngõ ra 3 trạng thái. Và do đó một Slave sẽ ở trạng thái tổng trở cao khi nó không được chọn để giao tiếp cùng với Master.

- Tryền bán song công (Half _ Duplex), nghĩa là tại một thời điểm bất kì trên dây truyền chỉ có thể là một thiết bị hoặc là truyền hoặc là nhận.

Mạch chuyển đổi RS232 sang RS485

SƠ ĐỒ CHÂN IC MAX485

- Chân 8: chân cấp nguồn Vcc = 5v.

- Chân 5: GND.

Page 7: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

- Chân 6 (A) và 7 (B): là 2 ngõ điện áp Va và Vb của chuẩn RS485.

- Chân 1 (RO): ngõ ra điện áp TTL.

- Chân 2 (RE\): cho phép chuyển đôi từ RS485 sang TTL.

- Chân 3 (DE): cho phép chuyển đổi từ TTL sang RS485.

- Chân 4: ngõ vào điện áp TTL.

2.1.3 Truyền thông UART của PIC 16F877A

-UART (Universal Synchronous Asynchronous Receiver Transmitter) là một mạch tích hợp được sử dụng trong việc truyền dẫn dữ liệu giữa máy tính và thiết bị ngoại vi thông qua cổng nối tiếp.

Đối với UART ta cần quan tâm đến các thông số sau:

-Tốc độ Baud thường là 9600

-Số bit dùng để truyền data từ 5 đến 8 (thường là 8)

-Bit stop 1 hay 2 (thường chọn 1)

-Bit chẵn lẻ

5 thanh ghi quan trọng:

Page 8: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

2 thanh ghi chức năng TXSTA, RCSTA 2 thanh ghi dữ liệu RCREG, TXREG Thanh ghi tốc độ Baud: SPBRG

Thanh ghi TXSTA

CSRC: Clock Source Select bitChế độ bất đồng bộ: không quan tâmChế độ đồng bộ: 1->chế độ Master( clock từ BRG) 0->chế độ Slave( clock từ bên ngoài)

TX9 : 9-bit Transmit Enable bit: chọn chế độ truyền 9 bit: ( =1: 9 bit, =0: 8 bit )TXEN : Transmit Enable bit =1: cho phép truyền , =0: cấmSYNC : USART Mode Select bitChọn chế độ truyền đồng bộ hay không đồng bộ( =1: đồng bộ, =0: không đồng bộ )BRGH : High Baud Rate Select bitChỉ hoạt động ở chế độ bất đồng bộ: chọn tốc độ cao hay thấp ( =1 HIGH, =0: LOW )TRMT : Transmit Shift Register Status bitbít báo trạng thái của bộ đệm: =1: TSR rỗng( dữ liệu đã được truyền xong ), =0: TSR đầy ( dữ liệu còn trong bộ đệm của UART )TX9D : 9th bit of Transmit Data, can be Parity bitgiá trị của bít thứ 9 trong chế độ truyền 9 bit.

Thanh ghi RCSTA

Bit 7 SPEN Serial Port Enable bit( = 1 Cho phép cổng giao tiếp USART )

Bit 6 RX9 9-bit Receive Enable bit( = 1 nhận 9 bit dữ liệu, = 0 nhận 8 bit dữ liệu)

Bit 5 SREN Single Receive Enable bitỠ chế độ USART bất đồng bộ: bit này không cần quan tâm.

Page 9: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

Ở chế độ USART Master đồng bộ:( = 1 cho phép chức năng nhận 1 byte dữ liệu (8 bit hoặc 9 bit))

Bit 4 CREN Continous Receive Enable bitỞ chế độ bất đồng bộ:( = 1 cho phép nhận 1 chuỗi dữ liệu liên tục)Ở chế độ đồng bộ:(= 1 cho phép nhận dữ liệu cho tới khi xóa bit CREN, = 0 không cho phép nhận chuỗi dữ liệu)

Bit 3 ADDEN Address Detect Enable bitỞ chế độ USART bất đồng bộ 9 bit

ADDEN = 1 cho phép xác nhận địa chỉ, khi bit RSR<8> được set thì ngắt được cho phép thực thi và giá trị trong buffer được nhận vào.ADDEN = 0 không cho phép xác nhận địa chỉ, các byte dữ liệu được nhận vào và bit thứ 9 có thể được sử dụng như là bit parity.

Bit 2 FERR Framing Eror bit( = 1 xuất hiện lỗi “Framing- sai bit Stop” trong quá trình truyền nhận dữ liệu

Bit 1 OERR Overrun Error bit(= 1 xuất hiện lỗi “Overrun- tràn”)

Bit 0 RX9DBit này chứa bit dữ liệu thứ 9 của dữ liệu truyền nhận

Thanh ghi TXREG , RCREG , SPBRG

Page 10: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

Quá trình nhận dữ liệu :Nhận biết lúc nào có dữ liệu truyền tới:

Kiểu Polling: liên tục kiểm tra cờ RCIF( thanh ghi PIR1) nếu =1 thì đọc dữ liệu

Kiểu dùng ngắt: được thiết lập bằng cách cho RCIE= 1 để cho phép ngắt. Tức là mỗi khi có dữ liệu truyền tới RCREG thì sinh ra một ngắt

- Khởi tạo tốc độ baud: ở thanh ghi SPBRG.- Cho phép quá trình truyền không đồng bộ bắng cách thiết lập SPEN = 1, SYNC= 0- Cho phép ngắt quá trình nhận dữ liệu: RCIE=1- Cho phép nhận dữ liệu : CREN = 1- Cho phép ngắt toàn cục băng việc GIE =1, PEIE = 1 ( GIE, PEIE trong thanh ghi INTCON )- Xử lý các phần khác chương trình khi có ngắt xảy ra thì xử lý dữ liệu Quá trình nhận dữ liệu:- Khởi tạo tốc độ baud: ở thanh ghi SPBRG- Cho phép quá trình truyền không đồng bộ bắng cách thiết lập SPEN = 1, SYNC= 0- Cho phép truyền dữ liệu bằng cách thiết lập bít TXEN = 1- Khi cần truyền dữ liệu chỉ cần Load dữ liệu đó lên TXREG

2.2 SƠ ĐỒ KHỐI

Page 11: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

2.3 Lựa chọn linh kiện 2.3.1 PIC16F877A

Bộ vi điều khiển viết tắc là Micro-controller là mạch tích hợp trên một chíp có thể lập trình được, dùng để điều khiển hoạt động của hệ thống. Theo các tập lệnh của người lập trình, bộ vi điền khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo thời gian và tiến hành đóng mở một cơ cấu nào đó. Trong các thiết bị điện và điện tử các bộ vi điều khiển hoạt động của tivi, máy giặt, đầu đọc laser, lò vi ba, điện thoại…Trong hệ thống sản xuất tự động, bộ vi điều khiển sử dụng trong robot, các hệ thống đo lường giám sát. Các hệ thống càng thông minh thì vai trò của vi điều khiển ngày càng quan trọng.Trong đề tài này bộ vi điều khiển có tích hợp PIC 16F877A. Hiện nay có khá nhiều dòng PIC và có khác biệt về phần cứng, nhưng chúng ta có thể điểm qua một vài nét như sau:

Sơ đồ chân PIC16F877A

Page 12: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

Một số đặc tính của vi điều khi - Là CPU 8/16 bit, xây dựng theo kiến trúc Harvard có sửa đổi. - Có bộ nhớ Flash và Rom có thể tùy chọn từ 256 byte đến 256 Kbyte. -Có các cổng xuất – nhập ( I/O ports). -Có timer 8/16 bit. -Có các chuẩn giao tiếp nối tiếp đồng bộ/không đồng bộ USAR -Có các bộ chuyển đổi ADC 10/12 bit. -Có các bộ so sánh điện áp ( Voltage Comparators). -Có các khối Capture/Compare/PWM. -Có hỗ trợ giao tiếp LCD. -Có MSSP Peripheral dùng cho các giao tiếp I2C, SPI, và I2S. -Có bộ nhớ nội EEPROM – có thể ghi xóa lên tới một triệu lần. -Có khối điều khiển động cơ, đọc Encoder.- -Có hỗ trợ giao tiếp USB. -Có hỗ trợ điều khiển Ethernet. -Có hỗ trợ giao tiếp CAN.

2.3.2 Màn hình LCD

LCD 16x2 là một màn hình LCD đơn sắc, hiển thị được 2 dòng với khả

năng hiện thị được các kí tự trong bản mã ASCII mở rộng. Nó cho phép hiển thị

dữ liệu trực tiếp trên bản mạch chúng ta đã chế tạo mà không cần kết nối tới máy

tính. Việc đấu nối thiết bị này hết sức đơn giản. Sau đây là bảng thống kê số chân

và chức năng của nó :

Page 13: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

Các chân LCD

2.3.3 IC LM35

-LM35 là cảm biến có mạch tích hợp cảm biến nhiệt độ chính xác cao.-LM35 là IC cảm biến có mạch tích hợp bên trong

Cấu tạo bên ngoài: gồm

- Bộ phận chính là đầu cảm biến, được làm từ chất bán dẫn, khi đo nhiệt độ thì

bộ phận này sẽ tiếp xúc trực tiếp với môi trường.

- Chân gồm 3 chân:

+ Vs là chân được cấp nguồn (4V- 30V)

+ Vout là chân điện thế ra

+ GND là chân mass(nốiđất)

Số chân Tên Chức năng1 Vss GND2 Vcc +5V (nguồn cấp)3 Vo Điều chỉnh độ tương phản4 RS Chọn Dữ liệu(1)/Lệnh(0)5 R/W Đọc(1)/Ghi(0)6 E Cho phép (Enable)

7 đến 14 D0 đến D7 Chân vào/ra dữ liệu D0 đến D715 A Anode đèn nền16 K Cathode đèn nền

Page 14: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

Cấu tạo trong: có mạch tích hợp bên trong như hình gồm:

- A1, A2 là các IC

- R1, R2 là các điện trở

- Q1, Q2 là transitor

- Có 1 diod

 2.3.4 Cảm biến HS1101

-Đây là một cảm biến độ ẩm kiểu điện dung ( thực chất là 1 cái tụ đặc biệt. Độ ẩm RH thay đổi sẽ khiến điện dung thay đổi theo ).-Điện dung hoàn toàn tuyến tính với %RH-Đầu ra : Điện dung -Nguồn nuôi : 5 -10 VDC.-Dải đo : 1 - 99%RH-Sai số : 5% ở 25 độ C . Nếu hoạt động ở nhiệt độ khác thì sai số có thể thêm 2% nữa.Cách lấy tín hiệu ra : Vì đầu ra là điện dung nên ta không thể mắc trực tiếp vào chân vi điều khiển được. Ta sẽ thiết kế bộ chuyển đổi từ C sang F để đo. Có 2 cách biến đổi từ điện dung sang tầnsố và tần số này sẽ đi vào các chân ngắt ngoài của vi điều khiển. Cách 1 : Nắp thêm điện trở R vào đầu ra của cảm biến để tạo thành mạch dao động RC (theo Datasheet)

Page 15: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

2.4 Sơ đồ nguyên lý 2.4.1 Khối nguồn

Page 16: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

2.4.2 Khối Vi xử lý

2.4.3 Khối đo nhiệt độ và độ ẩm

Page 17: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

2.4.4 Khối Relay

Page 18: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

CHƯƠNG 3:THIẾT KẾ PHẦN CỨNG

Page 19: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

3.1 Sơ đồ mạch in

CHƯƠNG 4:THIẾT KẾ PHẦN MỀM

4.1 Code chương trình

CODE CHO VI XỬ LÝ

#include "Trans_T_H.h"

#define LCD_ENABLE_PIN PIN_B3 ////

#define LCD_RS_PIN PIN_B1 ////

#define LCD_RW_PIN PIN_B2 ////

#define LCD_DATA4 PIN_B4 ////

#define LCD_DATA5 PIN_B5 ////

#define LCD_DATA6 PIN_B6 ////

Page 20: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

#define LCD_DATA7 PIN_B7

#include <lcd.c>

unsigned int16 time_data[10];

unsigned int8 cap_cnt;

#int_TIMER1

void TIMER1_isr(void)

{

}

#int_CCP1

void CCP1_isr(void)

{

if(++cap_cnt > 9) cap_cnt = 0;

time_data[cap_cnt] = get_timer1();

set_timer1(0);

}

#int_TIMER0

void TIMER0_isr(void)

{

}

Page 21: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

void main()

{

lcd_init();

setup_adc_ports(AN0);

setup_adc(ADC_CLOCK_DIV_2);

//setup_psp(PSP_DISABLED);

//setup_spi(SPI_SS_DISABLED);

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);

setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);

setup_timer_2(T2_DISABLED,0,1);

setup_ccp1(CCP_CAPTURE_RE);

setup_comparator(NC_NC_NC_NC);

setup_vref(FALSE);

enable_interrupts(INT_TIMER1);

enable_interrupts(INT_CCP1);

enable_interrupts(INT_TIMER0);

enable_interrupts(GLOBAL);

printf(lcd_putc,"\fSystem Ready");

delay_ms(1000);

char i ;

char mode = 0;

unsigned int32 time_sum,temp;

unsigned int16 adc_result;

Page 22: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

float tam,doam;

set_tris_a(0x21);

set_tris_c(0x84);

set_tris_e(0);

output_low(PIN_E0);

set_adc_channel(0);

//TODO: User Code

while(true)

{

time_sum = 0;

for(i = 0 ; i < 10; i++) time_sum += time_data[i];

time_sum /=10;//0.4 us time count

tam = (float) time_sum * 0.361; //us

tam = tam - 136.0;

if( tam < 0) tam = 0;

tam = tam * 100.0/ 30.0;

if(tam > 100) tam = 100;

doam = tam;

time_sum = (long)tam;

//time_sum = 100 - time_sum;

//$$$$$$$$$$$$$$$$$$$$$$$ 136 us 0% 166us 100%

adc_result = read_adc();

tam = (float)adc_result ;

Page 23: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

tam = tam / 1024.0 * 500; // 5000.0 / 1024.0 / 10 temperature

temp = (long)tam;

printf(lcd_putc,"\fNhiet Do :%3ld\n Do Am: %4ld",temp,time_sum);

printf("%3ld%3ld\r",temp,time_sum);

if(!input(PIN_A5))

{

if(mode == 0) mode = 1;

else mode = 0;

delay_ms(10);

while(!input(PIN_A5));

}

if((temp > 40) && (mode == 1) )

{

output_high(PIN_E0);

}

else output_low(PIN_E0);

delay_ms(1000);

}

}

CODE GIAO TIẾP VỚI MÁY TINH QUA VISUAL BASIC

Dim S As String

Dim n1 As Integer

Dim n As Integer

Page 24: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

Dim set_temp As Integer

Private Sub CmbBau_click()

With MSComm1

.Settings = CmbBau.Text & ",N,8,1"

.RThreshold = 1

.SThreshold = 0

.InBufferSize = 1024

.OutBufferSize = 1024

.InputMode = comInputModeText

.ParityReplace = ""

.CommPort = Switch(CmbComPort.Text = "COM 1", 1, CmbComPort.Text = "COM 2", 2, CmbComPort.Text = "COM 3", 3, CmbComPort.Text = "COM 4", 4, CmbComPort.Text = "COM 5", 5)

End With

End Sub

Private Sub CmbComPort_Click()

With MSComm1

.Settings = CmbBau.Text & ",N,8,1"

.RThreshold = 1

Page 25: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

.SThreshold = 0

.InBufferSize = 1024

.OutBufferSize = 1024

.InputMode = comInputModeText

.ParityReplace = ""

.CommPort = Switch(CmbComPort.Text = "COM 1", 1, CmbComPort.Text = "COM 2", 2, CmbComPort.Text = "COM 3", 3, CmbComPort.Text = "COM 4", 4, CmbComPort.Text = "COM 5", 5)

End With

End Sub

Private Sub CmdExit_Click()

Unload Me

End Sub

Private Sub Command1_Click()

If MSComm1.PortOpen = False Then

On Error GoTo OpenFalse

MSComm1.PortOpen = True

Command1.Caption = "Discon&nect"

LblLed.BackColor = &HFF0000

CmbComPort.Enabled = False

CmbBau.Enabled = False

Page 26: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

Else

MSComm1.PortOpen = False

Command1.Caption = "con&nect"

LblLed.BackColor = &HFF&

CmbComPort.Enabled = True

CmbBau.Enabled = True

End If

Exit Sub

OpenFalse:

MsgBox Err.Description & vbLf + vbCr + "Cong COM khong Ton Tai hoac dc mo boi ung dung khac"

End Sub

Private Sub Command2_Click()

TxtDisp.Text = ""

End Sub

Private Sub Form_Load()

With MSComm1

.Settings = CmbBau.Text & ",N,8,1"

.RThreshold = 1

.SThreshold = 0

.InBufferSize = 1024

.OutBufferSize = 1024

.InputMode = comInputModeText

Page 27: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

.ParityReplace = ""

.CommPort = Switch(CmbComPort.Text = "COM 1", 1, CmbComPort.Text = "COM 2", 2, CmbComPort.Text = "COM 3", 3, CmbComPort.Text = "COM 4", 4, CmbComPort.Text = "COM 5", 5)

End With

End Sub

Private Sub Label1_Click()

End Sub

Private Sub MSComm1_OnComm()

Dim S1 As String

'Dim n2 As Integer

S1 = Chr(13)

If MSComm1.CommEvent = comEvReceive Then

MSComm1.InputLen = 0

S = S + MSComm1.Input 'Nhan chuoi du lieu to VCOM

n = InStr(S, S1)

'S1 = Chr(13)

'n1 = InStr(S, S1)

'If n > 0 Or n1 > 0 Then

If n > 0 Then

'n2 = Len(S)

'If n1 > 0 And n > 0 Then

'n2 = n2 - 2

'Else

'n2 = n2 - 1

'End If

'S = Left(S, n2)

Page 28: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

TxtDisp.Text = Val(LTrim(Left(S, 3)))

Text1.Text = Val(LTrim(Right(S, 4)))

n = 0

S = ""

End If

End If

End Sub

CHƯƠNG 5:KẾT LUẬN

5.1 Kết quả thi công

Page 29: Bao Cao Do an Thiet Bi Ghep Noi Ngoai Vi

5.2 Hạn chế

Do hạn chế và kiến thức nên đề tài không tránh khỏi nhiều thiếu sót,mạch tương đối đơn giản chưa phức tạp lắm, mạch chỉ đơn giản là đo nhiệt độ,độ ẩm hiển thị nhiệt độ trên LCD và trên giao diện điều khiển. Thiếu điều khiển thiết bị khi trên máy tính khi xảy ra sự cố nhiệt độ cao hay độ ẩm cao so với mức cho phép.Chưa thể tự động điều khiển thiết bị khi nhiệt độ hay độ ẩm nằm ngoài ngưỡng cho phép

5.3 Hướng phát triển

Nhóm thực hiện đề tài sẽ cố gắng nghiên cứu các tính năng còn thiếu ở phần hạn chế đã đề ra. Nghiên cứu nhiều tính năng ngày càng hiện đại để ứng dụng vào thực tiễn. Cập nhật và ứng dụng mạch thực tiễn vào tất cả các lĩnh vực khoa học cần thiết cho đời sống cho đời sống con người ngày càng đầy đủ, tiện nghi và hiện đại hơn.

TÀI LIỆU THAM KHẢO[1]. Datasheet PIC16F877A[2]. Datasheet HS 1101

Một số tài liệu khác qua công cụ http://www.google.com.vn