Đồ án ii thiết kế và chế tạo mạch đo nhiệt độ sử dụng cảm biến tương tự

Đồ án II: Thiết kế mạch đo nhiệt độ dùng cảm biến tương tự. Tìm hiểu nguyên lý, lựa chọn linh kiện, xây dựng mạch thực tế và kiểm tra hoạt động.

Người đăng

Ẩn danh

Thể loại

Đồ án II

2022

44
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng dẫn toàn diện đồ án mạch đo nhiệt độ cảm biến analog

Đồ án kỹ thuật II với chủ đề thiết kế và chế tạo mạch đo nhiệt độ sử dụng cảm biến tương tự là một đề tài nền tảng, giúp sinh viên liên kết các khối kiến thức về điện tử tương tự, kỹ thuật vi xử lý và lập trình ứng dụng. Mục tiêu cốt lõi của đồ án là xây dựng một hệ thống hoàn chỉnh có khả năng đo lường nhiệt độ môi trường trong dải phổ biến, từ 0-100℃, và hiển thị kết quả một cách trực quan. Trọng tâm của hệ thống là việc sử dụng vi điều khiển họ AVR, cụ thể là ATmega16, kết hợp với cảm biến nhiệt độ LM35 – một linh kiện tương tự phổ biến nhờ độ chính xác và tính tuyến tính cao. Việc lựa chọn các thành phần này không chỉ tối ưu về chi phí mà còn giúp sinh viên làm quen với các công cụ lập trình và thiết kế mạch chuyên nghiệp như Atmel Studio, Proteus và Altium Designer. Đồ án không chỉ dừng lại ở việc lắp ráp linh kiện mà còn đòi hỏi quá trình phân tích lý thuyết, tính toán thông số, lập trình C cho vi điều khiển, và cuối cùng là chế tạo sản phẩm thực tế. Quá trình này cung cấp một cái nhìn sâu sắc về cách một tín hiệu vật lý (nhiệt độ) được chuyển đổi thành tín hiệu điện, số hóa và xử lý để đưa ra thông tin hữu ích. Đây là kiến thức cơ bản cho bất kỳ ứng dụng IoT hay hệ thống điều khiển tự động nào trong tương lai.

1.1. Mục tiêu và tầm quan trọng của báo cáo đồ án kỹ thuật

Một báo cáo đồ án kỹ thuật không chỉ là tài liệu tổng kết mà còn là minh chứng cho năng lực nghiên cứu và ứng dụng của sinh viên. Mục tiêu chính là chế tạo một mạch điện có khả năng đo nhiệt độ trong dải 0-100℃ với độ phân giải tối thiểu 0.25℃. Kết quả đo phải được hiển thị trên màn hình LCD 16x2. Tầm quan trọng của đồ án nằm ở việc rèn luyện kỹ năng giải quyết vấn đề kỹ thuật từ khâu lên ý tưởng, lựa chọn linh kiện, thiết kế, thi công và kiểm thử. Đây là cơ hội để sinh viên áp dụng lý thuyết đã học vào một sản phẩm cụ thể, từ đó củng cố kiến thức và tích lũy kinh nghiệm thực tiễn quý báu.

1.2. So sánh các loại cảm biến LM35 thermistor NTC cặp nhiệt điện

Trong các ứng dụng đo nhiệt độ, có nhiều loại cảm biến tương tự khác nhau. Cảm biến nhiệt độ LM35 được chọn vì điện áp đầu ra thay đổi tuyến tính với nhiệt độ (10mV/℃), giúp việc xử lý tín hiệu đơn giản hơn. Ngược lại, thermistor NTC (Negative Temperature Coefficient) có điện trở giảm khi nhiệt độ tăng, đòi hỏi mạch cầu phân áp và công thức tính toán phức tạp hơn để tuyến tính hóa. Cặp nhiệt điện (Thermocouple) có dải đo rất rộng nhưng tín hiệu đầu ra rất nhỏ (microvolt), yêu cầu mạch khuếch đại thuật toán chuyên dụng và kỹ thuật bù nhiệt độ điểm nối lạnh. Do đó, với yêu cầu của đồ án, LM35 là lựa chọn cân bằng giữa độ chính xác, chi phí và sự đơn giản trong thiết kế.

1.3. Lựa chọn vi điều khiển AVR PIC và Arduino Uno R3

Vi điều khiển là trái tim của hệ thống. Đồ án sử dụng ATmega16 thuộc họ AVR vì sự phổ biến, tài liệu hỗ trợ phong phú và bộ ADC 10-bit tích hợp sẵn. Các lựa chọn khác bao gồm vi điều khiển PIC của Microchip, cũng rất mạnh mẽ nhưng có kiến trúc và tập lệnh khác. Một giải pháp hiện đại hơn là sử dụng nền tảng Arduino Uno R3, vốn được xây dựng dựa trên vi điều khiển AVR (ATmega328P). Arduino đơn giản hóa việc lập trình và kết nối phần cứng nhưng có thể làm giảm sự hiểu biết sâu sắc về cấu trúc vi điều khiển. Việc sử dụng trực tiếp AVR ATmega16 giúp sinh viên nắm vững kiến trúc phần cứng và kỹ năng lập trình C cho vi điều khiển ở mức độ sâu hơn.

