ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA ĐIỆN TỬ VIỄN THÔNG
………
MẠCH CẢM BIẾN NHIỆT ĐỘ
DÙNG VI ĐIỀU KHIỂN
HIỂN THỊ KẾT QUẢ RA LCD
Môn học:
Thiết kế Logic Khả trình
GV bộ môn:
ThS. Cao Trần Bảo Thương
Sinh viên thực hiện:
Lê Thành Tâm
MSSV: 1020188
Phan Lý Trúc Anh
MSSV: 1020005
12/2012
MẠCH CẢM BIẾN NHIỆT ĐỘ
1 | T h à n h T â m – T r ú c Anh
NỘI DUNG
I. Giới thiệu chung về mạch và ý tưởng thiết kế.
II. Linh kiện sử dụng trong mạch.
III. Datasheet linh kiện, công dụng và chức năng linh kiện sử dụng.
1. PIC 16F877A
1.1 Cấu trúc tổng quát PIC 16F877A.
1.2 Ứng dụng vào mạch cảm biến nhiệt độ
2. Công dụng LCD và sơ lược về chức năng của LCD trong mạch
2.1 Cấu trúc sơ lược LCD16x2
2.2 Giao tiếp giữa PIC và LCD
3. Cảm biến nhiệt DS18B20
IV. Nguyên lý hoạt động.
V. Mô phỏng Proteus, Capture và Layout.
VI. Những điều cần chú ý trong quá trình làm mạch.
VII. Ứng dụng thực tiễn của mạch
VIII. Nguồn tài liệu
MẠCH CẢM BIẾN NHIỆT ĐỘ
2 | T h à n h T â m – T r ú c Anh
I. Giới thiệu chung về mạch và ý tưởng thiết kế:
Ngày nay việc sử dụng các thiết bị điện tử phục vụ đời sống hàng ngày rất phổ
biến. Trong đó ta có thể kể đến các thiết bị cảm ứng và hiển thị các thông số môi
trường phục vụ nhiều mục đích khác nhau nhằm tạo sự tiện lợi trong sinh hoạt hàng
ngày. Bắt nguồn từ mục đích đó, nhóm em đã thiết kế một mạch cảm ứng nhiệt độ và
hiển thị ra LCD sử dụng vi điều khiển PIC 16F877A và linh kiện cảm ứng nhiệt độ
DS18B20. Nhiệt độ là một thông số phổ biến và rất được quan tâm trong thực tế nói
riêng và trong kĩ thuật nói chung, việc cảm ứng nhiệt độ và hiển thị rất hữu ích và
không khó thực hiện. Nhóm em chọn các linh kiện không quá phức tạp và khó sử
dụng như PIC 16F877A, màn hình LCD 16x2 , cảm biến nhiệt DS18B20 có khả năng
cảm biến tốt và dễ tìm mua.
Để bắt đầu vào làm mạch này, chúng em trải qua quá trình tra cứu sách vở, tài
liệu thư viện, các trang web, … cho nhóm em cách nhìn tổng quan về mạch của nhóm
cần tìm hiểu và nắm những gì cho mạch của mình. Từ đó nhóm rút ra được những khái
niệm cần nắm để thực hiên mạch là:
- Chức năng ADC của PIC ứng dụng trong mạch.
- Cách sử dụng LCD, giao tiếp giữa PIC và LCD.
- Cách sử dụng cảm biến.
- Tới đây đủ công cụ để làm mạch thực tế. (Viết code, proteus, vẽ layout,
test mạch thử…)
- Làm ra mạch thực tế.
MẠCH CẢM BIẾN NHIỆT ĐỘ
3 | T h à n h T â m – T r ú c Anh
II.Linh kiện sử dụng trong mạch:
PIC 16F877A
Màn hình LCD 16X2
Cảm biến nhiệt DS18B20
Thạch anh 8MHZ
Bộ nguồn 5V
Tụ, điện trở, biến trở, nút bấm.
III. Datasheet linh kiện, công dụng và chức năng linh kiện sử dụng:
1. PIC 16F877A:
Có thể nói, hiện nay vi điều khiển đã rất phổ biến ở Việt Nam, và được ứng
dụng rất nhiều. Hiện nay có các họ vi điều khiển nổi tiếng như Atmel, Intel, hang
Motorola, hãng Microchip (PIC) Nhóm em chọn PIC cho việc làm quen với vi điều
khiển bởi vì PIC là họ vi điều khiển mạnh, giàu tài nguyên về phần cứng, được hỗ trợ
nhiều tài liệu từ hãng sản xuất, và có nhiều tập lệnh để lập trình. Hiện nay, PIC được
hỗ trợ rộng rãi từ cộng đồng và chúng ta dễ dàng tự học PIC thông qua các trang web
như www.diendandientu.com, www.picvietnam.com, …
Cụ thể nhóm em chọn PIC 16F877A của hãng Microchip. Đây là dòng PIC phổ
biến, giá thành rẻ, có đầy đủ tính năng cơ bản của PIC, đơn giản cho người mới bắt
đầu học, có nhiều tài liệu để tham khảo và học tập. Pic được tích hợp nhiều thiết bị
ngoại vi nên dẫn đến thiết kế mạch đơn giản.
1.1 Cấu trúc tổng quát PIC 16F877A.
- 40 pins gồm tổng cộng 5 port (Port A có 6 pins , port B, C, D có 8 pins,
và port E có 3 pins).
- 8Kb Flash ROM
- 368 bytes RAM
- 256 bytes EFPROM
- 3 Timer gồm: Timer0 và Timer2 8bit. Timer1 16bit
- 2 bộ Capture/Compare/PWM
- 1 bộ biến đổi analog sang digital (ADC)
- 2 bộ so sánh tương tự
- 1 bộ định thời giám sát
- 1 cổng song song 8 bit với các tín hiệu điều khiển
- 1 cổng nối tiếp
- 15 nguồn ngắt
MẠCH CẢM BIẾN NHIỆT ĐỘ
4 | T h à n h T â m – T r ú c Anh
Ưu điểm của PIC là tập lệnh gọn, dễ nhớ (35 lệnh) lập trình tiết kiệm bộ
nhớ, tốc độ xử lý nhanh (cho phép chu kỳ máy lên tới 5Mhz). Bộ nhớ đủ cho
hầu hết các ứng dụng thông thường.
Sơ đồ chân PIC 16F877A
1.2 Ứng dụng vào mạch cảm biến nhiệt độ:
Đối với mạch nhóm thực hiện, PIC 16F877A chủ yếu được khai thác ở
tính năng ADC, timer 8 bit, timer 16 bit. Vì vậy những tính năng ưu việt khác
của PIC 16F877A nhóm em xin được phép không đề cập.
- ADC (Analog to Digital Converter) dùng để biến đổi một tín hiệu điện
áp Analog vào một chân nào đó của PIC, biến đổi nó qua giá trị số (Digital)
bằng cách so sánh với một điện áp tham chiếu (Reference Voltage). Điện áp
tham chiếu có thể là điện áp VDD (điện áp nguồn) hoặc điện áp tham chiếu
được đưa vào một chân khác.
- PIC 16F877A có 10 bit chuyển đổi A/D => Giúp chúng ta không phải
mất 1 bộ chuyển đổi.(dẫn đến kết nối dây sẽ trở nên đỡ phức tạp)
- Sử dụng các Timer:
o Timer0: 8 bit của bộ định thời, bộ đếm với hệ số tỉ lệ trước.
o Timer1: 8 bit của bộ định thời, bộ đếm với hệ số tỉ lệ trước, có
khả năng tăng trong khi ở chế độ Sleep qua xung đồng hồ được
cung cấp bên ngoài.
o Timer2: 8 bit của bộ định thời, bộ đếm với 8 bit hệ số tỉ lệ trước,
hệ số.
MẠCH CẢM BIẾN NHIỆT ĐỘ
5 | T h à n h T â m – T r ú c Anh
2. Công dụng LCD và sơ lược về chức năng của LCD trong mạch:
Thiết bị hiển thị LCD được sử dụng trong rất nhiều các ứng dụng của vi điều
khiển. LCD có rất nhiều ưu điểm so với các dạng hiển thị khác. Nó có khả năng hiển thị kí
tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo
nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ thống và giá thành rẻ Trong
mạch này nhóm em sử dụng LCD 16X2, đây là loại LCD được sử dụng phổ biến trong
cả công nghiệp và đời sống.
2.1 Cấu trúc sơ lược LCD16x2:
LCD là linh kiện hiển thị được sử dụng phổ biến trong mạch vi điều
khiển, khả năng hiển thị khá đa dạng. Trên màn hình LCD, thông tin được hiển
thị trên hai dòng, mỗi dòng 16 kí tự. Sau đây là tên các chân và cộng dụng của
chúng trong loại LCD này.
Bộ nhớ LCD gồm 3 bộ nhớ: DDRAM, CGRAM, CGROM. Trong đó
chức năng từng bộ nhớ như sau:
*DDRAM:
- Được sử dụng để lưu trữ kí tự cần hiển thị, kích thước của bộ nhớ này
cho phép lưu trữ 80 kí tự.
MẠCH CẢM BIẾN NHIỆT ĐỘ
6 | T h à n h T â m – T r ú c Anh
- Cách hoạt động:
+ Thiết lập cấu hình để tăng địa chỉ một cách tự động (như cho dịch kí
tự). Các kí tự được gửi qua các đường D
0
đến D
7
sẽ được hiển thị từ trái sang
phải.
+ Nếu số các kí tự trên một dòng lớn hơn 16, tất cả các kí tự sẽ được
nhớ lại nhưng chỉ có 16 kí tự được nhìn thấy trên màn hình. Để nhìn thấy các
kí tự còn lại phải dùng lệnh dịch.
*CGROM: Chứa một bản đồ, địa chỉ các kí tự có thể thể hiện ra màn hình đã
được định sẵn.
*CGRAM: Cho phép tạo và hiển thị các kí hiệu, kí tự không có sẵn trong
CGROM.
2.2 Giao tiếp giữa PIC và LCD:
Khối màn hình hiển thị LCD được kết nối với vi điều khiển.
- Trong mạch, vi điều khiển giao tiếp với LCD theo chế độ 4 bits.
- Sử dụng 4 chân D
4
, D
5
, D
6
, D
7
của LCD truyền dữ liệu.
- Dữ liệu truyền tới LCD theo quy ước bit cao truyền trước, bit thấp truyền
sau.
- Kết nối LCD và vi điều khiển như sau:
LCD
Vi điều khiển
D7
RB3
D6
RB2
D5
RB1
D4
RB0
E
RB5
RS
RB4
Sơ đồ mạch được thể hiện trong hình dưới đây. Điện thế ngõ vào được đưa vào
chân AN0 ở dạng tương tự, LCD được nới với port B của vi điều khiển như là một ngõ
giao tiếp 4 dây mặc định. Một biến trở cũng được nối vào LCD nhằm điều chỉnh độ
phân giải.
MẠCH CẢM BIẾN NHIỆT ĐỘ
7 | T h à n h T â m – T r ú c Anh
Các hàm thông dụng:
lcd_init() : là hàm phải có để báo rằng sẽ sử dụng LCD.
lcd_putc(char c) : hàm để xuất ký tự ra LCD.
lcd_gotoxy( BYTE x, BYTE y) : hàm cho phép con trỏ nhảy tới vị trí (x,y) trên
LCD.
3. Cảm biến nhiệt DS18B20:
DS18B20 là nhiệt kế số có độ phân giải 9-12bit giao tiếp với vi điều khiển trung
tâm thông qua 1 dây duy nhất (1 wire communication). DS18B20 hoạt động với điện
áp từ 3V-5.5V có thể được cấp nguồn qua chân DQ - chân trao đổi dữ liệu. Nó có thể
đo nhiệt độ trong tầm -55
o
C - +125
o
C với độ chính xác ±0.5
o
C. Mỗi DS18B20 có một
Serial code 64bits duy nhất, điều này cho phép kết nối nhiều IC trên cùng đường bus.
Chuẩn 1 wire có những đặc điểm sau:
- Chỉ có một master trong hệ thống.
- Giá thành thấp.
- Tốc độ đạt dược tối đa 16kbps.
- Khoảng cách truyền xa nhất là 300m.
- Lượng thông tin trao đổi nhỏ.
MẠCH CẢM BIẾN NHIỆT ĐỘ
8 | T h à n h T â m – T r ú c Anh
DS18B20 thường được ứng dụng trong các bộ điều khiển HVAC, hệ thống giám
sát nhiệt độ trong các tòa nhà, thiết bị máy móc…
DS18B20 thường có 3 chân chức năng chính:
1. Chân GND: chân nối đất.
2. Chân DQ: chân trao đổi dữ liệu, đồng thời là chân cấp nguồn cho toàn bộ hoạt
động của IC, nếu chân Vcc không sử dụng. Khi kết nối với vi điều khiển thì cần phải
có điện trở kéo lên khoảng 4.7k.
3. Chân Vcc: chân cấp nguồn.
Sơ đồ khối IC điều khiển nhiệt độ DS18B20.
MẠCH CẢM BIẾN NHIỆT ĐỘ
9 | T h à n h T â m – T r ú c Anh
IV. Nguyên lý hoạt động:
- Cảm biến nhiệt DS18B20 đo nhiệt độ môi trường, sau đó gửi dữ liệu tới PIC
16F877A thông qua một đường truyền duy nhất (từ chân DQ (chân giữa của cảm biến
nhiệt) đến chân RE2 của PIC 16F877A).
- Pic 16F877A xử lý dữ liệu, dựa vào code mà mình nạp sẽ xuất nhiệt độ ra
LCD16x2.
Nếu nhiệt độ đo được từ 20-30
o
C, LCD sẽ xuất ra dòng chữ
“COMFORTABLE!”, đồng thời LED trắng sẽ nháy sáng.
Nếu nhiệt độ đo được dưới 20
o
C, LCD sẽ xuất dòng chữ “COLD! COLD!”,
đồng thời LED đỏ 1 sẽ sáng.
Nếu nhiệt độ đo được trên 30
o
C, LCD sẽ xuất dòng chữ “HOT! HOT! HOT”,
đồng thời LED xanh 2 sẽ sáng.
MẠCH CẢM BIẾN NHIỆT ĐỘ
10 | T h à n h T â m – T r ú c Anh
V. Mô phỏng Proteus, Capture và Layout:
MẠCH CẢM BIẾN NHIỆT ĐỘ
11 | T h à n h T â m – T r ú c Anh
MẠCH CẢM BIẾN NHIỆT ĐỘ
12 | T h à n h T â m – T r ú c Anh
VI. Những điều cần chú ý trong quá trình làm mạch:
- Chú ý quan trọng rằng: cảm biến nhiệt DS18B20 có 2 kiểu cấp nguồn. Thứ nhất
là cấp nguồn trực tiếp qua chân V
CC
, không qua điện trở nào. Thứ 2 là cấp nguồn
thông qua chân dữ liệu DQ; lúc này chân V
CC
bắt buộc phải nối xuống đất. Tuy
nhiên, trong proteus, ta nối thế nào cũng chạy. Do đó phải chú ý kĩ điều này.
- Cảm biến nhiệt DS18B20 phải nối đúng chân: chân 1 là GND, chân 2 là DQ,
chân 3 là V
CC
. Nếu nối ngược sẽ bị cháy ngay lập tức.
- LCD nên được tháo ra, lắp vào khi đã tắt nguồn.
- Nên gắn thêm cho LCD 1 biến trở để điều khiển độ sáng và độ tương phản của
màn hình.
- Các đèn LED cần được nối qua các điện trở 330Ω để hạn dòng, không bị cháy.
VII. Ứng dụng thực tiễn của mạch:
Đây là một trong những mạch cơ bản sử dụng PIC với tính năng cảm ứng đem
lại nhiều tiện ích khi sử dụng. Trước hết, việc cảm ứng và hiển thị sự thay đổi và nhiệt
độ môi trường là hết sức cần thiết trong cả đời sống và sản xuất, giúp chủ động trong
các thao tác liên quan đến nhiệt độ môi trường như yếu tố nhiệt độ trong sinh hoạt (ấp
trứng, ươm mầm, báo động…) hay các thao tác nghiệp vụ đòi hỏi nhiệt độ ổn định
trong công nghiệp. Đây cũng là một mạch điện tử thân thiện với người sử dụng, nhờ
vào khả năng hiển thị đa dạng của màn hình LCD, ngoài việc hiển thị nhiệt độ mạch
còn giúp hiển thị những cảnh báo hữu ích cho con người. Cảm biến nhiệt DS18B20
cũng là một trong những thiết bị cảm ứng độ nhạy cao, giá thành thấp giúp cảm ứng tốt
nhiệt độ môi trường.
Do còn hạn chế trong kiến thức về phần cứng và thực hiện thao tác làm mạch,
nhóm em vẫn chưa thực hiện được ý tưởng của mình trong việc mở rộng ứng dụng của
mạch này trong việc điều khiển động cơ hay các thiết bị báo cháy, thiết bị điều hòa
nhiệt độ (quạt, máy lạnh…) mà chỉ dừng lại ở mức độ hiển thị. Nhưng nhóm em cũng
có tham khảo đến những hướng để mở rộng mạch như:
- Nâng cao độ chính xác hiển thị bằng cách dùng ADC có độ phân giải cao
hơn (có thể dùng ADC ngoài)
- Thêm bàn phím giao tiếp để có thể thay đổi trực tiếp khoảng nhiệt độ theo
dõi, cùng với đó ta thêm vào LED 7 để hiển thị hai giá trị nhiệt độ này.
- Sử dụng EEPROM để lưu giá trị nhiệt độ mà người dùng thiết lập, các lần
thay đổi khác
- Ghép nối máy tính để truyền giá trị nhiệt độ đến máy tính.
- Ghép nối LCD và một mạch đếm thời gian thực (DS1307) để ứng với mỗi
thời điểm chương trình sẽ tự động chọn khoảng thiết lập nhiệt độ thích hợp theo
từng mùa, theo từng thời điểm định trước…
- Sử dụng PIC trong các mạch thiết kế tự động kết hợp với các mạch tăng
giảm nhiệt độ để đảm bảo nhiệt độ luôn bám theo một giá trị cho trước, hệ ổn
định nhiệt (giá trị thay đổi là rất nhỏ).
MẠCH CẢM BIẾN NHIỆT ĐỘ
13 | T h à n h T â m – T r ú c Anh
VIII. Nguồn tài liệu: