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 Sinh viên thực hiện: Lê Th
Trang 1TRƯỜ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
Sinh viên thực hiện: Lê Thành Tâm MSSV: 1020188
Phan Lý Trúc Anh MSSV: 1020005
Trang 2NỘ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
Trang 3I 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ế
Trang 4II.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
Trang 5Ư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ố
Trang 62 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ự
Trang 7- 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 D0 đến D7 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 D4, D5, D6, D7 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
Trang 8Cá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 - +125oC với độ chính xác ±0.5oC 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ỏ
Trang 9DS18B20 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
Trang 10IV 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-30oC, 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 20oC, 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 30oC, LCD sẽ xuất dòng chữ “HOT! HOT! HOT”,
đồng thời LED xanh 2 sẽ sáng
Trang 11V Mô phỏng Proteus, Capture và Layout:
Trang 13VI 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 VCC, 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 VCC 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à VCC 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
Trang 14VIII Nguồn tài liệu:
http://www.picvietnam.com
http://www.diendandientu.com
http://www.dientuvietnam.net
http://en.wikipedia.com
http://www.hocavr.com
http://www.maxim-ic.com