II. Thách thức chính khi thiết kế mạch đo nhiệt độ LM35 với ADC

Thách thức lớn nhất trong đồ án ii thiết kế và chế tạo mạch đo nhiệt độ sử dụng cảm biến tương tự nằm ở việc giao tiếp giữa tín hiệu analog từ cảm biến nhiệt độ LM35bộ chuyển đổi ADC (Analog-to-Digital Converter) của vi điều khiển ATmega16. Cảm biến LM35 tạo ra một điện áp rất nhỏ, thay đổi tuyến tính 10mV cho mỗi độ C. Trong khi đó, bộ ADC 10-bit của ATmega16 mặc định sử dụng điện áp tham chiếu (Vref) là 5V. Điều này có nghĩa là ADC sẽ chia dải điện áp từ 0-5V thành 1024 mức (2^10). Mỗi mức điện áp tương ứng với 5V / 1024 ≈ 4.88mV. Theo tài liệu, "độ phân giải hiển thị phải tối thiểu là 0.25℃", tương ứng với sự thay đổi điện áp là 2.5mV. Rõ ràng, độ phân giải mặc định của ADC (4.88mV) lớn hơn mức thay đổi cần đo (2.5mV), dẫn đến việc hệ thống không thể phát hiện được sự thay đổi nhiệt độ nhỏ, gây ra sai số lớn và không đáp ứng yêu cầu đề tài. Để giải quyết vấn đề này, cần có một phương pháp để tăng độ nhạy của hệ thống. Hai giải pháp chính được đưa ra: sử dụng mạch khuếch đại tín hiệu đầu vào hoặc thay đổi điện áp tham chiếu của bộ ADC để thu hẹp dải đo, từ đó tăng độ phân giải.

2.1. Phân tích tín hiệu điện áp ra của cảm biến nhiệt độ LM35

IC cảm biến nhiệt độ LM35 có đặc tính kỹ thuật đáng chú ý là "Nhiệt độ thay đổi tuyến tính: 10 mV/℃". Điều này có nghĩa là ở 0℃, điện áp đầu ra là 0V. Ở 25℃, điện áp là 250mV (0.25V). Ở 100℃, điện áp là 1000mV (1V). Dải nhiệt độ mục tiêu của đồ án là 0-100℃, tương ứng với dải điện áp từ 0V đến 1V. Khi sử dụng điện áp tham chiếu 5V cho ADC, dải tín hiệu hữu ích này chỉ chiếm 1/5 toàn bộ thang đo của ADC, gây lãng phí độ phân giải và làm giảm độ chính xác của phép đo.

2.2. Vấn đề độ phân giải của bộ chuyển đổi ADC ATmega16

Độ phân giải của bộ chuyển đổi ADC là yếu tố quyết định độ chính xác của hệ thống. Với Vref = 5V và độ phân giải 10-bit, bước nhảy điện áp nhỏ nhất mà ADC có thể nhận biết là 4.88mV. Bất kỳ sự thay đổi điện áp nào nhỏ hơn giá trị này đều không được ghi nhận. Vì cảm biến nhiệt độ LM35 chỉ thay đổi 10mV cho mỗi 1℃, điều này có nghĩa là ADC chỉ có thể nhận biết sự thay đổi nhiệt độ khoảng 0.5℃ (vì 10mV / 4.88mV ≈ 2 bước nhảy). Kết quả này chưa đạt yêu cầu độ phân giải tối thiểu 0.25℃ của đề tài.

2.3. Giải pháp tối ưu Thay đổi Vref so với khuếch đại thuật toán

Giải pháp đầu tiên là sử dụng mạch khuếch đại thuật toán (Op-amp) như op-amp LM741 hoặc op-amp LM358 để khuếch đại tín hiệu từ 0-1V lên 0-5V. Tuy nhiên, phương pháp này làm tăng độ phức tạp của mạch, có thể đưa nhiễu vào hệ thống và đòi hỏi thêm linh kiện. Giải pháp thứ hai, được lựa chọn trong đồ án, là thay đổi điện áp tham chiếu của ADC xuống mức thấp hơn, cụ thể là 2.56V (một tùy chọn có sẵn trong vi điều khiển AVR). Khi đó, mỗi bước nhảy của ADC sẽ tương ứng với: 2.56V / 1024 ≈ 2.5mV. Giá trị này chính xác bằng với yêu cầu đo sự thay đổi 0.25℃. Đây là giải pháp "thông minh, đơn giản hơn do không cần phải sử dụng khuếch đại mà dùng luôn tính năng của VĐK."

III. Phương pháp xây dựng sơ đồ khối hệ thống và sơ đồ nguyên lý

