Đo độ ẩm sử dụng cảm biến điện dung
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN
ĐỒ ÁN I
ĐỀ TÀI:
Đo độ ẩm sử dụng cảm biến điện dung
Nhóm 3
Lớp: Kĩ thuật Điều khiển – Tự động hóa 01 –K57
Giáo viên hướng dẫn: TS Nguyễn Thị Lan Hương
Hà Nội 26/04/2015
Trang 2MỤC LỤC
I Giới thiệu đề tài: Thiết kế mạch đo và hiển thị độ ẩm môi
trường với dải đo từ 0% đến 90%, ngưỡng nhạy 5% 4
II Phương pháp thiết kế 4
1 Sơ đồ khối: 4
2 Nguyên lý linh kiện sử dụng cho từng khối 4
2.1 Khối cảm biến: Sử dụng cảm biến độ ẩm HS1101 4
2.2 Khối chuyển đổi điện dung thành tần số: Sử dụng IC NE5555 2.3 Vi điều khiển: Sử dụng vi điều khiển AT89C52 7
2.4 Khối hiển thị: Sử dụng led 7 thanh 3 số Anot chung 10
3 Sơ đồ thiết kế chi tiết 11
3.1 Khối cảm biến và chuyển đổi từ điện dung sang tần số 11
3.2 Khối hiển thị 11
3.3 Sơ đồ toàn mạch 12
4 Đặc tính kĩ thuật của thiết bị đo 12
4.1 Thời gian đo (tính từ lúc bắt đầu đo tới khi kết quả đo được) 12 4.2 Sai số của thiết bị đo 12
III Thuật toán và chương trình 13
1 Sơ đồ thuật toán 13
1.1 Lưu đồ đo độ ẩm 13
1.2 Lưu đồ hiển thị ra LED 7 đoạn 14
2 Code chương trình 15
Trang 3DANH MỤC HÌNH
DANH MỤC HÌNH 3
Hình 2.1: Hình ảnh HS1101 5
Hình 2.2a: Hình ảnh NE555 5
Hình 2.2b: Sơ đồ chân của NE555 6
Hình 2.2c: Sơ đồ mắc cảm biến HS1101 với NE555 7
Hình 2.3a: Sơ đồ bố trí chân của 8051 7
Hình 2.3b: Sơ đồ mạch Reset 9
Hình 2.3c: Sơ đồ kết nối cổng P0 10
Hình 2.4: Sơ đồ ghép nối LED 7 thanh 11
Hình 3.1: Hình ảnh về ghép nối cảm biến HS1101 với NE555 11
Hình 3.2: Hình ảnh về sơ đồ ghép nối khối hiển thị 12
Hình 3.3: Sơ đồ toàn mạch 12
Trang 4I Giới thiệu đề tài: Thiết kế mạch đo và hiển
thị độ ẩm môi trường với dải đo từ 0% đến
90%, ngưỡng nhạy 5%
Đo độ ẩm là một vấn đề rất quan trọng trong công nghiệp cũng
như trong cuộc sống Hiểu được tầm quan trọng này, nhóm em
xin chọn đề tài “Thiết kế mạch đo và hiển thị độ ẩm môi trường
với dải đo từ 0% đến 90% , ngưỡng nhạy 5%”
Với những kiến thức đã được học trong môn vi xử lý cùng với sự
tìm tòi nghiên cứu, nhóm em đã cố gắng hoàn thành đồ án
này
Phạm vi đồ án I là đo độ ẩm môi trường, dựa trên cơ sở này có
thể phát triển thành các hệ thống đo độ ẩm lớn sử dụng trong
công nghiệp như đo độ ẩm của các quá trình trong công
Khối chuyển điện dung thành tần số sẽ chuyển đổi tín hiệu tần số đo được từ cảm biến đi vào vi điều khiến
dung thành tần
số
Vi điềukhiển
Hiển thịGiao tiếp
máy tính
Trang 5 Vi điều khiển nhận dữ liệu từ khối chuyển điện dungthành tần số, xử lý dữ liệu và đưa ra khối hiển thị đểhiển thị độ ẩm môi trường.
Khối hiển thị dùng phương pháp quét led để hiển thị
độ ẩm môi trường ra led 7 thanh
2 Nguyên lý linh kiện sử dụng cho từng khối
2.1 Khối cảm biến: Sử dụng cảm biến độ ẩm HS1101
Cảm biến HS1101 là cảm biến độ ẩm với chính xác
về độ ẩm là 2%RH Cảm biến này cơ bản là 1 tụbiến dung theo độ ẩm, giá trị của nó thay đổi theo
độ ẩm Mạch theo kèm thường là họ IC555 đểchuyển đổi từ điện dung sang tần số
Trang 6Hình 2.2a: Hình ảnh NE555
Nó cung cấp cho các nhà thiết kế mạch điện
tử với chi phí tương đối rẻ, ổn định và những mạch tổ hợp cho những ứng dụng cho đơn ổn
và không ổn định Theo kiểu đóng gói D, FE thìNE555 gồm có 8 chân Điện áp đầu vào từ 4.5V-16V, dòng tiêu thụ nhỏ hơn 15mA, công suất tiêu thụ max loại chân cắm (Dip): là 600mW NE555 dùng để tạo xung vuông, điều chế độ rộng xung, điều chế vị trí xung Trong phạm vi đồ án này, nó được dùng để tạo xung vuông
Sơ đồ chân của NE555:
Hình 2.2b: Sơ đồ chân của NE555
Sơ đồ mắc cảm biến HS1101 với NE555 như sau:
Trang 7Hình 2.2c: Sơ đồ mắc cảm biến HS1101 với NE555
Công thức tính tần số ngõ ra của NE555:
Trong đó : F là tần số ngõ ra của NE555, C@
%RH là điện dung theo độ ẩm
Ta có công thức liên hệ giữa độ ẩm và điệndung:
Trang 8Hình 2.3a: Sơ đồ bố trí chân của 8052Trong 40 chân thì có 32 chân danh cho các cổng P0, P1, P2 và P3 với mỗi cổng có 8 chân Các chân còn lại được dành cho nguồn Vcc, đất GND, các chân dao động XTAL1, XTAL2, chân Reset RST, chân cho phép cất chương trình PSEN.
Trang 9 Chân XTAL1 và XTAL2
8051 có một bộ dao động trên chíp nhưng nóyêu cầu có một xung đồng hồ ngoài để chạy
nó Một bộ dao động thạch anh sẽ được nối tớicác chân đầu vào XTAL1 (chân 19)
và XTAL2 (chân 18) Bộ dao động thạch anhđược nối tới XTAL1 và XTAL2 cũng cần hai tụgốm giá trị khoảng 30pF Một phía của tụ điệnđược nối xuống đất
Chân RST:
RST là chân số 9 - Reset Nó là một chân đầuvào có mức tích cực cao (bình thường ở mứcthấp) Khi cấp xung cao tới chân này thì bộ viđiều khiển sẽ được Reset và kết thúc mọi hoạtđộng Điều này thường được coi như là sự táibật nguồn Khi kích hoạt tái bật nguồn sẽ làmmất mọi giá trị trên các thanh ghi
Hình 2.3b: Sơ đồ mạch Reset
Chân EA
EA có nghĩa là truy cập ngoài (ExternalAccess): là chân số 31 trên vỏ kiểu DIP Nó làmột chân đầu vào và phải được nối hoặcvới Vcc hoặc GND Hay nói cách khác là nókhông được để hở
Trang 10 Chân PSEN
PSEN là chân đầu ra cho phép cất chương trình(Program Store Enable) trong hệ thống Trên viđiều khiển 8031, chương trình được cất ở bộnhớ ROM ngoài thì chân này được nối tới chân
OE của ROM
Chân ALE
Chân cho phép chốt địa chỉ ALE là chân đầu ratích cực cao Khi nối 8031 tới bộ nhớ ngoài thìcổng P0 dùng để trao đổi cả địa chỉ và dữ liệu.Hay nói cách khác 8031 dồn cả địa chỉ và dữliệu qua cổng P0 để tiết kiệm số chân.Chân ALE được sử dụng để phân kênh địa chỉ
Hình 2.3c: Sơ đồ kết nối cổng P0
Cổng P0 là đầu vào: Với các điện trở được nốitới cổng P0 nhằm để tạo nó thành cổng đầuvào thì nó phải được lập trình bằng cách ghi 1tới tất cả các bit của P0
Trang 11 Cổng P1
Cổng P1 cũng chiếm tất cả 8 chân (từ chân 1đến chân 8) nó có thể được sử dụng như đầuvào hoặc đầu ra So với cổng P0 thì cổng nàykhông cần đến điện trở treo vì nó đã có cácđiện trở kéo bên trong Trong quá trình Resetthì cổng P1 được cấu hình như một cổng đầura
Cổng P1 là đầu vào: Tương tự P0, để biếncổng P1 thành đầu vào thì nó phải được lậptrình bằng cách ghi 1 đến tất cả các bit củanó
Cổng P2
Cổng P2 cũng chiếm 8 chân (các chân từ 21đến 28) Nó có thể được sử dụng như đầu vàohoặc đầu ra, giống như cổng P1, cổng P2 cũngkhông cần điện trở kéo vì nó đã có các điện trởkéo bên trong Khi Reset, thì cổng P2 được cấuhình như một cổng đầu ra
Cổng P2 là đầu vào: Để tạo cổng P2 như đầuvào thì nó phải được lập trình bằng cách ghicác số 1 tới tất cả các chân của nó
Cổng P3
Cổng P3 chiếm tổng cộng là 8 chân từ chân
10 đến chân 17 Nó có thể được sử dụng nhưđầu vào hoặc đầu ra Cống P3 không cần cácđiện trở treo cũng như P1 và P2 Mặc dùcổng P3 được cấu hình như một cống đầu rakhi Reset, nhưng đây không phải là cách nóđược sử dụng phổ biến nhất
Các bit P3.0 và P3.1 cung cấp tín hiệu nhận vàphát dữ liệu trong truyền thông dữ liệu nốitiếp
Các bit P3.2 và P3.3 được dành cho các ngắtngoài
Bit P3.4 và P3.5 được dùng cho bộ định thời 0
và 1
Trang 122.4 Khối hiển thị: Sử dụng led 7 thanh 2 số Anot
chung:
Hình 2.4: Sơ đồ ghép nối LED 7 thanh
2.5. Khối giao tiếp với máy tính: Sử dụng LabWindows/CVI
LabWindows/CVI là 1 phần mền phát triển dựa trên môitrường C LabWindows/CVI cung cấp đầy đủ các thư viện
và thanh công cụ dùng cho việc hỗ trợ thu thập và phântích dữ liệu Bạn có thể biên dịch, debug, liên kết cácchương trình ANSI C trong môi trường phát triểnLabWindows/CVI Các ứng dụng của LabWindows/CVI baogồm: giao tiếp với người sử dụng, thu thập dữ liệu, phântích dữ liệu và điều khiển chương trình Việc giao tiếp vớingười sử dụng thông qua đồ họa, đồ thị và các điều khiển
Trang 13khác Bạn cũng có thể tạo đồ họa hiển thị, các menu, nútấn… để hiển thị dữ liệu được yêu cầu Sau khi bạn yêucầu dữ liệu, bạn phải phân tích chúng để thực hiệnformatting, scaling, signal processing và curve fitting.Cuối cùng, chương trình điều khiển sẽ phối hợp chúng lạivới nhau Chương trình sử dụng bao gồm các khối logicđiều khiển về quản lí các chức năng hỗ trợ người sử dụng
và thực hiện chương trình Để có thêm độ tin cậy và tối
ưu hóa được hiệu quả lập trình code, bạn có thể sử dụng
NI LabWindows/CVI Execution Profiler Toolkit Bạn cũng
có thể tận dụng lợi thế của công nghệ FPGA bằng cách
sử dụng FPGA-Interface C API trong LabWindows/CVI đểtạo ra một ứng dụng ANSI C giao tiếp với code FPGAđang chạy Với việc tích hợp phần cứng, người lập trình
có thể gắp thả các chức năng driver API vào code củamình, dễ dàng tạo ra các ứng dụng cho điều chỉnh đo vàI/O phần cứng Ứng dụng cụ thể của phần mềnlabWindows/CVI: cảnh báo và hiển thị nhiệt độ trong kholạnh, kho bảo quản thuốc sử dụng cảm biến nhiệt độ và
độ âm chính xác cao; giám sát các lỗi hệ thống trongtrong công nghiệp, đưa ra các cảnh báo tức thời nhưnhiệt độ, áp suất, nguồn lỗi, hệ thống lỗi, mất điện, cóđiện…; giám sát an ninh cho các tủ điện, tủ điều khiểnngoài trời…Kết hợp với các nguồn dự phòng hoặc nguồnnăng lượng mặt trời tạo thành hệ thống khép kín và độclập với bên ngoài, tránh được các phá hoại và vô hiệuhóa hệ thống an ninh
3 Sơ đồ thiết kế chi tiết
3.1 Khối cảm biến và chuyển đổi từ điện dung sang
tần số
Trang 14Hình 3.1: Hình ảnh về ghép nối cảm biến HS1101 với NE555
3.2 Khối hiển thị
Hình 3.2: Hình ảnh về sơ đồ ghép nối khối hiển thị
Trang 153.3 Sơ đồ toàn mạch
Hình 3.3: Sơ đồ toàn mạch
3.4. Khối giao tiếp với máy tính
4 Đặc tính kĩ thuật của thiết bị đo
Trang 164.1 Thời gian đo (tính từ lúc bắt đầu đo tới khi kết
quả đo được)
Thời gian cảm biến HS1101 đo: Không đáng kể
Thời gian chuyển đổi trong NE555: Không đáng kể
Thời gian 8051 xử lý tín hiệu: 20ms
Thời gian LED 7 thanh hiển thị: Không đáng kể
Suy ra thời gian đo = thời gian 8051 thực hiện = 20ms
4.2 Sai số của thiết bị đo
Sai số của cảm biến độ ẩm HS1101: 2%RH
Sai số tần số đầu ra NE555: 5%
5 Phương pháp đo: Sử dụng cảm biến HS1101
5.1 Lí do chọn phương pháp này
Hiện nay có rất nhiều phương pháp đo độ ẩm môitrường như phương pháp xác định độ ẩm bằng biến trở,phương pháp xác định độ ẩm bằng cảm biến độ ẩm,phương pháp xác định độ ẩm bằng khúc xạ ánh sáng… Ởđây, nhóm em sử dụng phương pháp đo độ ẩm bằng cảmbiến độ ẩm Qua tìm hiểu, nhóm em được biết trên thịtrường có 1 số loại cảm biến như SHT75, SHT11, HS1101,DS18B20… với độ chính xác khác nhau Cảm biến HST75
có độ chính xác 1.8%RH với giá thành là 1050000đ, cảmbiến HST11 có độ chính xác 3%RH với giá thành là280000đ, cảm biến HS1101 có độ chính xác 2%RH vớigiá thành là 80000đ Do yêu cầu đồ án mạch đo độ ẩm
có độ chính xác 5%RH và do điều kiện kinh tế nên nhóm
em chọn cảm biến độ ẩm HS1101 HS1101 cơ bản là 1 tụđiện biến dung theo độ ẩm, giá trị của nó sẽ thay đổi khi
độ ẩm thay đổi Hay nói cách khác, ứng với mỗi giá trị độ
ẩm môi trường thì cảm biến sẽ xuất ra 1 giá trị điện dungtương ứng Nhiệm vụ của nhóm: làm cách nào để đo, xử
lí giá trị điện dung đó và hiển thị giá trị độ ẩm ra led 7thanh Ta có 2 cách để thực hiện điều đó: Cách 1, biếnđổi điện dung thành tần số và dùng vi điều khiển để xử lítần số đó Cách 2, biến đổi điện dung thành điện áp Donhóm em đã được học vi điều khiển 8051 nên nhóm emxin chọn phương án 1
Trang 175.2 Cách thực hiện
Các linh kiện có trong mạch đô độ ẩm: cảm biến độ ẩmHS1101 dùng để đo độ ẩm, IC NE555 dùng để chuyển đổiđiện dung thành tần số, vi điều khiển dùng để đo và xử lítần số, led 7 thanh dùng để hiển thị đồ ẩm và các linhkiện đi kèm như điện trở, tụ điện, transistor, thạch anh…Trên thực tế, HS1101 thường đi kèm với mạch họ IC555
để xác định tần số Ở đây, nhóm em mong muốn dải tần
số từ 6000Hz đến 7500Hz Dựa vào công thức ở mục 2.2,nhóm em tính được (R2 + 2R4) nằm trong khoảng từ1.1MegaOm đến 1.3MegaOm Qua tìm hiểu các loại trở
có ở Việt Nam, nhóm em đã chọn R4= 560k, R2= 56k.Sau khi đo được giá trị tần số, ta sẽ xử lí giá trị tần số đótrong vi điều khiển AT89C52 Chân timer 0 được nối vớimạch NE555, khi timer 2 chạy 20ms thì đồng thời giá trịcủa 2 thanh ghi trong timer 0 cũng tăng theo, vi điềukhiển xử lí dữ liệu và và led 7 thanh hiển thị độ ẩm Giátrị trong 2 thanh ghi đó chính bằng 20ms nhân với tần số
ở đầu ra của mạch NE555 Ta có bảng liên hệ giữa cácbiến: độ ẩm môi trường, điện dung, tần số, biến đếm nhưsau:
Độ ẩm
Tần số
Biến đếm
Điệndung
Độ ẩm
Tần số
Biến đếm
Điện dung
Trang 18III Thuật toán và chương trình
1 Sơ đồ thuật toán
1.1 Lưu đồ đo độ ẩm
XỬ LÝ
Trang 19Đ
S
S
Đ
1.2 Lưu đồ hiển thị ra LED 7 đoạn
Trang 20S
Đ
2 Code chương trình
; -;CAC BIEN: R0 >BIEN DEM
; R1 >SO HANG CHUC
; R2 >SO HANG DON VI
; R3 >DO AM
ORG 0000H
DELAY
DELAY
P0 <= R0SETB P2.2CLR P2.1
Trang 21LJMP MAIN
ORG 00BHLJMP ISR_T0RETI
ORG 0030HMAIN:
MOV TMOD,#51H MOV TL0,#0DFH MOV TH0,#0B1H MOV TL1,#00H MOV TH1,#00H MOV IE,#82H MOV R1,#0C0H MOV R2,#0C0H SETB P3.5
SETB TR0 SETB TR1 ACALL HIEN_THI
ISR_T0:
CLR TR1 CLR TR0 MOV R0,TL1 ACALL XU_LY ACALL HEXA_BCD_7SEG MOV TL0,#0DFH
MOV TH0,#0B1H MOV TL1,#00H SETB TR0 SETB TR1 RETI
XU_LY:
MOV DPTR,#BANG_TRA_BIEN_DEM MOV 18H,R0
HERE:
MOV A,#00H MOVC A,@A+DPTR
Trang 22CJNE A,18H,NOT_EQUAL SJMP EXIT
NOT_EQUAL:
JNC NEXT SJMP EXITNEXT:
INC DPTR SJMP HEREEXIT:
MOV A,DPL MOV DPTR,#BANG_TRA_DO_AM MOVC A,@A+DPTR
MOV R3,#00H MOV R3,A RET
HEXA_BCD_7SEG:
MOV A,R3 MOV B,#0AH DIV AB
MOV R1,A MOV R2,B MOV DPTR,#MA_LED_7THANH MOV A,R1
MOVC A,@A+DPTR MOV R1,A
MOV A,R2 MOVC A,@A+DPTR MOV R2,A
RET
HIEN_THI:
MOV P0,R1 SETB P2.1 ACALL DELAY CLR P2.1 MOV P0,R2 SETB P2.2 ACALL DELAY CLR P2.2
Trang 23SJMP HIEN_THI RET
DELAY:
MOV R5,#1 BACK1:
MOV R6,#250BACK2:
NOP NOP DJNZ R6,BACK2 DJNZ R5,BACK1 RET
ORG 300HBANG_TRA_BIEN_DEM:
DB 151,150,148,147,145,144,142,141,140,139,138, 136,135,134,132,131,130,128,126,125,122
ORG 400HBANG_TRA_DO_AM:
DB 0,5,10,15,20,25,30,35,40,45,50, 55,60,65,70,75,80,85,90,95,100 ORG 500H
MA_LED_7THANH:
DB 0C0H,0F9H,0A4H,0B0H,099H, 092H,082H,0F8H,080H,090H END
IV Kết quả thực nghiệm
Ưu điểm: Mạch dễ thực hiện, mạch có chức năng kết nối máytính hiển thị đồ thị độ ẩm thay đổi theo thời gian, có cảnh báobằng còi khi độ ẩm vượt quá giá trị đặt trước
Nhược điểm: Giá trị độ ẩm trên led 7 thanh bị nhấp nháy, chưacách li giữa phần tương tự và phần số nên có thể bị nhiễu
Trang 24Hướng phát triển: Kết hợp thêm mạch đo nhiệt độ, đi sâu vàophần kết nối với máy tính.
V Tài liệu tham khảo:
1 Cấu trúc và lập trình họ vi điều khiển 8051 – Nguyễn Tăng Cường, Phan Quốc Hải NXB Khoa học và kĩ thuật
2 Datasheets
HS1101:
http://pdf1.alldatasheet.com/datasheet-pdf/view/47866/HUMIREL/HS1101.html
NE555: pdf/view/117365/NEC/NE555P.html
http://pdf1.alldatasheet.com/datasheet- AT89C51:
http://pdf1.alldatasheet.com/datasheet-pdf/view/56222/ATMEL/AT89C51-24PI.html