Đồ án: Thiết kế mạch đo nhiệt độ, độ ẩm dùng DHT11 (ĐH Bách Khoa HN)

Đồ án mạch đo nhiệt độ độ ẩm dùng DHT11: Thiết kế mạch chi tiết, nguyên lý hoạt động, code và tài liệu tham khảo hữu ích. Tải ngay!

Trường đại học

Đại học Bách khoa Hà Nội

Chuyên ngành

Điện – Điện tử

Người đăng

Ẩn danh

Thể loại

Đồ án II

2023

45
17
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI NÓI ĐẦU

LỜI CAM ĐOAN

MỤC LỤC

DANH MỤC KÍ HIỆU VIẾT TẮT

DANH MỤC HÌNH VẼ

TÓM TẮT ĐỒ ÁN

1. CHƯƠNG 1: CƠ SỞ LÝ THUYẾT CHUNG

1.1. Giới thiệu chung

2. CHI TIẾT CẤU HÌNH CỦA MẠCH KIT

2.1. Cấu trúc của mạch Kit

2.2. Các thông số chính của Kit

2.3. Mạch nạp mã nguồn

2.4. Màn hình LCD

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

4. VẬN DỤNG CÁC KIẾN THỨC VÀO THỰC TẾ

4.2. Cảm biến DHT 11

4.3. Phương hướng giải quyết

4.4. Mô phỏng và thiết kế

4.5. Thử nghiệm và nhận xét

KẾT LUẬN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tìm hiểu chung về mạch đo nhiệt độ độ ẩm DHT11 và ứng dụng

Trong kỷ nguyên công nghệ số, việc theo dõi và kiểm soát các thông số môi trường như nhiệt độđộ ẩm đóng vai trò then chốt trong nhiều lĩnh vực. Từ nông nghiệp thông minh, quản lý kho lạnh đến hệ thống HVAC (Heating, Ventilation, and Air Conditioning), nhu cầu về các giải pháp đo lường chính xác và tin cậy ngày càng tăng. Cảm biến DHT11, với ưu điểm về chi phí thấp, dễ sử dụng và khả năng tích hợp cao, đã trở thành một lựa chọn phổ biến cho nhiều ứng dụng đo nhiệt độđộ ẩm. Bài viết này sẽ đi sâu vào thiết kế và ứng dụng của mạch đo nhiệt độ độ ẩm sử dụng DHT11, cung cấp cái nhìn tổng quan về nguyên lý hoạt động, cách kết nối với vi điều khiển, và các ứng dụng thực tế. Theo tài liệu từ Đồ án II của Đại học Bách Khoa Hà Nội, cảm biến DHT11 là một trong những cảm biến phổ biến và hiệu quả nhất để đo nhiệt độ và độ ẩm trong môi trường, đặc biệt phù hợp với các project Arduino. Với sự phát triển của Internet of Things (IoT), mạch đo nhiệt độ độ ẩm sử dụng DHT11 ngày càng được ứng dụng rộng rãi, góp phần nâng cao hiệu quả và tự động hóa trong nhiều lĩnh vực.

1.1. Giới thiệu tổng quan về cảm biến DHT11 và thông số kỹ thuật

Cảm biến DHT11 là một module DHT11 tích hợp hai loại cảm biến: một cảm biến nhiệt độ (thermistor) và một cảm biến độ ẩm điện dung. Nó cung cấp tín hiệu số tương ứng với nhiệt độ và độ ẩm đo được. DHT11 hoạt động ở dải điện áp 3.5V - 5.5V, có dải đo nhiệt độ từ 0°C đến 50°C với độ chính xác ±2°C, và dải đo độ ẩm từ 20% đến 90%RH với độ chính xác ±5%RH. Tần số lấy mẫu tối đa là 1Hz. Để hiểu rõ hơn, có thể tham khảo datasheet DHT11 để nắm vững các thông số kỹ thuật DHT11 quan trọng. Việc hiểu rõ nguyên lý hoạt động DHT11 là nền tảng quan trọng để thiết kế và sử dụng mạch đo nhiệt độ độ ẩm hiệu quả. Cảm biến trả về dữ liệu qua giao thức 1-Wire, cho phép kết nối đơn giản với vi điều khiển.

1.2. Ưu điểm và hạn chế của module DHT11 so với các loại cảm biến khác