Việc xây dựng một sơ đồ khối hệ thống rõ ràng là bước đầu tiên và quan trọng nhất trong quá trình thiết kế và chế tạo mạch đo nhiệt độ. Sơ đồ khối giúp định hình cấu trúc tổng thể của dự án, xác định các thành phần chính và mối quan hệ giữa chúng. Đối với đồ án này, hệ thống bao gồm các khối chức năng cơ bản: Khối Cảm biến, Khối Xử lý Trung tâm, Khối Hiển thị, và Khối Nguồn. Khối cảm biến sử dụng cảm biến nhiệt độ LM35 để chuyển đổi nhiệt độ môi trường thành tín hiệu điện áp tương tự. Khối xử lý trung tâm là vi điều khiển ATmega16, có nhiệm vụ đọc tín hiệu từ cảm biến thông qua bộ chuyển đổi ADC, xử lý dữ liệu số nhận được, và điều khiển việc hiển thị. Khối hiển thị sử dụng màn hình LCD 16x2 để trình bày kết quả nhiệt độ cho người dùng. Cuối cùng, khối nguồn cấp cho mạch có nhiệm vụ cung cấp điện áp ổn định 5V cho toàn bộ hệ thống. Từ sơ đồ khối, sơ đồ nguyên lý chi tiết sẽ được phát triển. Sơ đồ này mô tả chính xác cách các linh kiện được kết nối với nhau, bao gồm các chân của vi điều khiển, các kết nối tới LCD, cảm biến, và các linh kiện phụ trợ như thạch anh, tụ điện, điện trở. Một sơ đồ nguyên lý chuẩn xác là nền tảng để thiết kế mạch in PCB và thi công mạch thực tế.

3.1. Thiết kế sơ đồ khối hệ thống cho mạch đo nhiệt độ

Việc thiết kế sơ đồ khối hệ thống bắt đầu bằng việc xác định luồng dữ liệu. Tín hiệu nhiệt độ từ môi trường được cảm biến nhiệt độ LM35 thu nhận và chuyển thành tín hiệu điện áp. Tín hiệu này được đưa vào chân ADC của vi điều khiển ATmega16. Bên trong vi điều khiển, ADC chuyển đổi tín hiệu tương tự thành một giá trị số 10-bit. CPU của vi điều khiển đọc giá trị này, thực hiện các phép tính cần thiết để chuyển đổi nó thành giá trị nhiệt độ (℃), sau đó gửi dữ liệu đã xử lý đến màn hình LCD 16x2 thông qua các cổng giao tiếp. Sơ đồ này đảm bảo một cái nhìn tổng quan, logic và dễ hiểu về hoạt động của toàn bộ mạch.

3.2. Chi tiết sơ đồ nguyên lý Kết nối VĐK và hiển thị LCD 16x2

Trong sơ đồ nguyên lý, các kết nối được thể hiện chi tiết. Chân Vout của LM35 được nối với một chân ADC của ATmega16 (ví dụ: PA7). Các chân dữ liệu và điều khiển của màn hình LCD 16x2 được kết nối tới các cổng I/O của vi điều khiển (ví dụ: PortC và PortD). Một thạch anh 8MHz được kết nối với các chân XTAL1 và XTAL2 để tạo xung nhịp cho vi điều khiển. Mạch reset được thiết kế với một nút nhấn và điện trở kéo lên. Việc bố trí các kết nối này một cách khoa học trên sơ đồ nguyên lý là rất quan trọng để tránh sai sót khi thi công.

3.3. Thiết kế khối nguồn cấp cho mạch để đảm bảo hoạt động ổn định

Khối nguồn cấp cho mạch là thành phần không thể thiếu. Mạch yêu cầu nguồn điện 9-12VDC đầu vào. Điện áp này được đưa qua IC ổn áp 7805 để hạ xuống và ổn định ở mức 5VDC, cung cấp cho toàn bộ các linh kiện như vi điều khiển, LCD và cảm biến. Sơ đồ nguyên lý phải bao gồm các tụ lọc nhiễu ở cả đầu vào và đầu ra của IC 7805 để đảm bảo nguồn điện sạch, không gợn sóng, giúp hệ thống hoạt động ổn định và chính xác. Một đèn LED báo nguồn cũng thường được thêm vào để dễ dàng kiểm tra trạng thái hoạt động của mạch.

IV. Bí quyết lập trình C cho vi điều khiển và mô phỏng Proteus

