I. Khám phá tổng quan đồ án cửa tự động dùng vi điều khiển 80C51
Đồ án thiết kế cửa tự động dùng vi điều khiển 80C51 là một đề tài nghiên cứu kinh điển trong lĩnh vực điện tử - tự động hóa, thể hiện sự kết hợp giữa kiến thức cơ khí, điện tử và lập trình hệ thống nhúng. Mục tiêu chính của đồ án là chế tạo một mô hình cửa có khả năng tự động đóng, mở dựa trên tín hiệu từ cảm biến, với bộ não xử lý trung tâm là vi điều khiển 8051. Sự phát triển của các công trình hiện đại như tòa nhà văn phòng, siêu thị, sân bay đòi hỏi các giải pháp tiện nghi và tiết kiệm năng lượng, trong đó cửa tự động đóng vai trò quan trọng. Nó không chỉ mang lại sự thoải mái cho người sử dụng mà còn giúp duy trì nhiệt độ trong phòng có điều hòa, tránh thất thoát năng lượng. Đồ án này tập trung vào việc ứng dụng họ vi điều khiển 8051, cụ thể là IC AT89C51, để xây dựng một hệ thống hoàn chỉnh, từ khâu thiết kế cơ khí, lựa chọn linh kiện điện tử, thiết kế mạch nguyên lý cho đến lập trình và thi công thực tế. Báo cáo đồ án này sẽ cung cấp một hướng dẫn làm đồ án chi tiết, giúp sinh viên nắm vững quy trình từ lý thuyết đến thực hành, giải quyết các vấn đề kỹ thuật phát sinh và hoàn thiện một sản phẩm có tính ứng dụng cao. Việc hoàn thành đồ án không chỉ củng cố kiến thức chuyên ngành mà còn rèn luyện kỹ năng phân tích, giải quyết vấn đề và làm việc độc lập.
1.1. Mục đích và ý nghĩa thực tiễn của đề tài cửa tự động
Mục đích cốt lõi của việc thiết kế là nghiên cứu và chế tạo thành công một mô hình cửa tự động thông minh, đáp ứng các yêu cầu về độ tin cậy, an toàn và chi phí hợp lý. Đề tài này giúp sinh viên áp dụng kiến thức lý thuyết về hệ thống nhúng, vi điều khiển và lập trình vào một bài toán thực tế. Ý nghĩa thực tiễn của đồ án rất lớn. Thứ nhất, nó tạo ra một sản phẩm hữu ích, có thể ứng dụng tại các nơi công cộng, giúp lưu thông dễ dàng và nhanh chóng, đặc biệt hữu ích cho người khuyết tật hoặc người đang mang vác đồ vật. Thứ hai, như tài liệu gốc đã đề cập, cửa tự động giúp “tránh thất thoát hơi lạnh ra ngoài gây lãng phí” tại các không gian sử dụng máy lạnh. Cuối cùng, việc làm chủ công nghệ thiết kế mạch điều khiển động cơ và lập trình cho vi điều khiển 8051 mở ra cơ hội phát triển các sản phẩm tự động hóa khác, góp phần vào công cuộc công nghiệp hóa, hiện đại hóa đất nước.
1.2. Nhiệm vụ và phạm vi nghiên cứu của đồ án tốt nghiệp
Nhiệm vụ trọng tâm của đồ án là thiết kế và thi công một mô hình cửa tự động hoàn chỉnh. Sinh viên cần thực hiện các công việc cụ thể: nghiên cứu và lựa chọn linh kiện phù hợp, bao gồm vi điều khiển AT89C51, cảm biến, động cơ và mạch công suất. Tiếp theo là thiết kế mạch nguyên lý cửa tự động, tiến hành thi công mạch in và lắp ráp phần cứng. Phần quan trọng nhất là phân tích thuật toán điều khiển, viết code cửa tự động 8051 bằng ngôn ngữ C hoặc Assembly, sau đó nạp chương trình và tiến hành hiệu chỉnh. Phạm vi nghiên cứu của đồ án tập trung vào họ vi điều khiển 8051, không mở rộng sang các dòng vi điều khiển khác như PIC hay AVR. Hệ thống sử dụng cảm biến hồng ngoại để phát hiện vật cản, động cơ DC để truyền động và mạch cầu H L298 để đảo chiều quay. Toàn bộ quá trình từ thiết kế, mô phỏng đến thi công đều được trình bày chi tiết trong thuyết minh đồ án.
II. Phân tích các yêu cầu kỹ thuật khi thiết kế cửa tự động
Việc thiết kế một hệ thống cửa tự động đòi hỏi phải đáp ứng nghiêm ngặt các yêu cầu về cả cơ khí lẫn điện tử để đảm bảo hệ thống vận hành ổn định, an toàn và chính xác. Thách thức lớn nhất là làm sao để các thành phần cơ khí và điện tử phối hợp nhịp nhàng với nhau. Về cơ khí, kết cấu phải đủ vững chắc, chuyển động phải êm ái, không gây tiếng ồn và có độ bền cao. Về điện tử, mạch điều khiển phải có khả năng xử lý tín hiệu nhanh, điều khiển động cơ DC chính xác và có các cơ chế bảo vệ an toàn. Chương trình điều khiển phải được xây dựng dựa trên một lưu đồ giải thuật rõ ràng, xử lý được các tình huống phức tạp như có người dừng lại giữa cửa hoặc nhiều người qua lại liên tục. Tài liệu "Thiết kế hệ thống điều khiển cửa tự động sử dụng hệ vi điều khiển họ 80C51" nhấn mạnh yêu cầu cửa phải có khả năng đóng mở thông minh: mở nhanh, đóng chậm và tự động đảo chiều khi gặp vật cản. Điều này đặt ra yêu cầu cao cho cả phần cứng (chất lượng cảm biến, mạch công suất) và phần mềm (lập trình 8051 tối ưu).
2.1. Yêu cầu về kết cấu cơ khí và hệ thống truyền động
Hệ thống cơ khí là nền tảng vật lý của cửa, quyết định độ bền và sự ổn định khi vận hành. Các yêu cầu chính bao gồm: khung cửa chắc chắn, vật liệu có khả năng chống chịu môi trường tốt. Cơ cấu truyền động, theo mô tả trong tài liệu gốc, sử dụng thanh ray, con lăn, puli và dây curoa, phải được gia công chính xác để đảm bảo cánh cửa trượt êm và không bị kẹt. Cánh cửa, thường làm bằng kính, cần được gá lắp chắc chắn vào cơ cấu chuyển động. Đặc biệt, rãnh trượt dưới phải được thiết kế để dẫn hướng tốt và dễ dàng vệ sinh. Toàn bộ hệ thống phải đảm bảo vận hành êm ái, giảm thiểu ma sát và tiếng ồn, đồng thời dễ dàng cho việc bảo dưỡng, sửa chữa khi cần thiết. Lựa chọn động cơ DC có momen xoắn và tốc độ phù hợp với trọng lượng cánh cửa là yếu tố then chốt.
2.2. Yêu cầu về chương trình và thuật toán điều khiển hệ thống
Chương trình điều khiển là linh hồn của hệ thống, quyết định sự thông minh và an toàn của cửa. Yêu cầu đặt ra là cửa phải tự động mở khi phát hiện người hoặc vật thể và tự động đóng lại sau một khoảng thời gian trễ an toàn. Một yêu cầu nâng cao được đề cập trong đồ án là điều khiển tốc độ thông minh: cửa mở nhanh (vận tốc v1), nhưng khi gần hết hành trình sẽ giảm tốc (vận tốc v3) để dừng lại chính xác. Khi đóng, cửa cũng di chuyển nhanh (vận tốc v2) và giảm tốc ở cuối hành trình để tránh va chạm. Đặc biệt, thuật toán phải xử lý được tình huống an toàn: nếu có vật cản xuất hiện trong khi cửa đang đóng, cửa phải lập tức dừng lại và mở ra. Điều này đòi hỏi việc lập trình 8051 phải có cấu trúc tốt, sử dụng ngắt và các vòng lặp kiểm tra trạng thái cảm biến một cách liên tục và hiệu quả.
III. Hướng dẫn thiết kế mạch điều khiển trung tâm với AT89C51
Khối điều khiển trung tâm là bộ não của toàn bộ hệ thống cửa tự động, có nhiệm vụ nhận tín hiệu từ cảm biến, xử lý thông tin và ra quyết định điều khiển cơ cấu chấp hành. Trong khuôn khổ đồ án này, vi điều khiển AT89C51 thuộc họ vi điều khiển 8051 được lựa chọn làm hạt nhân xử lý. Đây là một lựa chọn phổ biến cho các ứng dụng điều khiển do có cấu trúc đơn giản, giá thành rẻ, và cộng đồng hỗ trợ lớn. Việc thiết kế khối này bao gồm ba phần chính: mạch vi điều khiển tối thiểu, mạch nguồn ổn áp và mạch giao tiếp với các module khác. Mạch vi điều khiển tối thiểu bao gồm AT89C51, mạch tạo dao động dùng thạch anh 12MHz và mạch reset. Mạch nguồn có vai trò cung cấp điện áp ổn định nguồn 5VDC cho vi điều khiển và các IC logic khác hoạt động. Việc thiết kế một khối trung tâm ổn định là tiền đề quan trọng nhất để đảm bảo toàn bộ hệ thống nhúng hoạt động chính xác và bền bỉ. Các chân I/O của vi điều khiển sẽ được kết nối tới cảm biến, công tắc hành trình và khối điều khiển động cơ.
3.1. Giới thiệu vi điều khiển AT89C51 và cấu trúc phần cứng
Vi điều khiển 8051, cụ thể là AT89C51, là một vi mạch tích hợp 8-bit do Atmel sản xuất, dựa trên kiến trúc của Intel. Nó sở hữu các đặc điểm nổi bật như 4KB bộ nhớ Flash lập trình được, 128 byte RAM nội, 32 chân I/O chia thành 4 port (P0, P1, P2, P3), hai bộ định thời/đếm 16-bit, và một cổng nối tiếp. Những tài nguyên này hoàn toàn đủ để đáp ứng yêu cầu của một báo cáo đồ án cửa tự động. Trong thiết kế, Port 1 có thể được dùng để nhận tín hiệu từ các cảm biến và công tắc hành trình. Port 2 được dùng để xuất tín hiệu điều khiển cho mạch cầu H L298. Cấu trúc phần cứng đơn giản và tập lệnh mạnh mẽ giúp việc lập trình 8051 trở nên dễ tiếp cận hơn đối với sinh viên.
3.2. Thiết kế mạch nguồn ổn áp 5VDC sử dụng IC 7805
Mọi mạch điện tử đều yêu cầu một nguồn cấp điện ổn định. Vi điều khiển AT89C51 và các IC số khác hoạt động ở mức điện áp 5V. Để tạo ra nguồn 5VDC ổn định, giải pháp phổ biến và hiệu quả là sử dụng IC ổn áp 7805. Mạch nguồn hoàn chỉnh thường bắt đầu bằng một biến áp hạ áp từ 220VAC xuống 12VAC, sau đó qua cầu diode để nắn thành dòng một chiều. Một tụ lọc lớn (khoảng 1000µF) được sử dụng để làm phẳng điện áp sau chỉnh lưu. Điện áp này (khoảng 12VDC) sẽ được đưa vào chân IN của IC 7805. Chân OUT của 7805 sẽ cho ra một điện áp 5V gần như không đổi. Theo tài liệu tham khảo, các tụ nhỏ (khoảng 10µF và 100nF) được thêm vào ở cả đầu vào và đầu ra của IC 7805 để lọc nhiễu cao tần và ngăn chặn hiện tượng tự dao động, đảm bảo nguồn cấp cho vi điều khiển là sạch và ổn định nhất có thể.
IV. Phương pháp thiết kế mạch cảm biến và điều khiển động cơ DC
Để hệ thống cửa tự động hoạt động, cần có hai khối chức năng quan trọng: khối cảm biến để "nhận biết" môi trường xung quanh và khối công suất để "hành động". Khối cảm biến trong đồ án này sử dụng công nghệ hồng ngoại để phát hiện sự hiện diện của người hoặc vật thể. Khối công suất có nhiệm vụ điều khiển động cơ DC, cung cấp đủ dòng điện và khả năng đảo chiều quay để đóng/mở cửa. Việc thiết kế hai khối này đòi hỏi kiến thức về cả điện tử tương tự và điện tử công suất. Tín hiệu từ cảm biến hồng ngoại thường là tín hiệu logic mức thấp hoặc cao, được đưa trực tiếp vào chân vi điều khiển để xử lý. Tín hiệu điều khiển từ vi điều khiển lại có dòng rất nhỏ, không đủ để chạy động cơ. Do đó, cần một mạch trung gian là mạch cầu H L298, có khả năng khuếch đại dòng và điều khiển chiều quay của động cơ một cách hiệu quả. Sự kết hợp chính xác giữa hai khối này quyết định độ nhạy và sức mạnh của toàn hệ thống.
4.1. Nguyên lý hoạt động của cảm biến hồng ngoại thu phát
Cảm biến hồng ngoại hoạt động dựa trên nguyên lý thu và phát tia hồng ngoại. Cấu tạo cơ bản gồm một diode phát hồng ngoại (LED phát) và một cảm biến thu (phototransistor hoặc IC chuyên dụng như PNA4602M). Trong ứng dụng này, cặp mắt thu phát hồng ngoại thường được đặt đối diện nhau qua lối đi. LED phát liên tục phát ra một chùm tia hồng ngoại. Ở trạng thái bình thường, cảm biến thu nhận được tia này và giữ ngõ ra ở một mức logic nhất định (ví dụ mức cao). Khi có người hoặc vật thể đi qua, chùm tia hồng ngoại bị chắn lại. Cảm biến thu không nhận được tín hiệu, làm thay đổi trạng thái ngõ ra (xuống mức thấp). Sự thay đổi mức logic này chính là tín hiệu báo cho vi điều khiển 8051 biết có vật cản. Ưu điểm của loại cảm biến này là độ tin cậy cao, ít bị ảnh hưởng bởi ánh sáng môi trường và giá thành rẻ.
4.2. Ứng dụng mạch cầu H L298N để điều khiển động cơ DC
Động cơ DC 12V là cơ cấu chấp hành chính, tạo ra lực kéo để đóng/mở cửa. Để điều khiển nó, không thể nối trực tiếp vào chân vi điều khiển. Mạch cầu H L298 (thường dùng module L298N) là giải pháp lý tưởng. Mạch này là một IC tích hợp hai mạch cầu H, cho phép điều khiển hai động cơ độc lập hoặc một động cơ bước. Để đảo chiều một động cơ DC, ta cấp nguồn 12V vào module và nối 2 dây động cơ vào các ngõ ra (OUT1, OUT2). Vi điều khiển AT89C51 sẽ xuất 2 tín hiệu logic (ví dụ từ P2.0 và P2.1) vào các chân IN1 và IN2 của L298N. Khi (IN1=1, IN2=0), động cơ quay theo một chiều (mở cửa). Khi (IN1=0, IN2=1), động cơ quay theo chiều ngược lại (đóng cửa). Khi (IN1=IN2), động cơ sẽ dừng. Module L298N cũng cho phép điều khiển tốc độ động cơ bằng phương pháp điều chế độ rộng xung (PWM) thông qua chân ENA, một tính năng hữu ích để thực hiện yêu cầu đóng/mở cửa thông minh.
V. Cách lập trình và mô phỏng hệ thống trên phần mềm Keil C
Sau khi hoàn thiện thiết kế phần cứng, giai đoạn lập trình và mô phỏng giữ vai trò quyết định để biến các linh kiện rời rạc thành một hệ thống thông minh. Quá trình này bắt đầu bằng việc xây dựng một lưu đồ giải thuật chi tiết, mô tả logic hoạt động của cửa trong mọi tình huống. Dựa trên lưu đồ, mã nguồn chương trình sẽ được viết bằng ngôn ngữ lập trình C trong môi trường phần mềm Keil C. Keil C là một trình biên dịch và gỡ lỗi mạnh mẽ, chuyên dụng cho họ vi điều khiển 8051. Trước khi nạp chương trình vào vi điều khiển thật, việc mô phỏng là cực kỳ quan trọng để kiểm tra lỗi và tối ưu thuật toán. Mô phỏng Proteus là công cụ lý tưởng cho nhiệm vụ này. Nó cho phép vẽ lại toàn bộ sơ đồ khối hệ thống và nạp file HEX (tạo ra từ Keil C) vào mô hình vi điều khiển ảo để chạy thử. Quá trình này giúp tiết kiệm thời gian, chi phí và tránh hư hỏng phần cứng do lỗi lập trình. Việc kết hợp nhuần nhuyễn giữa Keil C và Proteus là kỹ năng không thể thiếu khi thực hiện báo cáo đồ án liên quan đến vi điều khiển.
5.1. Xây dựng sơ đồ khối hệ thống và lưu đồ giải thuật
Trước khi viết code, việc trực quan hóa hệ thống là bước đầu tiên. Sơ đồ khối hệ thống sẽ mô tả các thành phần chính và mối liên kết giữa chúng. Sơ đồ này thường bao gồm: Khối Nguồn, Khối Điều Khiển Trung Tâm (VĐK AT89C51), Khối Cảm Biến (Hồng ngoại, công tắc hành trình), và Khối Chấp Hành (Module L298N và Động cơ DC). Từ sơ đồ khối, lưu đồ giải thuật được xây dựng để mô tả logic chương trình. Lưu đồ bắt đầu từ khối "Start", sau đó là khởi tạo các port. Vòng lặp chính sẽ liên tục kiểm tra trạng thái của cảm biến hồng ngoại. Nếu phát hiện vật cản, chương trình sẽ gọi hàm mở cửa. Nếu không, nó sẽ kiểm tra bộ đếm thời gian trễ, nếu hết thời gian trễ thì gọi hàm đóng cửa. Các hàm con như "MoCua", "DongCua" sẽ chứa logic điều khiển động cơ và kiểm tra công tắc hành trình để dừng đúng vị trí.
5.2. Lập trình code cửa tự động 8051 với phần mềm Keil C
Phần mềm Keil C cung cấp một môi trường phát triển tích hợp (IDE) chuyên nghiệp để viết, biên dịch và gỡ lỗi code cửa tự động 8051. Ngôn ngữ C được ưa chuộng hơn Assembly vì tính dễ đọc, dễ bảo trì và cấu trúc rõ ràng. Chương trình sẽ bao gồm các phần chính: khai báo thư viện, định nghĩa các chân kết nối (ví dụ: sbit SENSOR = P1^0;), viết các hàm con cho từng chức năng (mở cửa, đóng cửa, dừng, tạo trễ), và hàm main() chứa vòng lặp vô tận để điều khiển toàn bộ hệ thống. Trong code, việc sử dụng timer của AT89C51 để tạo thời gian trễ chính xác sau khi người đi qua là rất quan trọng. Sau khi viết xong, trình biên dịch của Keil C sẽ chuyển đổi mã C thành file mã máy dạng HEX. File này sẵn sàng để được nạp vào vi điều khiển thật hoặc sử dụng cho mô phỏng Proteus.
5.3. Kiểm tra và mô phỏng mạch nguyên lý bằng Proteus
Proteus là một công cụ mạnh mẽ cho phép mô phỏng hoạt động của mạch điện tử trước khi thi công mạch in. Người dùng có thể vẽ lại toàn bộ mạch nguyên lý cửa tự động trong môi trường ISIS của Proteus, sử dụng thư viện có sẵn các linh kiện như AT89C51, L298N, động cơ, LED, nút nhấn (để giả lập cảm biến). Sau khi vẽ xong mạch, chỉ cần nhấp đúp vào linh kiện vi điều khiển 8051 và nạp đường dẫn đến file HEX đã được biên dịch từ Keil C. Khi nhấn nút "Play", Proteus sẽ chạy mô phỏng. Người dùng có thể quan sát trạng thái các chân, chiều quay của động cơ, hoạt động của LED báo hiệu. Bằng cách tương tác với các nút nhấn giả lập cảm biến, có thể kiểm tra xem logic chương trình có chạy đúng như lưu đồ giải thuật đã thiết kế hay không. Bước này giúp phát hiện và sửa lỗi sớm, đảm bảo hệ thống hoạt động đúng ngay lần đầu lắp ráp.