Thiết kế mạch đo nhiệt độ, đo khoảng cách, hiển thị lên LCD và giao tiếp với máy tính quá cổng COM
Trang 1Lời mở đầu :
Ngày nay, với sự phát triển nh- vũ bão của khoa học kỹ thuật, đặc biệt trong lĩnh vực điện tử, các thiết bị điện tử ngày càng hiện đại Các hệ thống điện tử đã tham gia vào công nghiệp làm tăng năng suất lao động, tăng hiệu quả kinh tế đồng thời cũng có một phần h-ớng đến nhu cầu gần gũi của con ng-ời, mang tính hỗ trợ cho cuộc sống nh- máy bán hàng tự động, nhà thông minh ….Từ đó mang đến cho con ng-ời sự tiện nghi hơn trong cuộc sống Trong bối cảnh nh- vậy thì lĩnh vực thiết kế mạch vi xử lý đóng vai trò quan trọng Các mạch vi xử lý tham gia vào hầu hết các thiết bị điện tử, đóng vai trò đầu não để xử lý dữ liệu và đ-a ra các tín hiệu
Trang 2Phần I.Sơ đồ khối, sơ đồ nguyên lý của mạch:
Sơ đồ khối của toàn mạch nh- sau :
Hình 1 Sơ đồ khối toàn mạch
Chi tiết các khối :
1 Khối đo nhiệt độ :
Khối này có tác dụng đo nhiệt độ môi tr-ờng và trả về tín hiệu gi² trị nhiệt độ cho khối xử lý trung tâm Khối dùng c°m biến số “1 dây” DS18B20, đây l¯ lo³i c°m biến có nhiều ưu điểm như: độ chính xác cao,dải đo t-ơng đối lớn phù hợp với nhiều ứng dụng dân dụng, là cảm biến số không dùng ADC, mỗi con đều đ-ợc nhà sản xuất đánh
số serial riêng nên có thể dùng để đo nhiều vị trí , dặc biệt có thể chung dây nguồn v¯ dây tín hiệu nên gọi l¯ “c°m biến 1 dây”
Một số đặc tính chính :
Hoạt động với điện áp từ 3V đến 5.5V
Cảm biến 1 dây với 64bit mã trong Rom
Trang 3 Dải đo t-ơng đối lớn : từ -55 đến +125 C
Đầu ra là chuỗi bit, ko cần dùng ADC
2 Khối đo khoảng cách :
Trong phạm vi Project thì nhóm dùng càm biến hồng ngoại IR GP2D12 của SHARP với các thông số cơ bản sau:
Điện áp hoạt động 4.5V đến 5.5V
Nhiệt độ hoạt động -10 oC đến 60 oC
Đầu ra là tín hiệu điện áp thay đổi theo khoảng cách
Có thể dùng ADC của vi điều khiển để ra tín hiệu số
3 Khối giao tiếp máy tính:
Giao tiếp với máy tính qua cổng Com Khối dùng IC Max232
Bộ biến đổi điện áp MAX 232 để t-ơng thích điện áp TTL của
vi điều khiển vì chuẩn RS232 không t-ơng thích với mức logic TTL, do vậy nó yêu cầu một bộ điều khiển đ-ờng truyền chẳng
Trang 4hạn nh- chip MAX232 để chuyển đổi các mức điện áp RS232
5 Khối xử lý :
Trang 5
Đây là khối quan trọng nhất Khối dùng vi điều khiển AVR Atmega16 xử lý các dữ liệu vào từ các khối cảm biến sau đó xuất tín hiệu ra cho khối hiển thị, giao tiếp máy tính Chip này phù hợp với các ứng dụng trong mạch Các đặc tính chính :
Có 40 chân (với dạng PDIP)
Điện áp hoạt động : 2.7V đến 5.5V
Có 4 port vào ra
Có bộ ADC 10 bit
6 Khối báo hiệu:
Dùng LED và loa cảnh báo giá trị tới hạn
Sau đây là sơ đồ khối toàn mạch :
Trang 7PhÇn II.C¸c linh kiÖn trong m¹ch:
Trong m¹ch cã sö dông c¸c linh kiÖn sau:
Chip AVR Atmega16
Led, trë, loa tô
Chøc n¨ng cña c¸c linh kiÖn chÝnh :
Trang 8VCC: cấp nguồn số
GND: đất
Cổng A (PORT A): (PA7 PA0)
Có chức năng đầu vào cho chuyển đổi ADC
Cổng A hoạt động nh- một cổng vào ra 8 bit thông th-ờng khi ADC không đ-ợc sử dụng
XTAL1: đầu vào đảo của bộ khuếch đại dao động và đầu vào cho mạch dao động bên trong của Atmega16
XTAL2: đầu ra của đầu vào đảo bộ khuếch đại dao động
Trang 9AVCC: nguồn cấp cho cổng A và bộ chuyển đổi ADC, chân này nên đ-ợc nối với nguồn cấp VCC bên ngoài, ngay cả khi bộ chuyển đổi ADC không
đ-ợc sử dụng Nếu bộ chuyển đổi ADC không đ-ợc sử dụng, chân AVCC nên đ-ợc nối với nguồn VCC qua qua bộ lọc
AREF: AREF là chân chuẩn analog cho bộ chuyển đổi ADC
2.IC DS18B20 :
Hình 7.Sơ đồ chân DS18B20
Loại cảm biến này còn gọi là cảm biến 1 dây vì đ-ờng dẫn tín hiệu lối ra và đ-ờng dẫn điện áp nguồn nuôi có thể dùng chung trên một dây dẫn và không chỉ chung cho một cảm biến mà nhiều cảm biến có thể
sử dụng chung một đ-ờng dẫn Điều này rất có ích khi giảm chi phí dây dẫn cũng nh- sự phức tạp cho hệ thống nhiều đầu đo trong công nghiệp
Trang 10Mỗi vi mạch đo nhiệt độ DS18B20 có một mã số định danh duy nhất, đ-ợc khắc bằng laser trong quá trình chế tạo vi mạch nên nhiều vi mạch DS18B20 có thể cùng kết nối vào một bus 1-wire mà không có sự nhầm lẫn Đặc điểm này làm cho việc lắp đặt nhiều cảm biến nhiệt độ tại nhiều vị trí khác nhau trở nên dễ dàng và với chi phí thấp Theo chuẩn 1-wire độ dài tối đa cho phép của bus là 300 m Số l-ợng các cảm biến nối vào bus không hạn chế
Rất thích hợp với các ứng dụng đo l-ờng đa điểm vì nhiều đầu đo
có thể đ-ợc nối trên một bus, bus này đ-ợc gọi là bus một dây (1-wire bus) và sẽ đ-ợc trình bày chi tiết trong số tạp chí tới đây
Chỉ cần thêm 1 trở bên ngoài
Điện áp nguồn nuôi có thể thay đổi trong khoảng rộng, từ 3,0 V
đến 5,5 V một chiều và có thể đ-ợc cấp thông qua đ-ờng dẫn dữ liệu
Dòng tiêu thụ tại chế độ nghỉ cực nhỏ
Thời gian lấy mẫu và biến đổi thành số t-ơng đối nhanh, không quá
Trang 11Hình10: Nội dung dãy mã 64-bit trên bộ nhớ ROM
Nh- vậy dãy mã đ-ợc chia ra thành 3 nhóm, trong đó:
Tám bit đầu tiên là mã định danh họ một dây
48 bit tiếp theo là mã số xuất x-ởng duy nhất, nghĩa là mỗi cảm biến DS18B20 chỉ có một số mã
Trang 12 T¸m bit cã ý nghÜa nhÊt lµ byte m· kiÓm tra CRC (cyclic redundancy check), byte nµy ®-îc tÝnh to¸n tõ 56 bit ®Çu tiªn cña d·y m· trªn ROM
(xem h×nh )
3.LCD 16*02 :
Cã rÊt nhiÒu lo¹i LCD víi nhiÒu h×nh d¸ng vµ kÝch th-íc kh¸c nhau, trªn
h×nh 1 lµ hai lo¹i LCD th«ng dông
Trang 13Mô tả chi tiết các chân :
1 VSS Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V của mạch
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD
5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để LCD hoạt
động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc
DB7
Tám đ-ờng của bus dữ liệu dùng để trao đổi thông tin với MPU Có 2 chế độ sử dụng 8 đ-ờng bus này :
+ Chế độ 8 bit : Dữ liệu đ-ợc truyền trên cả 8 đ-ờng, với bit MSB là bit DB7
+ Chế độ 4 bit : Dữ liệu đ-ợc truyền trên 4 đ-ờng từ DB4 tới DB7, bit MSB là DB7
Trang 144 Sensor IR Gp2D12 :
GP2D12 là sensor đo khoảng cách dùng hồng ngoại bao gồm diode phát quang hồng ngoại và mắt thu.GP2D12 đ-ợc tích hợp mạch xử lý tín hiệu với đầu ra analog.Với các tính năng nh- sau:
Tỷ lệ tuyến tính giữa khoảng cách với tín hiệu đầu ra
Dải đo từ 10cm đến 50cm
Không cần mạch điều khiển bên ngoài
Chi phí thấp hơn các loại khác
Điện áp làm việc 4,5V đến 5,5V
Dòng tối đa 35mA
Nhiệt độ làm việc : -10 o
C đến +60 oC
Trang 15Hình 13 Đặc tuyến làm việc của GP2D12
Đây là đặc tuyến trong datasheet, trong thực tế đặc tuyến nhóm đo đ-ợc
có khác so với hình trên Dựa vào kết quả nhóm đo đạc đ-ợc sẽ xuất ra vi
Trang 16điều khiển Khối vi điều khiển dùng ADC cho ra giá trị số, từ đó sẽ so
sánh và xuất ra LCD
5.IC MAX 232 :
MAX 232 để t-ơng thích điện áp TTL của vi điều khiển vì chuẩn RS232 không t-ơng thích với mức logic TTL, do vậy nó yêu cầu một bộ điều
khiển đ-ờng truyền chẳng hạn nh- chip MAX232 để chuyển đổi các mức
điện áp RS232 về các mức TTL và ng-ợc lại.IC MAX232 sẽ liên kết giữa vi
điều khiển và jump cổng Com của máy, từ đó tạo cầu nối cho việc truyền dữ
liệu giữa vi điều khiển và máy tính
D-ới đây là sơ đồ mạch kết nối của MAX232 với vi điều khiển
Hình 14 Sơ đồ kết nối của MAX232
Trang 17Phần III.Thi công làm mạch và lập trình :
Nhóm dùng phần mềm vẽ mạch Orcad để vẽ mạch nguyên lý và mạch in
D-ới đây là sơ đồ mạch in
Hình 15 Sơ đồ mạch in
Trang 18H×nh 16 MÆt trªn
Trang 20Kho¶ng c¸ch (cm) §iÖn ¸p ch©n out (V) Gi¸ trÞ ADC
Trang 21Trong việc lập trình mạch, nhóm chia làm 2 phần riêng : lập trình trên mạch
và lập trình trên máy tính dùng ngôn ngữ Visual Basic
Sau đây là l-u đồ thuật toán :
Trang 22Khởi tạo LCD
Khởi tạo USART
Khởi tạo cảm biến 1 dây
False
True
Đọc nhiệt độ Từ DS18B20
Kiểm tra khoảng giới hạn
Ngoài khoảng giới hạn LED sáng, loa kêu
Trang 23Khởi tạo LCD
Khởi tạo USART
Khởi tạo ADC
So sỏnh giỏ trị ADC với khoảng cỏch đo được
Kiểm tra khoảng giới hạn
Ngoài khoảng
Led sỏng, Loa kờu
Hình 19 L-u đồ thuật toán đo khoảng cách
Lập trình trên mạch:
Trang 24Nhóm dùng phần mềm CodeVision AVR ngôn ngữ C.Trong phần lập trình nhóm đã viết các hàm thêm nh- tạo font chữ tiếng Việt cho LCD, chuyển số sang dạng chục, đơn vị, thập phân,hàm đ-a giá trị lên máy tính
Tạo font tiếng Việt:
typedef unsigned char byte;
flash byte char0[8]={
0b0000000, 0b0011100, 0b0010100, 0b0011100, 0b0000000, 0b0000000, 0b0000000, 0b0000000};
void define_char(byte flash *pc,byte char_code) {
Trang 25char)(temp1*10000-tp1*1000-tp2*100-}
Trang 26Giao tiếp với máy tính:
Mạch giao tiếp với máy qua cổng Com với các thông số sau:
// USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00;
Trong mạch nhóm dùng thạch anh 4Mhz nên cách tính thanh ghi UBRR nh- sau:
UBRR =( Tần số thạch anh /9600*16) -1 =25
Hàm putchar ( ) đ-a 1 ký tự lên máy tính
Đ-a giá trị lên số máy tính:
Để đ-a giá trị lên máy, sẽ xuất từng ký tự một dựa vào các số đã lọc ở trên, hàm nh- sau:
Trang 27void putnum(int a) {
Trang 28};
} Lập trình trên máy tính:
Nhóm dùng ngôn ngữ Visual Basic để lập trình ch-ơng trình nhận dữ liệu trên máy tính
Ch-ơng trình có tác dụng nhận dữ liệu từ chân RX tín hiệu nhiệt độ và hiển thị khi ng-ời dùng ấn vào Button
Ch-ơng trình gồm 2 phần : nhận giá trị nhiệt độ và khoảng cách
Trang 29KếT LUậN :
Sau một thời gian nghiên cứu và làm việc nghiêm túc, chúng
em đ± ho¯n th¯nh đề t¯i “thiết kế mạch đo nhiệt độ, đo khoảng cách, hiển thị LCD, giao tiếp qua máy tính” Trong thời gian l¯m việc, chúng em đ± học hỏi đ-ợc rất nhiều kinh nghiệm quý báu nh- hoàn thiện kỹ năng vẽ mạch, lập trình cho AVR, lập trình trên máy tính, các tính năng của các IC mới cũng nh- kỹ năng làm việc theo nhóm hiệu quá
Chúng em xin chân thành cảm ơn thầy Nguyễn Khuyến và thầy Nguyễn Xuân Quyền đã nhiệt tình chỉ bảo, giúp đỡ chúng em hoàn thành đề tài này
Trang 30Tµi liÖu tham kh¶o:
1) Gi¸o tr×nh vi ®iÒu khiÓn AVR- Ng« Diªn TËp
2) LËp tr×nh C cho vi ®iÒu khiÓn - Ng« Diªn TËp