Phần mềm đóng vai trò linh hồn trong đồ án ii thiết kế và chế tạo mạch đo nhiệt độ. Quá trình lập trình C cho vi điều khiển ATmega16 được thực hiện trên môi trường Atmel Studio. Mã nguồn cần được cấu trúc một cách logic, bao gồm các hàm khởi tạo, hàm đọc ADC, hàm tính toán và hàm hiển thị. Bí quyết để lập trình hiệu quả là chia nhỏ chương trình thành các module chức năng. Ví dụ, một hàm INIT_ADC() để cấu hình bộ chuyển đổi ADC với điện áp tham chiếu 2.56V. Một hàm READ_ADC() để bắt đầu chuyển đổi và đọc kết quả. Và một hàm DISPLAY_TEMP() để định dạng và gửi dữ liệu nhiệt độ lên màn hình LCD 16x2. Trước khi nạp chương trình vào vi điều khiển thực tế, việc sử dụng phần mềm mô phỏng Proteus là cực kỳ hữu ích. Proteus cho phép xây dựng một bản sao ảo của mạch điện, kết nối các linh kiện và nạp file .hex (được biên dịch từ Atmel Studio) vào vi điều khiển ảo. Điều này giúp kiểm tra logic chương trình, phát hiện các lỗi sai trong thuật toán hoặc cấu hình mà không cần tốn thời gian và chi phí cho phần cứng. Theo tài liệu, quá trình mô phỏng bao gồm "chọn file mã máy cho VĐK để mô phỏng trong Proteus" và chạy mô phỏng để quan sát kết quả hiển thị trên LCD ảo, đảm bảo "kết quả thu được đạt được yêu cầu đề ra và có độ chính xác cao".

4.1. Cấu trúc mã nguồn C đọc dữ liệu từ bộ chuyển đổi ADC

Mã nguồn lập trình C cho vi điều khiển cần được tổ chức rõ ràng. Phần đầu tiên là khai báo thư viện (avr/io.h) và định nghĩa các hằng số. Tiếp theo là hàm main(). Trong main(), lời gọi hàm khởi tạo ADC và LCD được thực hiện một lần. Sau đó, một vòng lặp vô tận (for(;;) hoặc while(1)) được sử dụng để liên tục đọc giá trị từ ADC, thực hiện phép tính chuyển đổi giá trị số thành nhiệt độ (ví dụ: nhiet_do = gia_tri_ADC * 0.25), và cuối cùng là cập nhật kết quả lên màn hình LCD. Việc sử dụng các hàm con giúp mã nguồn dễ đọc, dễ bảo trì và tái sử dụng.

4.2. Thực hiện mô phỏng Proteus để kiểm tra thuật toán

Phần mềm mô phỏng Proteus là công cụ không thể thiếu. Sau khi vẽ lại sơ đồ nguyên lý trên Proteus, file mã máy .hex được nạp vào mô hình vi điều khiển ATmega16. Người dùng có thể tương tác với các linh kiện ảo, chẳng hạn như thay đổi giá trị nhiệt độ trên cảm biến LM35 ảo và quan sát sự thay đổi tương ứng trên màn hình LCD ảo. Quá trình này giúp xác minh rằng thuật toán tính toán nhiệt độ là chính xác, cách hiển thị dữ liệu đã đúng định dạng và toàn bộ logic chương trình hoạt động như mong đợi trước khi chuyển sang giai đoạn thi công phần cứng.

4.3. Kỹ thuật hiệu chuẩn cảm biến và xử lý sai số trong phần mềm

Mặc dù LM35 khá chính xác, hiệu chuẩn cảm biến vẫn là một bước quan trọng để đạt độ tin cậy cao nhất. Kỹ thuật này có thể được thực hiện bằng cách so sánh kết quả đo của mạch với một nhiệt kế chuẩn. Nếu có sai số hệ thống (ví dụ: luôn cao hơn hoặc thấp hơn 0.5℃), một hằng số hiệu chỉnh có thể được thêm vào trong mã nguồn phần mềm. Ví dụ: nhiet_do_hieu_chinh = nhiet_do_tho - 0.5. Việc xử lý sai số ngay trong phần mềm là một phương pháp linh hoạt và hiệu quả, giúp tinh chỉnh độ chính xác của mạch đo nhiệt độ analog mà không cần can thiệp vào phần cứng.

V. Quy trình thiết kế mạch in PCB chuyên nghiệp với phần mềm Altium

Sau khi sơ đồ nguyên lý đã được xác minh qua mô phỏng Proteus, bước tiếp theo là chuyển thiết kế sang dạng vật lý thông qua thiết kế mạch in PCB (Printed Circuit Board). Phần mềm Altium Designer là một công cụ chuyên nghiệp được sử dụng trong đồ án để thực hiện công việc này. Quy trình bắt đầu bằng việc chuyển sơ đồ nguyên lý (schematic) sang môi trường thiết kế PCB. Tại đây, tất cả các linh kiện sẽ được biểu diễn dưới dạng footprint (hình dáng chân cắm thực tế). Nhiệm vụ của người thiết kế là sắp xếp các linh kiện này trên một tấm board một cách hợp lý để tối ưu hóa không gian và đường đi dây. Việc sắp xếp linh kiện cần cân nhắc đến các yếu tố như: đặt các linh kiện liên quan gần nhau để giảm chiều dài đường mạch, tách biệt khối nguồn và khối tín hiệu analog để giảm nhiễu. Sau khi sắp xếp, quá trình đi dây (routing) được thực hiện để kết nối các chân linh kiện theo đúng sơ đồ nguyên lý. Đối với một mạch đo nhiệt độ analog, cần đặc biệt chú ý đến đường mạch nối từ cảm biến nhiệt độ LM35 đến vi điều khiển, nên làm cho nó ngắn và tránh đi gần các đường mạch có khả năng gây nhiễu (như đường nguồn hoặc thạch anh). Altium cũng cho phép xem mô hình 3D của mạch, giúp hình dung sản phẩm cuối cùng một cách trực quan trước khi gửi đi gia công.

