LỜI NÓI ĐẦUTrong học phần Đồ Án II, chúng em đã được các thầy ở trung tâm Đào tạothực hành của Viện điện tử - viễn thông hướng dẫn về: thiết kế mạch, hàn mạch, làmquen công cụ thiết kế m
GIỚI THIỆU CHUNG
Thiết bị thực hành
Mạch sử dụng vi điều khiển họ AVR với những kết nối ngoại vi cơ bản thể hiện trong Hình 1 cùng với chức năng của các linh kiện quan trọng trên mạch kit được nêu rõ trong Bảng 1
Hình 1 Cấu trúc mạch kit.
Bảng 1 Chức năng của các linh kiện quan trọng
STT Tên linh kiện Chức năng
1 Giắc cắm nguồn Nhận nguồn điện 9-12V cho mạch
2 IC 7805 Hạ nguồn điện 9-12V về nguồn 5V và giữ ổn định
3 LED báo nguồn Báo có nguồn 5VDC
4 VĐK họ AVR Điều khiển hoạt động của mạch
5 Thạch anh Tạo tần số xung nhịp 8 MHz cho VĐK
6 Nút reset Khởi động lại VĐK
7 Giắc ISP Kết nối mạch nạp để nạp mã cho VĐK
8 Nhóm 4 nút ấn Nhận lệnh điều khiển vào PORTB của VĐK 9-12 Giắc cắm 8 chân Nối với các PORT A,B,C,D tương ứng của VĐK
13 Dãy LED đơn Báo trạng thái tín hiệu ở PORT D (sáng: 0, tắt: 1)
Cho phép hoặc vô hiệu dãy led đơn
15 LED 7 thanh Hiển thị số từ 0-9 hoặc một số ký tự khác
16 Jumper LED 7 thanh Cho phép hoặc vô hiệu led 7 thanh
17 Giắc cắm LCD Kết nối màn hình LCD 16x2
18 Biến trở vi chỉnh Điều chỉnh điện áp đầu vào ADC0 (PA0) (0 - 5V)
19 Giắc UART - USB Kết nối module chuyển đổi UART-USB
VĐK ATMEGA16: chip vi điều khiển 8 bit với cấu trúc tập lệnh đơn giản
(RISC), với hiệu suất cao, công suất thấp tích hợp bộ nhớ flash 16KB, SRAM 1KB,EEPROM 512B, chuyển đổi ADC 10 bit hoạt động với điện áp khoảng 4,5 - 5,5 V.Sơ đồ chân của VĐK ATMEGA16 trong Hình 2 , và chức năng các chân quan trọng ứng dụng trong bài thực hành thể hiện trong Bảng 2
Hình 2 Sơ đồ chân VĐK ATMEGA16
Bảng 2 Chức năng một số chân quan trọng
6 MOSI(PB5) Hỗ trợ giao tiếp SPI (serial peripheral interface)
7 MISO(PB6) Hỗ trợ giao tiếp SPI (serial peripheral interface)
8 SCK(PB7) Hỗ trợ giao tiếp SPI (serial peripheral interface)
9 RESET Khởi động lại VĐK khi đưa về mức 0
10 VCC Chân cấp nguồn 5V cho VĐK
12-13 XTAL2, XTAL1 Kết nối với bộ tạo dao động thạch anh
14 RXD(PD0) Chân nhận giá trị vào của UART
15 TXD(PD1) Chân ghi giá trị ra UART
30 AVCC Chân cấp nguồn nội cho bộ ADC
32 AREF Chân cấp điện áp tham chiếu cho ADC
Các chân còn lại là các chân tín hiệu vào/ra của VĐK với 4 nhóm cổng port A, port B, port C, port D.
Mạch nạp mã nguồn: mạch nạp mã nguồn ISP thông dụng với chuẩn kết nối
ISP 10 chân tương ứng ( Hình 3 ).
Hình 3 ISP chuẩn kết nối 10 chân
Màn hình LCD 16x2: mạch kit được kết nối với màn hình LCD text 16x2 chuẩn 16 chân ( Hình 4 ).
Hình 4 Màn hình LCD 16x2 chuẩn 16 chân
Kết nối các thiết bị
Các thiết bị được kết nối hoàn chỉnh như trong Hình 5 và Hình 6 Kết nối cổng usb máy tính với mạch nạp ISP rồi kết nối module với giắc ISP (số 7) của KIT. Màn hình LCD kết nối với giắc LCD 16 chân (số 17).
Hình 5 Hình ảnh mạch mẫu trên thực tế
Hình 6 Mạch không bao gồm LCD và mạch nạp
ĐO NHIỆT ĐỘ MÔI TRƯỜNG BẰNG CẢM BIẾN NHIỆT ĐỘ TƯƠNG TỰ LM35
Yêu cầu Đồ án thiết kế II
Sinh viên hiểu được phát các linh kiện có sẵn, yêu cầu hàn hoàn thiện mạch như mạch mẫu đã cho, thực hiện lập trình mạch nhằm đáp ứng được việc giải quyết vấn đề thực tế cuộc sống Phần mềm lập trình cũng như các linh kiện bổ sung không giới hạn.Trong các đề tài đã được giao, em đã chọn đề tài – Đo nhiệt độ bằng cảm biến tương tự - để thực hiện trong đồ án thiết kế II lần này.
Tìm hiểu, phân tích đề tài
Nhiệt độ là một tham số vật lý quan trọng, thường hay gặp trong kỹ thuật, công nghiệp, nông nghiệp và trong đời sống sinh hoạt hàng ngày Nó là tham số có liên quan đến tính chất của rất nhiều vật chất, thể hiện hiệu suất của các máy nhiệt và là nhân tố trọng yếu ảnh hưởng đến sự truyền nhiệt Vì lẽ đó mà trong các nhà máy, trong hệ thống nhiệt đều phải dùng nhiều dụng cụ đo nhiệt độ khác nhau Chất lượng và số lượng sản phẩm sản xuất được đều có liên quan tới nhiệt độ, nhiều trường hợp phải đo nhiệt độ để đảm bảo cho yêu cầu thiết bị và cho quá trình sản xuất Hiện nay yêu cầu đo chính xác nhiệt là một việc rất có ý nghĩa đối với sản xuất và nghiên cứu khoa học
Mục tiêu của đề tài này là tạo ra một thiết bị có thể đo đạc được nhiệt độ môi trường xung quanh nó với độ chính xác cao Với cảm biến nhiệt độ, qua xử lý tín hiệu bằng Atmega16 đã được lập trình, thiết bị sẽ hiển thị thông số nhiệt độ môi trường lên màn hình LCD với độ chính xác cao (1/4°C ở nhiệt độ phòng và 3/4°C ngoài khoảng 2°C tới 150°C).
1.2.2 Sơ đồ khối của mạch
Sơ đồ khối của mạch được cho bởi Hình 7 dưới đây.
Khối nguồn: cung cấp điện áp 5V cho toàn mạch, có vai trò quan trọng Nếu điện áp và dòng điện không ổn định sẽ ảnh hưởng đến tất cả các IC trong mạch.
Khối cảm biến nhiệt độ: cảm nhận nhiệt độ môi trường bên ngoài và xuất ra tín hiệu gửi về bộ xử lý trung tâm.
Hình 7 Sơ đồ khối hệ thống
Bộ Xử Lý Trung Tâm: xử lý tính hiệu nhận được từ khối cảm biến nhiệt độ và giá trị cài đặt.
Khối Hiển Thị: hiển thị nhiệt độ ra màn hình LCD
1.2.3 Phân tích chi tiết các khối
Mạch điện được cấp đã tích hợp sẵn bộ chỉnh lưu dòng 5VDC trong mạch với điện áp đầu vào 9-12V Vì vậy em đã sử dụng adapter 12VDC để cấp nguồn cho mạch.
Hình 9 Hình dạng và sơ đồ chân của IC cảm biến nhiệt độ LM35
Cảm biến tương tự mà em dùng trong đồ án này là LM35 Nguyên lý làm việc của IC cảm biến nhiệt độ LM35 ( Hình 9 ) IC đo nhiệt độ LM35 là một mạch tích hợp nhận tín hiệu nhiệt đo được chuyển thành tín hiệu điện dưới dạng điện áp tỉ lệ thuận với nhiệt độ Celsius (bằng ) Theo thông số nhà sản xuất LM35DZ,
𝑽 𝒐𝒖𝒕 = 𝟎, 𝟎𝟏 𝒕 ( 𝒕 °𝑪) quan hệ giữa nhiệt độ và điện áp ngõ ra như sau:
Với tầm hoạt động từ 0100 0 C, ta có sự biến thiên điện áp ngõ ra là:
Nhờ đó, khi đo tín hiệu điện ta biết được giá trị của nhiệt độ cần đo.
Cảm biến LM35 quy đổi trực tiếp nhiệt độ môi trường thành điện áp Ví dụ với nhiệt độ 25 0 C thì ngõ out của LM35 sẽ có điện áp là 250mV Vi điều khiển Atmega16 có tích hợp sẵn bộ chuyển đổi ADC nên tín hiệu lấy từ cảm biến được đưa trực tiếp vào vi điều khiển Atmega16 sẽ chuyển đổi giá trị đọc được thành giá trị nhị phân Trong mạch này ta chọn bộ ADC 10 bits Quá trình chuyển đổi như sau: ADC 10 bits tương ứng giá trị là 1023 khoảng,
Ta chọn VCC = 5V = 5000 mV Vậy 5000mV ứng với 1023 khoảng và ứng với 500°C.Gọi điện áp ngõ ra của LM35 là ADCValue Vậy ta có công thức chuyển đổi như sau:
1.2.3.3 Khối xử lý trung tâm Atmega16
Các thông số cụ thể của vi điều khiển Atmega16 đã được trình bày cụ thể trong Chương giới thiệu – phần 1.1
Bảng 3 Bảng mô tả chức năng của từng chân của LCD
Ch Ký hiệu Mô tả
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 điều khiển
3 VEE Điều chỉnh độ tương phản của LCD.
Chân chọn thanh ghi (Register select) Nối chân RS với logic “0”
(GND) hoặc logic “1” (VCC) để chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ
“ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read) + 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.
Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0- DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân
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.
15 LedA Nguồn dương cho đèn nền.
16 LedK GND cho đèn nền.
Dòng điện tiêu thụ: 80 dB
Nhiệt độ hoạt động:-20 °C đến +70 °C
Kích thước : Đường kính 12mm, cao 9,7mm
Mô phỏng
Để thực hiện mô phỏng, trước hết em vẽ mạch mô phỏng trên phần mềm Proteus như
Hình 11 Tuy nhiên, để mạch có thể chạy được như ý muốn, cần có chương trình nạp vào
ATMega16 Em đã thực hiện lập trình trên phần mềm Microchip Studio, đoạn code được cho ở phần Phụ lục Sau khi xuất file Hex từ chương trình đã được viết trong MicrochipStudio và nạp vào vi điều khiển trong Proteus, kết quả mô phỏng được cho bởi Hình 12 Như vậy, quá trình mô phỏng đã hoàn thành, em tiến hành nạp code vào mạch thực tế.
Hình 13 Mạch Schematic trên Proteus khi chưa nạp chương trình vào vi điều khiển
Hình 12 Kết quả mô phỏng hoàn thiện
Hoàn thiện đề tài
Khi đã hoàn thành việc mô phỏng, em tiến hành hàn các linh kiện điện tử vào mạch được phát Kết quả được cho ở Hình 13 dưới đây: b) Mặt trước a) Mặt sau
Hình 14 Hoàn thiện hàn các linh kiện
Hình 15 Các linh kiện đã được lắp đầy đủ vào mạch
Tiến hành cấp nguồn và lắp LCD vào mạch, ta có thể thấy LED mạch đã sáng báo hiệu nguồn đã vào, mạch đã hoạt động Tuy nhiên LCD vẫn chưa hiển thị thông tin gì ( Hình 14 )
Thực hiện nạp chương trình trong Phụ lục vào ATMega16 và reset mạch, ta có kết quả được cho như Hình 15
Ngoài việc hiển thị nhiệt độ hiện tại của môi trường, LCD cũng cung cấp thêm thông tin về thời tiết, ví dụ “Trời đang rất nóng”, “Trời đang lạnh” hay “Thời tiết đang rất thoải mái” để cung cấp thông tin về nhiệt độ ngoài trời hiện tại Còi sẽ kêu khi nhiệt độ lớn hơn 40 độ.
Hình 16 Mạch đề tài đã hoàn thiện