DHT11 có nhiều ưu điểm như chi phí thấp, dễ sử dụng, kích thước nhỏ gọn và khả năng giao tiếp số. Tuy nhiên, nó cũng có những hạn chế so với các cảm biến khác như DHT22 hoặc SHT31, bao gồm dải đo hẹp hơn, độ chính xác thấp hơn và thời gian phản hồi chậm hơn. Ví dụ, DHT22 có dải đo nhiệt độ rộng hơn (-40°C đến 125°C) và độ chính xác cao hơn. Do đó, việc lựa chọn cảm biến DHT11 hay các loại khác phụ thuộc vào yêu cầu cụ thể của từng ứng dụng. Nếu yêu cầu độ chính xác cao và dải đo rộng, các cảm biến như DHT22 hoặc SHT31 sẽ là lựa chọn phù hợp hơn. Tuy nhiên, nếu chi phí là yếu tố quan trọng và yêu cầu về độ chính xác không quá khắt khe, DHT11 vẫn là một lựa chọn kinh tế và hiệu quả.

II. Các vấn đề thường gặp khi sử dụng cảm biến DHT11 và giải pháp

Mặc dù DHT11 rất phổ biến, người dùng thường gặp phải một số vấn đề khi sử dụng, ảnh hưởng đến độ tin cậy của mạch đo nhiệt độ độ ẩm. Các vấn đề thường gặp bao gồm sai số trong phép đo, nhiễu tín hiệu, và khó khăn trong việc calibrating DHT11. Để giải quyết các vấn đề này, cần hiểu rõ nguyên nhân và áp dụng các biện pháp khắc phục phù hợp. Việc đảm bảo nguồn cấp ổn định, sử dụng điện trở kéo lên phù hợp, và thực hiện calibrating DHT11 định kỳ là những yếu tố quan trọng để nâng cao độ chính xác và độ tin cậy của mạch đo nhiệt độ độ ẩm. Theo kinh nghiệm từ nhiều project DHT11, việc sử dụng thư viện chính xác và kiểm tra kết nối cẩn thận cũng giúp giảm thiểu các vấn đề thường gặp.

2.1. Xác định và khắc phục sai số đo lường của DHT11

Sai số đo lường của DHT11 có thể do nhiều nguyên nhân, bao gồm sai số vốn có của cảm biến, ảnh hưởng của môi trường xung quanh, và lỗi trong quá trình đọc dữ liệu. Để giảm thiểu sai số, cần đảm bảo cảm biến được đặt ở vị trí thông thoáng, tránh ánh nắng trực tiếp và nguồn nhiệt. Ngoài ra, có thể sử dụng phương pháp trung bình trượt để lọc nhiễu và cải thiện độ chính xác. Việc calibrating DHT11 cũng là một biện pháp quan trọng để hiệu chỉnh sai số. Có thể sử dụng các thiết bị đo chuẩn để so sánh và điều chỉnh giá trị đo của DHT11 cho phù hợp. Thông tin chi tiết về độ chính xác DHT11sai số DHT11 có thể được tìm thấy trong datasheet DHT11.

2.2. Cách giảm nhiễu và đảm bảo tín hiệu ổn định cho mạch DHT11

Nhiễu tín hiệu là một vấn đề thường gặp khi sử dụng DHT11, đặc biệt trong môi trường có nhiều thiết bị điện tử. Để giảm nhiễu, cần sử dụng dây dẫn ngắn và chất lượng tốt, tránh để dây dẫn gần các nguồn gây nhiễu. Sử dụng điện trở kéo lên có giá trị phù hợp (thường là 4.7kΩ hoặc 10kΩ) cũng giúp cải thiện độ ổn định của tín hiệu. Ngoài ra, có thể sử dụng tụ lọc để loại bỏ nhiễu tần số cao. Trong các ứng dụng quan trọng, nên sử dụng các biện pháp bảo vệ chống tĩnh điện để tránh làm hỏng cảm biến. Việc kiểm tra kết nối và đảm bảo không có tiếp xúc kém cũng là một yếu tố quan trọng để đảm bảo tín hiệu ổn định cho mạch đo nhiệt độ độ ẩm.

2.3. Hướng dẫn calibrating DHT11 để cải thiện độ chính xác

Calibration là quá trình hiệu chỉnh cảm biến để giảm thiểu sai số và cải thiện độ chính xác. Để calibrating DHT11, cần có một thiết bị đo chuẩn để so sánh giá trị đo của DHT11 với giá trị chuẩn. Có thể sử dụng các phương pháp hiệu chỉnh tuyến tính hoặc phi tuyến tính để điều chỉnh giá trị đo của DHT11. Các bước cơ bản bao gồm: (1) Đo nhiệt độ và độ ẩm bằng cả DHT11 và thiết bị đo chuẩn trong môi trường ổn định. (2) So sánh giá trị đo và tính toán sai số. (3) Sử dụng phương trình hiệu chỉnh để điều chỉnh giá trị đo của DHT11. Quá trình này cần được thực hiện định kỳ để đảm bảo độ chính xác của mạch đo nhiệt độ độ ẩm.