5.1. Các bước từ sơ đồ nguyên lý sang thiết kế mạch in PCB

Quá trình thiết kế mạch in PCB trong Altium bắt đầu bằng việc tạo một dự án mới, bao gồm một tệp schematic và một tệp PCB. Sau khi hoàn thiện sơ đồ nguyên lý, người dùng sử dụng chức năng "Design -> Update PCB Document" để chuyển toàn bộ linh kiện và netlist (danh sách kết nối) sang tệp PCB. Các linh kiện sẽ xuất hiện bên ngoài vùng bo mạch, sẵn sàng để được sắp xếp và đi dây. Đây là bước chuyển đổi quan trọng, đảm bảo thiết kế vật lý tuân thủ tuyệt đối theo thiết kế logic ban đầu.

5.2. Tối ưu hóa layout cho mạch đo nhiệt độ analog để giảm nhiễu

Tối ưu hóa layout là yếu tố quyết định sự ổn định của mạch đo nhiệt độ analog. Các nguyên tắc cơ bản bao gồm: sử dụng các đường mạch nguồn và đất (GND) rộng để giảm trở kháng; đặt tụ lọc nhiễu càng gần chân nguồn của IC càng tốt; giữ cho đường tín hiệu analog từ cảm biến nhiệt độ LM35 đến chân ADC của vi điều khiển càng ngắn càng tốt và tránh chạy song song với các đường tín hiệu số tốc độ cao. Sử dụng một lớp ground plane (phủ đồng nối đất) cũng là một kỹ thuật hiệu quả để che chắn và giảm nhiễu điện từ (EMI).

5.3. Xuất file Gerber và chế tạo mạch in PCB thực tế

Sau khi hoàn tất việc đi dây và kiểm tra các quy tắc thiết kế (Design Rule Check - DRC), bước cuối cùng là xuất file Gerber. Đây là một bộ tệp tiêu chuẩn công nghiệp chứa tất cả thông tin cần thiết cho việc sản xuất mạch in, bao gồm các lớp đồng, lớp phủ xanh (soldermask), lớp chú thích (silkscreen) và vị trí lỗ khoan. Các tệp này sau đó được gửi đến nhà sản xuất để họ tiến hành ăn mòn, khoan và hoàn thiện mạch in PCB. Kết quả là một bo mạch vật lý, sẵn sàng để hàn linh kiện và kiểm tra hoạt động.

VI. Kết luận và ứng dụng thực tiễn của đồ án mạch đo nhiệt độ

Đồ án thiết kế và chế tạo mạch đo nhiệt độ sử dụng cảm biến tương tự đã hoàn thành xuất sắc các mục tiêu đề ra. Thông qua quá trình thực hiện, từ phân tích lý thuyết, lựa chọn giải pháp kỹ thuật, mô phỏng Proteus cho đến thiết kế mạch in PCB bằng Altium, sinh viên đã có cơ hội vận dụng tổng hợp kiến thức chuyên ngành vào một sản phẩm thực tế. Kết quả thực nghiệm cho thấy mạch hoạt động ổn định, "độ chính xác rất cao, mạch đơn giản hơn do không cần phải sử dụng khuếch đại". Điều này khẳng định sự đúng đắn của giải pháp thay đổi điện áp tham chiếu cho bộ chuyển đổi ADC. Đề tài này không chỉ là một bài tập kỹ thuật mà còn mở ra nhiều hướng phát triển và ứng dụng thực tiễn. Mạch đo nhiệt độ analog này có thể được xem là một module cơ bản, dễ dàng tích hợp vào các hệ thống lớn hơn. Ví dụ, nó có thể làm cơ sở cho một hệ thống cảnh báo nhiệt độ trong kho lạnh, hệ thống điều khiển lò sưởi tự động, hoặc một trạm quan trắc môi trường đơn giản. Sự thành công của đồ án là nền tảng vững chắc, khuyến khích sinh viên tiếp tục nghiên cứu và phát triển các sản phẩm điện tử phức tạp hơn trong tương lai.

6.1. Đánh giá kết quả So sánh thực nghiệm và mô phỏng Proteus

Việc so sánh kết quả giữa thực nghiệm và mô phỏng Proteus là bước cuối cùng để đánh giá sự thành công của đồ án. Kết quả mô phỏng cung cấp một cơ sở lý tưởng, trong khi kết quả thực nghiệm phản ánh hoạt động của mạch trong điều kiện thực tế, có thể bị ảnh hưởng bởi nhiễu và sai số linh kiện. Trong đồ án này, "các kết quả khảo sát so sánh thu được thông qua phần mềm mô phỏng và thực nghiệm là hoàn toàn phù hợp với các lý thuyết đã được tính toán". Sự tương đồng này cho thấy quá trình thiết kế và thi công đã được thực hiện cẩn thận và chính xác.

