TÓM TẮT ĐỒ ÁN Hiện nay, quá trình tự động hóa trong công nghiệp là hết sức quan trọng đối với sự phát triển của mỗi quốc gia. Trong đó, sự phát triển của kỹ thuật tự động hóa đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự chính xác ,bảo mật cao, tốc độ nhanh, gọn nhẹ là những yếu tố rất cần thiết cho sự tiện lợi cho cuộc sống. Ý tưởng đề tài xuất phát từ bài toán thực tế. Một thiết bị có thể điều khiển lưu lượng nước trong hệ thống chiết rót. Đề tài “Thiết kế mạch điều khiển lưu lượng nước trong máy chiết rót, hiển thị lên LCD” là sự kết hợp nhiều linh kiện điện tử cơ bản cũng như sử dụng phần tử vi điều khiển trong chương trình giảng dạy, là sự tổng hợp kiến thức từ các môn cơ sở ngành và kỹ năng thực hành trong môn Vi Điều Khiển. Bộ mạch được điều khiển bởi AVR mà cụ thể là ATMega 2560 bằng ngôn ngữ lập trình CC++ với vai trò điều khiển và nhập xuất dữ liệu từ các thiết bị giao tiếp với nó, điển hình là cảm biến lưu lượng YFS201 được giao tiếp với AVR và xuất dữ liệu lưu lượng đo được đến LCD. Ngoài ra, bộ mạch còn sử dụng các nút nhấn để điều chỉnh lưu lượng cần chiết rót. Sau khi cảm biến đạt đến lưu lượng cài đặt thì vi điều khiển sẽ kích relay làm cho van điện từ đóng lại. MỤC LỤC CHƯƠNG 1. GIỚI THIỆU 7 1.1 Tổng quan 7 1.2 Nhiệm vụ đồ án (khóa luận) 7 CHƯƠNG 2. LÝ THUYẾT 8 2.1 Tổng quan về AVR 8 2.1.1 AVR là gì? 8 2.1.2 Phân loại. 8 2.1.3 Kiến trúc vi điều khiển 9 2.1.4 So sánh PIC và AVR 10 2.2 Phần mềm lập trình AVR 11 2.2.1 Giới thiệu mikroC PRO for AVR 11 2.2.2 Đặc điểm và tính năng của mikroC PRO for AVR. 11 2.2.3 Khái niệm về Arduino IDE 12 2.3 Giới thiệu về linh kiện sử dụng 13 2.3.1 Giới thiệu về bo mạch Arduino Mega 2560 Pro (Embed) 13 2.3.2 Cảm biến lưu lượng YFS201: 17 2.3.3 Động Cơ DC Bơm Nước Water Pump P385 12VDC 18 2.3.4 Van điện từ 19 2.3.5 Mạch 2 Relay Opto 21 2.3.6 .Ma trận bàn phím 4x4: 22 2.3.7 Màn hình LCD1602 23 2.3.8 Mạch chuyển đổi giao tiếp I2C: 26 CHƯƠNG 3. THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 27 3.1 Sơ đồ khối chức năng 27 3.2 Tìm hiểu và chuẩn bị linh kiện 28 3.3 Thiết kế phần cứng 29 3.3.1. Khối nguồn 29 3.3.2. Khối đầu vào 30 3.3.3. Khối hiển thị 31 3.3.4. Khối đầu ra. 32 CHƯƠNG 4. THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 33 4.1 Lưu đồ thuật toán 33 4.2 Phần mềm viết chương trình điều khiển là Arduino IDE 35 CHƯƠNG 5. KẾT QUẢ THỰC HIỆN 43 5.1 Thi công lắp đặt. 43 5.2 Đo đạc thử nghiệm. 44 CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 45 6.1 Kết luận 45 6.2 Hướng phát triển 45 TÀI LIỆU THAM KHẢO 46 DANH SÁCH HÌNH MINH HỌA Hình 2.1 Vi điều khiển AVR. 8 Hình 2.2 Phần mềm lập trình mikroC for AVR. 11 Hình 2.3 Phần mềm lập trình Arduino IDE 12 Hình 2.4 Aruino ATMega 2560 pro (embed) 13 Hình 2.5 Sơ đồ chân của bo mạch Arduino Atmega 2560 pro 15 Hình 2.6 Sơ đồ chân Arduino Atmega 2560 pro 16 Hình 2.7Cảm biến lưu lượng ỲFS201 17 Hình 2.8 Nguyên lý hoạt động của cảm biến lưu lượng 18 Hình 2.9 Động Cơ DC Bơm Nước Water Pump P385 18 Hình 2.10 Van điện từ 20 Hình 2.11 Nguyên lý hoạt động của van điện từ 20 Hình 2.12 Mạch 2 Relay Opto 21 Hình 2.13 Nguyên lý hoạt động của mạch relay 22 Hình 2.14 Ma trận bàn phím 4x4 22 Hình 2.15 Sơ đồ kết nối bàn phím 4x4. 23 Hình 2.16 Sơ đồ LCD 1602 24 Hình 2.17 Mạch chuyển đổi giao tiếp I2C 26 Hình 3.1 Nguồn adapter ngõ ra 12V. 29 Hình 3.2 Mạch hạ áp từ 12V sang 5V 29 Hình 3.3 Sơ đồ kết nối giữa vi điều khiển và cảm biến lưu lượng 30 Hình 3.4 Sơ đồ kết nối giữa vi điều khiển và bàn phím 30 Hình 3.5 Sơ đồ kết nối chân giữa I2C và Arduino. 31 Hình 3.6 Sơ đồ kết nối giữa I2C và LCD 1602 31 Hình 4.1 Lưu đồ thuật toán 33 Hình 4.2 Lưu đồ thuật toán Autoset. 34 Hình 4.3 Lưu đồ thuật toán vandientu. 35 Hình 5.1 Mô hình sau khi thi công. 43 Hình 5.2 Sơ đồ mạch mô phỏng proteus 43 DANH SÁCH BẢNG SỐ LIỆU Bảng 2.1 So sánh AVR và PIC 10 Bảng 2.2 Chức năng từng chân của LCD 16x2 25 Bảng 3.1 Các linh kiện cần thiết 28 Bảng 3.2 Sơ đồ kết nối chân của khối đầu ra. 32 Bảng 5.1 Bảng thực nghiệm 44 CHƯƠNG 1. GIỚI THIỆU 1.1 Tổng quan Trong công nghiệp sản xuất hàng tiêu dùng, cụ thể là các mặt hàng ở thể lỏng, việc chiết rót đúng dung tích là vấn đề đáng quan tâm. Có rất nhiều yếu tố ảnh hưởng đến độ chính xác của lưu lượng đo được như công nghệ sản xuất, độ chính xác của cảm biến,.... Do đó chúng ta phải nắm bắt và vận dụng công nghiệp tự động hóa một cách có hiệu quả nhằm góp phần vào sự phát triển nền kỹ thuật. 1.2 Nhiệm vụ đồ án (khóa luận) Việc tự động hóa trong chiết rót nhằm tăng độ chính xác của lưu lượng cũng như hạn chế tối đa việc chất lỏng tiếp xúc với môi trường không đảm bảo tiêu chuẩn. Do điều kiện về thời gian và kiến thức còn hạn chế nên đề tài chỉ dừng lại ở mức nghiên cứu, thiết kế mạch và mô phỏng bằng mô hình. Quá trình thực hiện đồ Điều khiển lưu lượng nước trong máy chiết rót : Nội dung 1: Tìm hiểu các tài liệu liên quan đến đề tài và rồi đưa ra các giải pháp tối tưu nhất cho việc thiết kế chế tạo sản phẩm. Nội dung 2: Nắm được cấu trúc phần cứng của mạch. Nội dung 3:Tìm hiểu nguyên lý làm việc của mạch điều khiển. Nội dung 4:Thiết kế vẽ sơ đồ khối và sơ đồ thuật toán. Nội dung 5: Tìm hiểu về vi điều khiển Atmega 2560 pro Nội dung 6: Tìm hiểu phương pháp và lập trình Arduino cho Atmega 2560 pro. Nội dung 7: Mua linh kiện và thiết kế phần cứng. Nội dung 8: Tiến hành hoàn thành sản phẩm và kiểm tra.
GIỚI THIỆU
Tổng quan
Trong ngành công nghiệp sản xuất hàng tiêu dùng, đặc biệt là các sản phẩm dạng lỏng, việc đảm bảo chiết rót đúng dung tích là rất quan trọng Nhiều yếu tố, bao gồm công nghệ sản xuất và độ chính xác của cảm biến, ảnh hưởng đến độ chính xác của lưu lượng đo được.
Chúng ta cần nắm bắt và áp dụng hiệu quả công nghiệp tự động hóa để đóng góp vào sự phát triển của nền kỹ thuật.
Nhiệm vụ đồ án (khóa luận)
Tự động hóa trong quy trình chiết rót giúp nâng cao độ chính xác của lưu lượng và giảm thiểu tối đa sự tiếp xúc của chất lỏng với môi trường không đạt tiêu chuẩn.
Do hạn chế về thời gian và kiến thức, đề tài chỉ dừng lại ở nghiên cứu, thiết kế mạch và mô phỏng bằng mô hình Quá trình thực hiện liên quan đến việc điều khiển lưu lượng nước trong máy chiết rót.
Tìm hiểu tài liệu liên quan đến đề tài là bước quan trọng để đưa ra các giải pháp tối ưu cho việc thiết kế và chế tạo sản phẩm Việc nghiên cứu kỹ lưỡng sẽ giúp xác định những yêu cầu cần thiết và phát triển các phương án hiệu quả nhất.
Nội dung 2: Nắm được cấu trúc phần cứng của mạch.
Nội dung 3:Tìm hiểu nguyên lý làm việc của mạch điều khiển.
Nội dung 4:Thiết kế vẽ sơ đồ khối và sơ đồ thuật toán.
Nội dung 5: Tìm hiểu về vi điều khiển Atmega 2560 pro
Nội dung 6: Tìm hiểu phương pháp và lập trình Arduino cho Atmega 2560 pro.
Nội dung 7: Mua linh kiện và thiết kế phần cứng
Nội dung 8: Tiến hành hoàn thành sản phẩm và kiểm tra.
LÝ THUYẾT
Tổng quan về AVR
Bộ điều khiển AVR, được phát triển bởi Tập đoàn Atmel vào năm 1966, có cấu trúc thiết kế do Alf-Egil Bogen và Vegard Wollan thực hiện Kiến trúc này được gọi là RISC, hay còn gọi là Advanced Virtual RISC Mặc dù AT90S8515 là bộ điều khiển đầu tiên dựa trên kiến trúc AVR, nhưng sản phẩm thương mại đầu tiên ra mắt là AT90S1200 vào năm 1977.
Vi điều khiển AVR có sẵn trong 3 loại:
TinyAVR: Bộ nhớ ít hơn, kích thước nhỏ hơn, phù hợp cho các ứng dụng đơn giản.
MegaAVR là dòng thiết bị phổ biến, nổi bật với dung lượng bộ nhớ lên tới 256KB và số lượng thiết bị ngoại vi phong phú, phù hợp cho nhiều ứng dụng từ đơn giản đến phức tạp.
Hình 2.1 Vi điều khiển AVR.
XmegaAVR: Được sử dụng trong thương mại cho các ứng dụng phức tạp, cần bộ nhớ chương trình lớn và tốc độ
2.1.3 Kiến trúc vi điều khiển
AVR là dòng vi điều khiển 8 bit tiên tiến của hãng Atmel, sử dụng công nghệ RISC, mang lại hiệu suất mạnh mẽ tương đương với các dòng vi điều khiển 8 bit khác như PIC và Pisoc Với sự ra đời muộn hơn, AVR tích hợp nhiều tính năng mới, đáp ứng tốt hơn nhu cầu của người dùng So với dòng 8051 89xx, vi điều khiển AVR nổi bật với độ ổn định cao, khả năng tích hợp tốt, linh hoạt trong lập trình và tính tiện lợi.
* Tính năng mới của họ AVR:
- Giao diện SPI đồng bộ.
- Các đường dẫn vào/ra (I/O) lập trình được.
- Bộ biến đổi ADC 10 bit.
- Các kênh băm xung PWM.
- Các chế độ tiết kiệm năng lượng như sleep, stand by vv.
- Một bộ định thời Watchdog.
2.1.4 So sánh PIC và AVR
Giao thức truyền thông UART, USART, LIN, CAN,
Ethernet, SPI, I2S UART, USART, SPI, I2C,
Tốc độ xử lý 4 chu kỳ/giờ 1 chu kỳ/giờ
Bộ nhớ SRAM, FLASH FLASH, SRAM, EEPROM
Cấu trúc bộ nhớ Cấu trúc Harvard Đã sửa đổi
Năng lượng tiêu thụ Thấp Thấp
Các dòng sản phẩm khác PIC16, PIC17, PIC18, PIC24,
PIC32 Tiny, Atmega, Xmega, các loại AVR đặc biệt
Nhà sản xuất Microchip Average Atmel
Giá thành Trung bình Trung bình
Sản phẩm phổ biến PIC18FXX8, PIC16F88X,
Bảng 2.1 So sánh AVR và PIC
Phần mềm lập trình AVR
2.2.1 Giới thiệu mikroC PRO for AVR
MikroC PRO cho AVR là một trình biên dịch đầy đủ tính năng ANSI
C cho AVR từ Atmel® mang đến những tính năng môi trường phong phú, kết quả của 15 năm phát triển và nỗ lực chuyên sâu Với sự gia tăng không ngừng về số lượng thư viện phần cứng và phần mềm, cùng với IDE trực quan và phần mềm Visual TFT tích hợp, người dùng có thể dễ dàng tiếp cận tài liệu chi tiết và bộ công cụ đầy đủ để hỗ trợ phát triển.
2.2.2 Đặc điểm và tính năng của mikroC PRO for AVR.
MikroC cung cấp một cơ chế đơn giản để sử dụng các thư viện trong dự án của bạn, cho phép bạn chọn và tích hợp dễ dàng mà không cần phải thêm nhiều chỉ thị # Bạn có thể cài đặt và quản lý các thư viện bên thứ ba thông qua trình quản lý gói và thư viện của chúng tôi Chỉ cần đánh dấu các hộp cho các thư viện cần thiết hoặc nhấn nút "Check All" để chọn tất cả.
Hình 2.2 Phần mềm lập trình mikroC for AVR.
Với hơn 1200 chức năng thư viện, bạn sẽ tiết kiệm thời gian, công sức và bạn sẽ viết mã tốt hơn.
Trong trình biên dịch của chúng ta, có hơn 109 ví dụ làm việc cho mỗi thư viện, giúp bạn hiểu rõ cách thức hoạt động của chúng Những ví dụ này cung cấp các đoạn mã hữu ích, hỗ trợ cho dự án của bạn.
- 207 MCU hỗ trợ: Các mikroC PRO cho AVR hiện đang hỗ trợ 207 AVR và chúng tôi liên tục bổ sung thêm những tính năng mới.
2.2.3 Khái niệm về Arduino IDE
Arduino IDE, short for Arduino Integrated Development Environment, is a software tool that allows users to upload written code to circuit boards and execute applications It serves as a programming interface for various Arduino boards.
Arduino là một nền tảng phát triển phần mềm bao gồm ba phần chính: Editor, là trình soạn thảo văn bản dùng để viết mã; Debugger, công cụ hỗ trợ tìm kiếm và sửa lỗi trong quá trình biên dịch chương trình; và Compiler hoặc interpreter, giúp biên dịch mã thành ngôn ngữ mà vi điều khiển có thể hiểu và thực thi theo yêu cầu của người dùng.
Arduino IDE là một ứng dụng đa nền tảng được viết bằng ngôn ngữ lập trình Java Ngôn ngữ lập trình cho các chương trình Arduino sử dụng C hoặc C++ Arduino IDE tích hợp thư viện phần mềm "wiring", giúp người dùng dễ dàng hơn trong việc lập trình Một chương trình chạy trên Arduino được gọi là sketch và được định dạng dưới dạng tệp *.ino.
Hiện nay, ngoài các board thuộc họ Arduino, thì Arduino IDE còn hỗ trợ lập trình với nhiều dòng vi điều khiển khác như ESP, ARM, PIC, …
Hình 2.3 Phần mềm lập trình Arduino IDE
Giới thiệu về linh kiện sử dụng
2.3.1 Giới thiệu về bo mạch Arduino Mega 2560 Pro (Embed)
Arduino Mega 2560 Pro (Embed) là phiên bản thu nhỏ của Arduino Mega 2560, sử dụng vi điều khiển ATmega2560-16AU và thạch anh 16Mhz, mang lại chức năng và số chân GPIO tương tự Mạch này lý tưởng cho các dự án cần sự nhỏ gọn và tiện lợi, đồng thời đảm bảo chất lượng gia công tốt, độ bền và ổn định cao.
IC nạp và giao tiếp UART CH340G tương thích với tất cả các hệ điều hành
Vi điều khiển chính: ATmega2560
Tốc độ thạch anh: 16Mhz
Nguồn nuôi mạch: o 5VDC từ cổng Micro USB. o Nguồn ngoài từ chân Vin từ 6~9VDC.
Dòng đầu ra chân 5VDC khi cấp nguồn từ:
Hình 2.4 Aruino ATMega 2560 pro (embed) o Cổng USB: 500mA o Chân Vin: 800mA
Tích hợp IC chuyển nguồn 3.3VDC 800mA.
Số chân Digital: 54 (hỗ trợ 15 chân PWM)
Dòng ra tối đa trên GPIO: 20mA
Dung lượng bộ nhớ Flash: 256 KB, 8 KB used by bootloader.
Hình 2.5 Sơ đồ chân của bo mạch Arduino Atmega 2560 pro
Sơ đồ chân của bo mạch Arduino Atmega 2560 pro:
Hình 2.6 Sơ đồ chân Arduino Atmega 2560 pro
2.3.2 Cảm biến lưu lượng YF-S201:
Cảm biến lưu lượng nước là thiết bị phổ biến trong các hệ thống bơm nước như máy bơm hồ cá, bơm mini và máy nước nóng Thiết bị này hoạt động dựa vào cánh quạt nước và cảm biến Hall bên trong; khi nước chảy qua, cánh quạt sẽ quay, kích hoạt cảm biến Hall và tạo ra xung vuông (từ NPN).
Hình 2.7Cảm biến lưu lượng ỲF-S201
Chịu áp lực đến : 1.75Mpa
Nhiệt độ hoạt động : < 120 độ C
Cảm biến lưu lượng nước hoạt động dựa trên một van nhựa cho phép nước chảy qua, kết hợp với một rôto và cảm biến hiệu ứng Hall để xác định hướng và đo lưu lượng nước Khi nước chảy qua van, nó làm quay rôto, từ đó tạo ra sự thay đổi trong tốc độ của động cơ Sự thay đổi này được cảm biến hiệu ứng Hall chuyển đổi thành tín hiệu xung, cho phép chúng ta đo được tốc độ dòng chảy.
Hình 2.8 Nguyên lý hoạt động của cảm biến lưu lượng
2.3.3 Động Cơ DC Bơm Nước Water Pump P385 12VDC Động cơ DC bơm nước Water Pump P385 12VDC có kích thước nhỏ gọn, áp lực mạnh, được sử dụng để bơm nước, dung dịch với khả năng bơm tối đa lên đến 1~2L/1 phút, thích hợp với các thiết kế sử dụng máy bơm nhỏ: bơm hồ cá, tưới nước cho cây, gắn với đầu phun để làm máy rửa tay hoặc các ứng dụng phun, xịt, ,
Điện áp làm việc: 12VDC
Áp suất đầu ra: 1-2,5 kg
Hình 2.9 Động Cơ DC Bơm Nước Water Pump P385
Độ sâu hút đạt được: 1-2,5 mét
Tuổi thọ làm việc bình thường: 2-3 năm
Đường kính đầu vào và đầu ra: đường kính ngoài 8mm
Chiều dài động cơ: 32mm
Đường kính động cơ: 28mm
Bơm đường kính: 35mm – 40mm
Van điện từ Solenoid Valve 10mm 12VDC là thiết bị lý tưởng để điều khiển dòng chảy của dung dịch bằng điện áp 12VDC Với đường kính ống nhỏ 10mm, van thích hợp cho việc đóng ngắt các thể tích nhỏ và chính xác, thường được sử dụng trong các máy pha chế, chiết rót rượu, và coffee Van có cấu trúc thường đóng, tự động khóa khi không có điện vào cuộn dây và mở ra khi có điện.
Điện áp hoạt động: 12VDC
Tiết diện ống vào ra: 10mm.
Nguyên lý hoạt động của van điện từ.
Mỗi chiếc van được cấu tạo từ một cuộn lõi dây điện quấn quanh lõi sắt, cùng với một lò xo nén giữ chặt lõi sắt này Lõi sắt được bảo vệ bởi một lớp gioăng cao su bên ngoài.
Khi không có dòng điện chạy qua => Lò xo giãn ép vào lõi sắt để đẩy cửa van đóng.
Khi dòng điện chạy qua cuộn dây, nó tạo ra từ trường mạnh mẽ, gây ra lực hút lên lõi sắt Lực từ trường này đủ lớn để làm giãn lò xo, dẫn đến việc mở cửa van.
Hình 2.11 Nguyên lý hoạt động của van điện từ
Mạch 2 Relay Opto chọn mức kích High/Low 5VDC được sử dụng để bật, tắt thiết bị AC/DC qua Relay, mạch có thể tùy chọn kích bằng mức cao hoặc thấp (High/Low) qua Jumper, ngoài ra mạch còn bổ sung thêm Opto cách ly cho độ an toàn
Mạch 2 Relay Opto với khả năng chống nhiễu vượt trội là giải pháp lý tưởng cho các ứng dụng bật tắt và điều khiển thiết bị qua Relay, đặc biệt khi so với một số mạch trên thị trường không tích hợp Opto.
Điện áp sử dụng: 5VDC
Dòng tiêu thụ: khoảng 200mA /1Relay
Tín hiệu kích: Tùy chọn mức cao High (5/12/24VDC theo loại Relay) hoặc thấp Low (0VDC) qua Jumper.
Tiếp điểm đóng ngắt Relay trên mạch: Max 250VAC-10A hoặc 30VDC-10A (Để an toàn nên dùng cho tải có công suất chưa nhấn.
Màn hình LCD 1602, sử dụng driver HD44780, có khả năng hiển thị 2 dòng với mỗi dòng 16 ký tự Màn hình này nổi bật với độ bền cao và tính phổ biến, đồng thời đi kèm nhiều mã mẫu, giúp người dùng dễ dàng sử dụng hơn, đặc biệt khi kết hợp với mạch chuyển tiếp I2C.
Hình 2.15 Sơ đồ kết nối bàn phím 4x4.
Thông số màn hình lcd1602
Điện áp hoạt động là 5V.
Chữ trắng, nền xanh dương
Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard.
Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây điện.
Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn.
Có thể được điều khiển với 6 dây tín hiệu
Chức năng của từng chân:
Chân Ký hiệu Mô tả Giá trị
4 RS Lựa chọn thanh ghi RS=0: chọn thanh ghi lệnh
RS=1: chọn thanh ghi dữ liệu
5 R/W Chọn thanh ghi đọc/viết dữ liệu R/W=0: thanh ghi viết
15 A Cực dương led nền 0V đến 5V
Bảng 2.2 Chức năng từng chân của LCD 16x2
2.3.8 Mạch chuyển đổi giao tiếp I2C: Để sử dụng các loại LCD có driver là HD44780 (LCD 1602, LCD 2004,… ) cần có ít nhất 6 chân của MCU kết nối với các chân RS, EN, D7, D6, D5 và D4 để có thể giao tiếp với LCD.
Với mạch chuyển đổi giao tiếp I2C cho LCD, chỉ cần kết nối 2 chân SDA và SCL của MCU với 2 chân tương ứng trên module để hiển thị thông tin Bên cạnh đó, độ tương phản của màn hình có thể được điều chỉnh thông qua biến trở gắn trên module.
Thông số mạch chuyển đổi giao tiếp I2C:
Kích thước: 41.5mm(L)X19mm(W)X15.3MM(H)
Jump chốt: Cung cấp đèn cho LCD hoặc ngắt
Biến trở xoay độ tương phản cho LCD
Hình 2.17 Mạch chuyển đổi giao tiếp I2C
THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG
Sơ đồ khối chức năng
(Van điện từ, bơm, relay)
Tìm hiểu và chuẩn bị linh kiện
Để tiến hành thi công lắp đặt, cần tìm hiểu và chuẩn bị đầy đủ các linh kiện cần thiết Việc đảm bảo linh kiện có chất lượng tốt là rất quan trọng để tránh những lỗi không đáng có, gây chậm trễ trong quá trình thi công Hãy kiểm tra kỹ lưỡng từng linh kiện trước khi thực hiện lắp đặt.
STT Linh kiện trong mạch Số lượng
5 Mạch chuyển đổi giao tiếp I2C 1
6 Cảm biến lưu lượng YF-S201 1
Bảng 3.3 Các linh kiện cần thiết
Thiết kế phần cứng
Phần cứng của mạch yêu cầu sử dụng nguồn một chiều (DC), do đó có nhiều lựa chọn cho nguồn cấp, bao gồm: nguồn từ PIN, ắc quy, nguồn từ cổng USB, hoặc từ mạch nguồn được thiết kế riêng.
Ta sẽ sử dụng bộ nguồn với các thông số như sau: Điện áp ngõ vào là 100-240VAC.
Dòng cực đại ngõ ra là 1A. Điện áp ngõ ra là 12V.
Để cung cấp nguồn cho vi điều khiển, cảm biến, bàn phím và mạch relay, chúng ta cần xây dựng một mạch hạ áp từ nguồn adapter 12V xuống 5V.
Hình 3.19 Mạch hạ áp từ 12V sang 5V
Cảm biến lưu lượng YF-S201 được kết nối với vi điều khiển thông qua chân D19, không chỉ đảm bảo chức năng digital mà còn hỗ trợ chức năng ngắt, giúp cảm biến liên tục nhận và truyền tín hiệu đến vi điều khiển.
Để dễ dàng cài đặt lưu lượng chiết rót, bàn phím được kết nối với vi điều khiển thông qua 8 chân digital Các hàng kết nối lần lượt với chân D40, D42, D44, D46, trong khi các cột kết nối với chân D32, D34, D36 và D38.
Hình 3.21 Sơ đồ kết nối giữa vi điều khiển và bàn phím
Để đơn giản hóa việc kết nối giữa LCD 1602 và vi điều khiển, chúng ta sử dụng giao thức I2C làm trung gian Mạch chuyển đổi I2C không chỉ giúp tiết kiệm dây kết nối mà còn làm cho quá trình kết nối trở nên dễ dàng hơn, đồng thời vẫn đảm bảo khả năng điều khiển LCD 8bit hiệu quả.
Hình 3.23 Sơ đồ kết nối chân giữa I2C và Arduino.
Hình 3.22 Sơ đồ kết nối giữa I2C và LCD
Theo sơ đồ chân của nhà sản xuất, chân SDA của Aruino là D20 và chân SLD của Arduino là chân D21 Cần kết nối đúng chân để I2C hoạt động được.
3.3.4 Khối đầu ra. Để điều khiển được động cơ bơm nước và van điện tử, cần sử dụng mạch relay kích 5V Trong đó, động cơ bơm và van điện từ đều được kết nối chân thường hở.
COM2 Dây nguội của bơm
Bảng 3.4 Sơ đồ kết nối chân của khối đầu ra.
THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM
Lưu đồ thuật toán
Hình 4.24 Lưu đồ thuật toán
Hình 4.25 Lưu đồ thuật toán Autoset.
Phần mềm viết chương trình điều khiển là Arduino IDE
LiquidCrystal_I2C lcd(0x27, 16, 2); byte relayVale = 7; // relay byte relayPumper = 10; //bơm byte sensorInterrupt = 4; // digital pin 19 chân ngắt int4 byte sensorPin = 19; // chân tín hiệu unsigned long sosanh; unsigned long luuluong;
Hình 4.26 Lưu đồ thuật toán vandientu. float calibrationFactor = 7.5; // theo datasheet volatile byte pulseCount; float flowRate; unsigned int flowMilliLitres; unsigned long totalMilliLitres; unsigned long oldTime; byte setkey; unsigned int set;
// KEY PAD char key; const byte ROWS = 4; //four rows const byte COLS = 4; //four columns char keys[ ROWS ][COLS ] {
In this code snippet, the row and column pinouts of the keypad are defined using byte arrays, with rowPins set to {40, 42, 44, 46} and colPins to {32, 34, 36, 38} A Keypad object is then instantiated using these pin configurations along with a keymap created from the keys The function `autoset()` is also declared, although its implementation is not provided.
The code snippet retrieves a key input and sets a variable, `luuluong`, to different predefined values based on the key pressed For key '1', it sets `luuluong` to 100 ml; for '2', it sets it to 220 ml; for '3', 330 ml; for '4', 400 ml; for '5', 500 ml; and for '6', 1000 ml After setting the value, the LCD display is cleared, and the message "AUTO SET" is shown, followed by the corresponding volume in milliliters.
{ lcd.init(); lcd.backlight(); pinMode(relayVale, OUTPUT); pinMode(relayPumper, OUTPUT); pinMode(sensorPin, INPUT); digitalWrite(sensorPin, HIGH); pulseCount = 0; flowRate = 0.0; flowMilliLitres = 0; totalMilliLitres = 0; oldTime = 0;
//sensorInterrup chuyển từ High sang Low thực hiện pulseCounter attachInterrupt(sensorInterrupt, pulseCounter , FALLING); vandientu();
// Increment the pulse counter pulseCount++;
{ digitalWrite(relayVale, HIGH); //relay kích mức cao
} if (sosanh < luuluong) { digitalWrite(relayVale, LOW);
{ key = keypad.getKey(); if (key == 'A')
{ lcd.clear(); lcd.print("AUTO SET"); while (key != 'B')plus
The code snippet processes sensor data at one-second intervals to calculate the flow rate in liters per minute, using a calibration factor to ensure accuracy It updates the total flow in milliliters and displays the flow rate and total volume on an LCD screen After calculating the flow rate, it resets the pulse count and reattaches the interrupt for continuous monitoring.
KẾT QUẢ THỰC HIỆN
Thi công lắp đặt
Trong quá trình thi công, việc bố trí linh kiện một cách thuận tiện cho người sử dụng là rất quan trọng Các vị trí lắp đặt linh kiện cần được sắp xếp hợp lý, gọn gàng và đảm bảo an toàn, nhằm tránh hiện tượng chạm dây có thể gây hư hỏng cho các linh kiện.
Đo đạc thử nghiệm
Để kiểm tra độ chính xác của cảm biến cũng như mô hình, cần tiến hành thực nghiệm nhiều lần
Lần đo Thông số cài đặt Thông số thực nghiệm Sai số
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Kết luận
Trong bài viết này, tôi đã nghiên cứu về việc điều khiển lưu lượng nước trong máy chiết rót sử dụng Arduino Atmega 2560 pro Đây là một ứng dụng đơn giản và hiệu quả trong việc quản lý lưu lượng nước Bên cạnh đó, tôi cũng đã tìm hiểu nguyên lý hoạt động của cảm biến lưu lượng YS-F201.
Mô hình sử dụng được cho nhiều chất lỏng khác nhau như nước, thực phẩm dạng lỏng,
Đề tài được ứng dụng rộng rãi trong sản xuất đặc biệt là trong công nghiệp sản xuất hàng tiêu dùng.
Mô hình xây dựng theo từng khối nên dễ dàng sửa chữa.
Thời gian thực hiện chương trình đo lường và hiển thị còn chậm.
Mô hình chưa hoàn toàn tự động hóa.
Hướng phát triển
Phần mềm hiện tại đang tiêu tốn nhiều thời gian để triển khai chương trình Do đó, trong tương lai, cần thiết phải tìm kiếm các giải pháp tối ưu hóa thời gian thực hiện để nâng cao hiệu quả.
Để hoàn thiện hệ thống tự động hóa, cần bổ sung cảm biến mức trên và dưới cho bồn chứa chất lỏng Hiện tại, hệ thống còn cồng kềnh do sử dụng phương pháp đi dây thay vì mạch in, vì vậy cần chuyển đổi sang phương pháp in mạch để tối ưu hóa Hơn nữa, hệ thống cần phát triển khả năng cài đặt lưu lượng chiết rót một cách linh hoạt, thay vì chỉ sử dụng phương pháp một nút nhấn cho một lưu lượng cố định.