III. Hướng dẫn cách kết nối DHT11 với Arduino và ESP32 ESP8266

DHT11 rất dễ dàng kết nối với các vi điều khiển phổ biến như Arduino, ESP32, và ESP8266. Việc kết nối bao gồm việc đấu nối các chân của DHT11 với các chân GPIO của vi điều khiển, và sử dụng thư viện phù hợp để đọc dữ liệu. Với Arduino, có nhiều thư viện hỗ trợ DHT11, giúp đơn giản hóa quá trình lập trình. Với ESP32ESP8266, có thể tận dụng khả năng kết nối Wi-Fi để truyền dữ liệu lên cloud, tạo ra các ứng dụng IoT mạch đo nhiệt độ độ ẩm. Cần lưu ý về việc sử dụng điện trở kéo lên DHT11 để đảm bảo tín hiệu ổn định.

3.1. Chi tiết sơ đồ mạch và cách kết nối DHT11 với Arduino

Kết nối DHT11 với Arduino rất đơn giản. Sơ đồ mạch cơ bản bao gồm việc kết nối chân VCC của DHT11 với chân 5V của Arduino, chân GND với chân GND, và chân DATA với một chân GPIO bất kỳ (ví dụ, chân D2). Cần sử dụng một điện trở kéo lên DHT11 (4.7kΩ hoặc 10kΩ) giữa chân DATA và chân VCC để đảm bảo tín hiệu ổn định. Sau khi kết nối phần cứng, cần cài đặt thư viện DHT11 cho Arduino (ví dụ, DHT sensor library by Adafruit). Code Arduino DHT11 bao gồm việc khởi tạo đối tượng DHT11, chỉ định chân DATA, và sử dụng hàm read() để đọc dữ liệu nhiệt độ và độ ẩm. Các giá trị này sau đó có thể được hiển thị trên LCD hiển thị nhiệt độ độ ẩm hoặc gửi lên cloud.

3.2. Hướng dẫn kết nối và lập trình DHT11 với ESP32 và ESP8266 cho IoT

Kết nối DHT11 với ESP32 hoặc ESP8266 tương tự như với Arduino, nhưng có thêm khả năng kết nối Wi-Fi. Sơ đồ mạch tương tự, nhưng cần chú ý đến điện áp hoạt động của ESP32ESP8266 (3.3V). Có thể sử dụng các thư viện DHT11 tương tự như với Arduino. Code Arduino DHT11 cho ESP32ESP8266 cần thêm phần kết nối Wi-Fi và truyền dữ liệu lên cloud (ví dụ, sử dụng MQTT hoặc HTTP). Việc này cho phép giám sát nhiệt độ và độ ẩm từ xa thông qua các ứng dụng web hoặc di động. Đây là ứng dụng phổ biến trong các project DHT11 liên quan đến IoT.

3.3. Lưu ý về điện trở kéo lên DHT11 và cách chọn giá trị phù hợp

Điện trở kéo lên DHT11 đóng vai trò quan trọng trong việc đảm bảo tín hiệu ổn định. Giá trị điện trở thường được khuyến nghị là 4.7kΩ hoặc 10kΩ. Giá trị điện trở quá thấp có thể làm tăng dòng tiêu thụ và gây nóng cảm biến, trong khi giá trị quá cao có thể làm giảm độ nhạy của tín hiệu. Việc chọn giá trị điện trở phù hợp phụ thuộc vào điện áp hoạt động và đặc tính của DHT11. Nên tham khảo datasheet DHT11 để có thông tin chi tiết về giá trị điện trở kéo lên được khuyến nghị. Trong quá trình thử nghiệm, có thể điều chỉnh giá trị điện trở để tìm ra giá trị tối ưu cho mạch đo nhiệt độ độ ẩm.

IV. Ứng dụng thực tiễn của mạch đo nhiệt độ độ ẩm DHT11