6.2. Hướng phát triển Tích hợp vi điều khiển PIC hoặc Arduino Uno R3

Từ nền tảng của đồ án, có nhiều hướng phát triển tiềm năng. Hệ thống có thể được nâng cấp bằng cách thay thế vi điều khiển AVR bằng vi điều khiển PIC để làm quen với một kiến trúc khác, hoặc sử dụng Arduino Uno R3 để đơn giản hóa việc mở rộng tính năng, chẳng hạn như kết nối với module Wi-Fi để gửi dữ liệu lên internet (IoT). Ngoài ra, có thể tích hợp thêm các cảm biến khác như độ ẩm, ánh sáng để tạo thành một trạm thời tiết mini, hoặc thêm rơ-le để điều khiển các thiết bị công suất lớn dựa trên nhiệt độ đo được.

6.3. Tầm quan trọng của đồ án trong việc ứng dụng kiến thức thực tế

Hoàn thành một báo cáo đồ án kỹ thuật như thế này mang lại giá trị to lớn. Nó giúp sinh viên "nắm chắc hơn kiến thức về vi điều khiển họ AVR... cũng như nắm chắc hơn về cách xây dựng các mạch điện tử". Quá trình này chuyển đổi kiến thức lý thuyết thành kỹ năng thực hành, từ việc đọc datasheet, lựa chọn linh kiện, lập trình nhúng đến thiết kế PCB. Đây là những kỹ năng cốt lõi mà bất kỳ kỹ sư điện tử nào cũng cần có, tạo ra một nền tảng vững chắc cho quá trình học tập và sự nghiệp nghiên cứu sau này.

15/09/2025

Trích đoạn nội dung tài liệu

Chương I. Cơ sở lý thuyết chung. Giới thiệu tổng quan về đề tài, về họ vi điều khiển AVR, các ngôn ngữ thực hiện để lập trình vi điều khiển. Chương II.

Chi tiết cấu hình của mạch kit. Trình bày chi tiết về cấu trúc mạch kit được sử dụng trong đồ án, các thông số của mạch kit, kết nối với các thiết bị ngoại vi như LCD, UART-USB. Chương III. Thực hành lập trình cho vi điều khiển.

Tiến hành nạp code và chạy thử vi điều khiển, kiểm tra hiệu năng và lỗi mạch. Chương IV. Vận dụng vào kiến thức thực tế. Chương này sẽ đi vào tìm hiểu thiết kế và giải quyết các mục tiêu của đề tài là sử dụng cảm biến nhiệt độ để đo và in kết quả ra LCD theo những yêu cầu kĩ thuật cho trước.

CƠ SỞ LÝ THUYẾT CHUNG 1.1 Giới thiệu chung Với học phần Đồ án II tìm hiểu về vi điều khiển họ AVR, nội dung được thiết kế để nâng cao năng lực chuyên môn cho các sinh viên; giúp liên kết các khối kiến thức về điện tử tương tự, điện tử số, kỹ thuật vi xử lý, xử lý số tín hiệu, thông tin số, v. nhằm hoàn thiện khả năng vận dụng kiến thức vào thực tế. Trong học phần này, nội dung công việc cần thực hiện bao gồm: làm quen công cụ thiết kế mạch điện, thực hành lập trình phần cứng và xây dựng một ứng dụng cơ bản với các vi mạch có thể lập trình được. Để đảm bảo tiến độ công việc, em và các bạn sinh viên khác đã được viện hỗ trợ một số phương tiện cơ bản để triển khai công việc trên nền tảng xây dựng sẵn, có thể kế thừa.

Sau khi tiếp cận nhanh với vi điều khiển (VĐK) thông qua việc xây dựng một số ứng dụng trên VĐK họ AVR cụ thể trong bài báo cáo này em dùng Atmega16A. Em sẽ tiến hành giải quyết một vấn đề cụ thể - thiết kế mạch đo nhiệt độ và hiển thị trên LCD sử dụng cảm biến tương tự và cụ thể đó là cảm biến LM35 một cảm biến nhiệt độ tương tự được ứng dụng phổ biến trong việc cảm biến nhiệt độ.2 Mạch Kit cho VĐK họ AVR AVR là một VĐK 8 bit khá mạnh và thông dụng tại thị trường Việt Nam. Với tốc độ xung nhịp tối đa lên tới 16 Mhz, bộ nhớ chương trình tối đa tới 256 kB, và rất nhiều chức năng ngoại vi tích hợp sẵn, VĐK họ AVR có thể đáp ứng tốt cho nhiều ứng dụng trong thực tế, từ đơn giản đến phức tạp. Với Kit phát triển sử dụng trong học phần Đồ án II (hình 1.1) được Viện Điện tử - Viễn thông thiết kế riêng để đảm bảo tính hiệu quả trong quá trình đào tạo.

Bộ kit có thể được thử nghiệm với các ứng dụng cơ bản sau: o Điều khiển cổng ra số, với LED đơn và LED 7 thanh o Đọc trạng thái logic đầu vào số, từ bán phím và giắc cắm mở rộng o Đo điện áp tương tự với biến trở vi chỉnh và bộ ADC 10-bit 8 o Điều khiển màn hính tinh thể lỏng, với màn hình LCD dạng text o Giao tiếp với máy tính qua chuẩn UART ↔ USB o Thử nghiệm các ngắt ngoài, thử khả năng điều chế độ rộng xung.  Nhiều ứng dụng điều khiển các chức năng tích hợp sẵn trong VĐK như: vận hành các bộ định thời (Timer) và bộ đếm (Counter), đọc ghi EEPROM, lập trình các ngắt chương trình, thiết lập Watchdog, v.1 Mạch Kit phát triển và các phụ kiện Ngoài ra, bằng việc kết nối giữa các mô-dun mở rộng, mạch Kit hoàn toàn có thể thực hiện các ứng dụng phức tạp hơn như:  Đo tham số môi trường: nhiệt độ, độ ẩm, độ sáng, v.  Điều khiển tải cơ bản: đèn báo, van điện tử, động cơ DC, động cơ bước, v.  Điều khiển hiển thị cơ bản: LED ma trận, LCD ma trận, màn hình cảm ứng, v.

 Giao tiếp I2C và SPI: IC thời gian thực, IC EEPROM, cảm biến gia tốc, v.  Ứng dụng tổng hợp: đo và duy trì sự ổn định các tham số mô trường; số hóa và xử lý tín hiệu âm thanh, điều khiển robot hoặc xe tự hành, v.3 Ngôn ngữ lập trình và phần mềm AVR nói chung chung cũng như Atmega16 nói riêng hỗ trợ 2 ngôn ngữ lập trình thông dụng là Assembly và C. Việc lập trình bằng Assembly giúp chương trình nhỏ gọn nhưng khá phức tạp do gần với ngôn ngữ máy. Lập trình bằng C tuy cho chương trình có dung lượng lớn hơn so với khi lập trình bằng Assembly, nhưng đổi lại dễ dàng hơn trong việc code và debug.