Mạch đo nhiệt độ độ ẩm DHT11 có nhiều ứng dụng thực tiễn trong các lĩnh vực khác nhau. Từ giám sát môi trường trong nhà, quản lý kho lạnh, đến nông nghiệp thông minh, khả năng đo lường chính xác và tin cậy của DHT11 đóng vai trò quan trọng trong việc cải thiện hiệu quả và tự động hóa. Việc tích hợp DHT11 với các hệ thống IoT mở ra nhiều cơ hội mới cho việc giám sát và điều khiển môi trường từ xa. Có thể tham khảo các ứng dụng DHT11 trong các dự án thực tế để hiểu rõ hơn về tiềm năng của mạch đo nhiệt độ độ ẩm.

4.1. Ứng dụng trong giám sát môi trường nhà ở và văn phòng

Trong môi trường nhà ở và văn phòng, mạch đo nhiệt độ độ ẩm DHT11 có thể được sử dụng để theo dõi và điều chỉnh nhiệt độ và độ ẩm, tạo ra môi trường sống và làm việc thoải mái và lành mạnh hơn. Việc giám sát nhiệt độ và độ ẩm giúp phát hiện sớm các vấn đề về hệ thống HVAC, từ đó tiết kiệm năng lượng và giảm chi phí bảo trì. Ngoài ra, có thể tích hợp DHT11 với các hệ thống nhà thông minh để tự động điều chỉnh nhiệt độ và độ ẩm dựa trên các thông số đo được. Điều này giúp cải thiện chất lượng cuộc sống và tăng tính tiện nghi.

4.2. Sử dụng DHT11 trong quản lý kho lạnh và bảo quản thực phẩm

Trong quản lý kho lạnh và bảo quản thực phẩm, việc kiểm soát nhiệt độ và độ ẩm là yếu tố then chốt để đảm bảo chất lượng và kéo dài thời gian bảo quản. Mạch đo nhiệt độ độ ẩm DHT11 có thể được sử dụng để theo dõi liên tục các thông số này, phát hiện sớm các sự cố và đưa ra cảnh báo kịp thời. Việc này giúp giảm thiểu rủi ro hư hỏng và lãng phí thực phẩm. Có thể tích hợp DHT11 với các hệ thống giám sát từ xa để theo dõi nhiệt độ và độ ẩm trong thời gian thực, ngay cả khi không có mặt tại kho lạnh.

4.3. Ứng dụng trong nông nghiệp thông minh để theo dõi điều kiện canh tác

Trong nông nghiệp thông minh, mạch đo nhiệt độ độ ẩm DHT11 có thể được sử dụng để theo dõi điều kiện canh tác, cung cấp thông tin quan trọng cho việc quản lý tưới tiêu và bón phân. Việc giám sát nhiệt độ và độ ẩm giúp tối ưu hóa điều kiện sinh trưởng của cây trồng, tăng năng suất và chất lượng sản phẩm. Có thể tích hợp DHT11 với các hệ thống IoT để theo dõi điều kiện canh tác từ xa và đưa ra các quyết định dựa trên dữ liệu thực tế. Điều này giúp tiết kiệm nước, phân bón và giảm thiểu tác động tiêu cực đến môi trường.

V. Thiết kế mạch hiển thị nhiệt độ độ ẩm sử dụng LCD và DHT11

Để hiển thị thông tin đo được từ DHT11, việc sử dụng LCD hiển thị nhiệt độ độ ẩm là một giải pháp phổ biến và hiệu quả. Việc kết nối DHT11LCD với Arduino hoặc các vi điều khiển khác cho phép tạo ra một mạch hiển thị nhiệt độ độ ẩm hoàn chỉnh. Code Arduino DHT11 cần được điều chỉnh để hiển thị các giá trị đo được lên LCD. Việc này bao gồm việc khởi tạo LCD, thiết lập vị trí hiển thị, và định dạng dữ liệu. Có nhiều thư viện hỗ trợ LCD cho Arduino, giúp đơn giản hóa quá trình lập trình.

5.1. Sơ đồ mạch hiển thị nhiệt độ độ ẩm sử dụng DHT11 và LCD

Sơ đồ mạch hiển thị nhiệt độ độ ẩm bao gồm việc kết nối DHT11LCD với Arduino hoặc các vi điều khiển khác. Chân VCC và GND của DHT11 được kết nối với chân 5V và GND của Arduino. Chân DATA của DHT11 được kết nối với một chân GPIO bất kỳ của Arduino (ví dụ, chân D2). Các chân của LCD (RS, EN, D4, D5, D6, D7) được kết nối với các chân GPIO tương ứng của Arduino. Cần sử dụng một điện trở kéo lên DHT11 (4.7kΩ hoặc 10kΩ) giữa chân DATA và chân VCC. Chi tiết kết nối chân và sơ đồ có thể được tìm thấy online hoặc trong các hướng dẫn về mạch hiển thị nhiệt độ độ ẩm.