Để lập trình cho AVR, có khá nhiều trình biên dịch, ví dụ như AVR studio, WinAVR, codevisionAVR… Trong nội dung về học phần Đồ án II, em sẽ sử dụng ngôn ngữ lập trình C để lập trình cho VĐK. Môi trường để soạn thảo và biên dịch là phần mềm AtmelStudio 6. Phần mềm nạp mã máy là PROGISP (phiên bản 1. Phần mềm giao tiếp giữa máy tính và VĐK là Terminal (phiên bản 1.

Ngoài ra, trong phần vận dụng em có sử dụng thêm phần mềm Proteus 8.6 để mô phỏng mạch và phần mềm Altium Designer 19 để thiết kế mạch. CHI TIẾT CẤU HÌNH CỦA MẠCH KIT 2.1 Cấu trúc của mạch Kit Mạch Kit được cung cấp để đáp ứng các ứng dụng cơ bản có cấu trúc và chức năng của từng linh kiện quan trọng được nêu trong bảng dưới đây. Đầu tiên ta sẽ tìm hiểu về sơ đồ nguyên lý của bộ kit cùng với đó là mạch nguyên lý được vẽ bởi Altium một trong những công cụ vẽ mạch đi dây cũng như để in mạch mạnh và phổ biến nhất hiện nay. Thông qua môn học đồ án II này em có thể thành thạo hơn việc sử dung altium để vẽ và thiết kế tất cả các loại mạch.

Tự mình tạo ra một bản mạch mà mình mong muốn.2 Sơ đồ nguyên lý của bộ kit 12 Hình 2.3 Bộ kit hoàn thiện Bảng 2.1 Linh kiện quan trọng của mạch Kit và chức năng tương ứng ST Tên linh kiện Chức năng T 1 Giắc cắm nguồn Nhận nguồn điện 9-12 VDC cấp cho mạch Kit 2 IC ổn áp 7805 Hạ 9-12 VDC xuống 5 VDC và giữ ổn định mức điện áp này để cấp cho toàn mạch 3 LED báo nguồn Báo nguồn (sáng: có nguồn 5 VDC, tắt: mất nguồn) 4 VĐK Atmega16 Điều khiển hoạt động của mạch theo mã nguồn đã được nạp 5 Thạch anh Quyết định tần số xung nhịp cấp cho VĐK 6 Nút ấn Reset Khởi động lại VĐK 7 Giắc ISP Kết nối mạch nạp để nạp mã nguồn cho VĐK 8 Nhóm 4 phím ấn Nhận lệnh điều khiển từ người sử dụng 13 9 Giắc cắm 8 chân Nối tới 8 chân vào/ra (Port-A) của VĐK 10 Giắc cắm 8 chân Nối tới 8 chân vào/ra (Port-B) của VĐK 11 Giắc cắm 8 chân Nối tới 8 chân vào/ra (Port-C) của VĐK 12 Giắc cắm 8 chân Nối tới 8 chân vào/ra (Port-D) của VĐK 13 Báo trạng thái logic của 8 chân ở Port-D của Dãy LED đơn VĐK 14 Jumper dãy LED đơn Cho phép hoặc vô hiệu hóa dãy LED đơn 15 Hiển thị số 0-9 và một vài kí tự do người dùng LED 7 thanh định nghĩa 16 Jumper LED 7 thanh Cho phép hoặc vô hiệu hóa dãy LED 7 thanh 17 Giắc cắm LCD Kết nối tới màn hình LCD1602 18 Điều chỉnh trơn và liên tục, từ 0 đến 5 VDC, từ Biến trở vi chỉnh mức điện áp tại đầu vào ADC0 của bộ ADC (chân PA0) 19 Kết nối module chuyển đổi UART-USB (còn gọi Giắc UART-USB là COM-USB) 2.2 Các thông số chính của Kit Các thông số kĩ thuật của Kit: • Điện áp nguồn: - Tiêu chuẩn: 9-12 VDC - Giới hạn: 7-18 VDC • Dòng điện tiêu thụ: - Khi không có module mở rộng, toàn bộ LED chỉ thị I/O tắt: 18mA - Khi có LCD và module USB, LED chỉ thị I/O bị vô hiệu hóa: 22mA - Khi có LCD và module USB, toàn bộ LED chỉ thị I/O sáng: 80mA • Mạch có khả năng tự bảo vệ khi bị lắp ngược cực tính nguồn • Mức logic các cổng I/O: TTL (5V) • Điện áp tương tự vào các chân ADC: 0 – 5V • Loại VĐK được hỗ trợ: Atmega16, Atmega32 và tương đương • Cổng I/O mở rộng: 4 giắc cắm (loại 8 chân) ứng với 4 port • Hỗ trợ màn hình LCD: dạng text, giao tiếp 8 bit hay 4 bit • Hỗ trợ module USB: UART-USB hay COM-USB (mức 5 VDC) 14 • Xung nhịp tích hợp sẵn: thạch anh 8 Mhz 2.3 Mạch nạp mã nguồn Mạch nạp mã nguồn cho VĐK trong Kit là loại mạch nạp ISP thông dụng. Trong bộ Kit này sử dụng mạch nạp ISP chuẩn 10 chân như hình dưới.4 Mạch nạp ISP chuẩn 10 chân sử dụng cho bộ Kit 2.4 Màn hình LCD và module UART-USB Mạch Kit được thiết kế để tương thích với màn hình LCD text (LCD 1602) và module chuyển đổi UART-USB (còn gọi là COM-USB) sử dụng chip FT232RL, như trên hình dưới. Đây đều là các module ngoại vi quen thuộc và điển hình.5 Màn hình LCD 1602 sử dụng trong bộ Kit 15 Hình 2.6 Module UART-USB sử dụng chip FT232RL 16 CHƯƠNG 3. THỰC HÀNH LẬP TRÌNH CHO VĐK 3.1 Tạo Project mới với Atmel Studio 6 và nạp thử mã máy cho VĐK Khi bắt đầu lập trình với VĐK họ AVR có rất nhiều phần mềm hỗ trợ tốt cho dòng VĐK này, tuy nhiên, lí do mà Atmel Studio được sử dụng là mang lại sự hiểu biết về VĐK đang lập trình – vì với Atmel Studio ta phải khai báo cụ thể các chân, v.

còn một số IDE khác hỗ trợ điều này khi tạo một project mới. Cụ thể, để tạo một Project mới và nạp thử mã máy cho VĐK ta cần thông qua các bước sau: Bước 1: Trong Atmel Studio 6, vào File > New > Project. Sau khi thay đổi tên và đường dẫn lưu project thì ta bấm OK .7 Giao diện tạo Project mới trong Atmel Studio 6 Bước 2: Sau khi tạo Project, giao diện chọn loại vi điều khiển sẽ hiện ra, ở đây ta sẽ chọn loại vi điều khiển là Atmega 16.8 Giao diện chọn loại vi điều khiển Hình 3.9 Giao diện làm việc chính sau khi tạo project 18 Bước 3: Cuối cùng thì chương trình sẽ hiện ra file chưa hàm main của project từ đó ta có thể code chương trình theo ý muốn.10 Hàm main của chương trình Bước 4 : Copy đoạn mã nguồn vào file main.c trong project vừa tạo: #include <avr/io.h> int main(){ DDRD |= 0xFF; PORTD |= 0xAA; DDRC |= 0xFF; PORTC |= 0x00; return 0; } 19 Đoạn code trên có nghĩa đang xét chế độ cho Port D và C với DDRx là mode Input hay Output của mỗi chân vi điều khiển.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