5.2. Code Arduino DHT11 để hiển thị dữ liệu trên LCD 16x2

Code Arduino DHT11 cần được điều chỉnh để hiển thị dữ liệu nhiệt độ và độ ẩm lên LCD 16x2. Đầu tiên, cần khai báo thư viện LiquidCrystal.h để điều khiển LCD. Sau đó, cần khởi tạo đối tượng LiquidCrystal, chỉ định các chân kết nối của LCD với Arduino. Trong hàm loop(), cần đọc dữ liệu nhiệt độ và độ ẩm từ DHT11, định dạng dữ liệu, và sử dụng các hàm lcd.setCursor(), lcd.print() để hiển thị dữ liệu lên LCD. Có thể tham khảo các ví dụ code Arduino DHT11 online để có hướng dẫn chi tiết.

VI. DIY mạch đo nhiệt độ độ ẩm Lời khuyên Lưu ý khi thực hiện

Việc tự làm (DIY) một mạch đo nhiệt độ độ ẩm sử dụng DHT11 là một dự án thú vị và bổ ích. Tuy nhiên, cần lưu ý một số điều để đảm bảo thành công. Thứ nhất, cần chọn các linh kiện chất lượng tốt và có thông số phù hợp. Thứ hai, cần kiểm tra kết nối cẩn thận trước khi cấp nguồn. Thứ ba, cần sử dụng code Arduino DHT11 chính xác và phù hợp với phần cứng. Cuối cùng, cần thực hiện calibrating DHT11 để đảm bảo độ chính xác. Việc tham khảo các hướng dẫn DIY mạch đo nhiệt độ độ ẩm online cũng giúp ích rất nhiều.

6.1. Các bước cơ bản để DIY mạch đo nhiệt độ độ ẩm tại nhà

Các bước cơ bản để DIY mạch đo nhiệt độ độ ẩm bao gồm: (1) Lên kế hoạch và chuẩn bị các linh kiện cần thiết ( DHT11, Arduino, LCD, điện trở, dây dẫn, v.v.). (2) Kết nối các linh kiện theo sơ đồ mạch đã chọn. (3) Viết code Arduino DHT11 để đọc dữ liệu và hiển thị lên LCD. (4) Nạp code lên Arduino. (5) Kiểm tra và hiệu chỉnh mạch. (6) Lắp ráp vào vỏ hộp (nếu cần). Cần thực hiện từng bước cẩn thận và kiểm tra kỹ trước khi chuyển sang bước tiếp theo.

6.2. Các lỗi thường gặp khi DIY mạch đo nhiệt độ độ ẩm và cách phòng tránh

Các lỗi thường gặp khi DIY mạch đo nhiệt độ độ ẩm bao gồm: (1) Kết nối sai chân. (2) Sử dụng linh kiện không phù hợp. (3) Code Arduino DHT11 không chính xác. (4) Cảm biến bị hỏng. (5) Nguồn cấp không ổn định. Để phòng tránh các lỗi này, cần kiểm tra kết nối cẩn thận, sử dụng linh kiện chất lượng tốt, kiểm tra code kỹ lưỡng, và đảm bảo nguồn cấp ổn định. Ngoài ra, nên tham khảo các hướng dẫn và ví dụ DIY mạch đo nhiệt độ độ ẩm online để có thêm kinh nghiệm.

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. 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 DHT 11 - 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. Hình 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.

9 ● Đ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 18 để 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. Hình 2 : Sơ đồ nguyên lý của bộ kit 11 Hình 3 : Cấu trúc mạch kit được cung cấp Hình 4 : Sơ đồ mạch in, quan sát trên phần mềm thiết kế 12 Hình 5 : 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 STT Tên linh kiện Chức năng 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 Dãy LED đơn Báo trạng thái logic của 8 chân ở Port-D của 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.

Hình 6 : Mạch nạp ISP chuẩn 10 chân sử dụng cho bộ Kit 2.4 Màn hình LCD Mạch Kit được thiết kế để tương thích với màn hình LCD text (LCD 1602) như trên hình dưới. Hình 7 : Màn hình LCD 1602 sử dụng trong bộ Kit 15 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. Hình 9 : 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. 16 Hình 10 : Giao diện chọn loại vi điều khiển 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.

17 Hình 12 : 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; } 18 Đ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 đủ