TỔNG QUAN
Lý do chọn đề tài
Ngành công nghệ kỹ thuật ô tô đang phát triển mạnh mẽ toàn cầu nhờ vào những tiến bộ trong thiết kế, vật liệu và kỹ thuật sản xuất, tạo ra những chiếc xe hiện đại, an toàn và thân thiện với môi trường Các hệ thống ô tô ngày nay, đặc biệt là hệ thống an toàn như phanh và điều khiển ổn định, chủ yếu được điều khiển bằng điện tử Để đáp ứng tiêu chuẩn về ô nhiễm và hiệu suất, các cải tiến động cơ điện tử cho cả động cơ xăng và diesel đang được áp dụng rộng rãi Một trong những công nghệ mới nổi bật là Hệ thống nhiên liệu Common Rail, tuy còn mới mẻ tại Việt Nam và thiếu tài liệu học tập, nhưng nó đóng vai trò quan trọng trong việc cập nhật công nghệ ô tô hiện đại.
Đề tài “Thi công mạch điều khiển, thu thập, hiển thị dữ liệu lên LCD hoặc LED và cổng kết nối máy tính trên mô hình Hệ thống nhiên liệu diesel Common Rail” nhằm bổ sung tài liệu tham khảo cho sinh viên, giúp họ hiểu rõ hơn về hệ thống này Đồng thời, đề tài cũng hỗ trợ các kỹ thuật viên nắm bắt nguyên lý hoạt động cơ bản cùng những lưu ý quan trọng trong bảo dưỡng, chẩn đoán và sửa chữa hệ thống mới.
Mục tiêu của đề tài
Với yêu cầu nội dung của đề tài, mục tiêu cần đạt được sau khi hoàn thành đề tài như sau:
- Củng cố kiến thức về Hệ thống nhiên liệu Common Rail diesel
- Ứng dụng các phần mềm lập trình để lập trình hiển thị và giao tiếp với máy tính
- Thiết kế, thi công được mạch điều khiển thu thập tín hiệu từ động cơ
- Thiết kế, thi công mạch đèn LED 7 đoạn dùng để hiển thị các thông số động cơ
- Thiết kế giao diện hiển thị và kết nối mô hình với máy tính thông qua phần mềm LabVEIW
Phương pháp nghiên cứu
Để hoàn thành đề tài, nhóm chúng em đã áp dụng nhiều phương pháp khác nhau, trong đó nổi bật là việc tham khảo tài liệu từ các mô hình liên quan trước đó Ngoài ra, chúng em cũng tìm kiếm các nguồn tài liệu nước ngoài và nhận được sự hỗ trợ từ giảng viên hướng dẫn.
Quá trình tìm hiểu và học hỏi từ thầy hướng dẫn, các giảng viên trong xưởng động cơ, cùng với sự hợp tác của các bạn trong nhóm thực hiện đồ án, đã giúp hình thành ý tưởng thiết kế khung cho mô hình và cách bố trí, sắp xếp thiết bị một cách hợp lý.
Cuối cùng, chúng tôi tiến hành quan sát thực tế hoạt động của động cơ mẫu và kết hợp với các thiết bị chẩn đoán có sẵn trong xưởng để so sánh và kiểm tra kết quả thực hiện.
Thi công mô hình điều khiển động cơ
Thiết kế, thi công, thu thập tín hiệu động cơ 2KD-FTV
Thiết kế khung LED và mạch LED
Kết nối truyền dữ liệu từ động cơ về máy tính và hiển thị các thông số thông qua phần mềm LabVEIW
Tiến hành vận hành hệ thống, chẩn đoán lỗi và sữa lỗi
Kế hoạch nghiên cứu
1.4.1 Giai đoạn 1 : Nghiên cứu tài liệu :
- Sơ đồ mạch điện động cơ Common Rail TOYOTA HILUX 2KD-FTV
- Tài liệu hệ thống điều khiển động cơ
- Tài liệu lập trình với Arduino IDE
- Tài liệu thiết kế và lập trình trên phần mềm LabVEIW
- Tài liệu thiết kế mạch điện với phần mềm Proteus 8.5
1.4.2 Giai đoạn 2 : Tiến hành thiết kế, chế tạo phần cứng và lập trình phần mềm cho mô hình
Mạch thu thập dữ liệu được thiết kế dựa trên bộ xử lý Arduino, sử dụng phần mềm Arduino IDE để lập trình Đồng thời, phần mềm Proteus được áp dụng để thực hiện thiết kế phần cứng cho mạch thu thập dữ liệu này.
- Các mạch hiển thị sẽ được chế tạo từ các linh kiện điện tử, thiết kế thông qua phần mềm Proteus
- Giao tiếp máy tính với động cơ thông qua phần mềm LabVEIW
1.4.3 Giai đoạn 3: Tiến hành thử nghiệm thu thập dữ liệu và viết thuyết minh
- Tiến hành thử nghiệm thu thập dữ liệu
- Tiến hành viết báo cáo bằng Word
- Tiến hành làm Powerpoint để trình chiếu
- Làm video thuyết minh đề tài
GIỚI THIỆU
Sơ lược lịch sử hệ thống Common Rail
Hệ thống Common Rail được phát minh bởi Robert Huber, một nhà khoa học người Thụy Sĩ vào cuối những năm 60, và sau đó được tiến sĩ Marco Ganser tại viện nghiên cứu kỹ thuật Thụy Sĩ tại Zurich phát triển Đến giữa những năm 90, tiến sĩ Shohei Itoh và Masahiko Miyaki từ tập đoàn Denso, một nhà sản xuất phụ tùng ô tô lớn của Nhật Bản, đã ứng dụng công nghệ này trên các xe tải nặng hiệu Hino và chính thức ra mắt thị trường vào năm 1995, sau đó mở rộng ứng dụng trên các xe du lịch.
Hiện nay, hầu hết các hãng ô tô đều áp dụng hệ thống phun nhiên liệu hiện đại trên xe của họ, bao gồm cả động cơ xe cơ giới và tàu thủy, với nhiều tên gọi khác nhau như Toyota D-4D, Mercedes CDI, Hyundai CRDi và Peugeot HDI.
Hãng Toyota cũng sử dụng rộng rãi hệ thống này cho các dòng xe từ xe du lịch 4 chỗ,
Since 2005, Toyota Vietnam has been assembling and launching vehicles equipped with the Common Rail system, starting with the Hiace By 2009, two additional models, the Fortuner grade G and the Hilux pickup truck, were introduced, both utilizing this advanced D-4D (Direct Injection-4 stroke Diesel engine) technology.
Sự phát triển của hệ thống nhiên liệu đã dẫn đến việc loại bỏ các cơ cấu điều khiển cơ khí, thay vào đó là áp dụng hệ thống điều khiển điện tử thế hệ mới Điều này không chỉ cải tiến và điện tử hóa các cơ cấu mà còn nâng cao tính kinh tế, giảm ô nhiễm môi trường và đơn giản hóa quá trình điều khiển.
Hệ thống nhiên liệu động cơ 2KD-FTV
Động cơ 2KD-FTV của Toyota là động cơ 4 kỳ 4 xy lanh, hoạt động theo thứ tự nổ 1-3-4-2, mang lại công suất 75kW tại 3600 vòng/phút Hệ thống phối khí được dẫn động trực tiếp từ trục cam qua con đội thủy lực, với 4 xupap trên mỗi xy lanh giúp nâng cao hiệu quả nạp và thải Điều này không chỉ tăng công suất động cơ mà còn giảm lượng khí thải độc hại, góp phần bảo vệ môi trường Hệ thống phun nhiên liệu diesel sử dụng công nghệ tích lũy nhiên liệu, đảm bảo hiệu suất tối ưu cho động cơ.
Hệ thống ECU và tuần hoàn khí xả giúp động cơ 2KD-FTV hoạt động an toàn và hiệu quả Động cơ này sử dụng hệ thống nhiên liệu diesel Common Rail của Denso, với áp suất phun tối đa khoảng 1800 bar, hoàn toàn được điều khiển bằng điện và tích hợp nhiều chức năng.
- Điều khiển áp suất nhiên liệu
- Điều khiển thời điểm phun
Hình 2.1 Động cơ 2KD-FTV
Ưu điểm hệ thống Common Rail
Hệ thống điều khiển hoàn toàn bằng điện tử cải thiện đáng kể các chức năng như áp suất phun, thời điểm phun và số lần phun trong mỗi chu kỳ động cơ, từ đó nâng cao hiệu quả kinh tế nhiên liệu, giảm thiểu khí thải và đặc biệt là tăng cường tính êm dịu của động cơ nhờ vào việc kiểm soát số lần phun, giúp quá trình cháy diễn ra một cách êm ái.
Hệ thống Common Rail không chỉ giảm thiểu khí thải độc hại và tiết kiệm nhiên liệu, mà còn nâng cao tính an toàn, sự thoải mái và tiện nghi cho người sử dụng Các công nghệ như hệ thống luân hồi khí thải (EGR), điều khiển turbo tăng áp và ga tự động đều góp phần vào hiệu suất và hiệu quả của hệ thống này.
Cấu tạo hệ thống Common Rail
Hệ thống Common Rail có cấu tạo gồm 2 phần:
Hệ thống cung cấp nhiên liệu bao gồm các thành phần như thùng nhiên liệu, lọc nhiên liệu, bơm cao áp, ống phân phối, kim phun và các đường ống cao áp Chức năng chính của hệ thống này là hút nhiên liệu từ thùng chứa, nén nhiên liệu lên áp suất cao và chờ tín hiệu từ ECU để phun nhiên liệu vào buồng đốt.
Hệ thống điều khiển điện tử trong động cơ bao gồm bộ xử lý trung tâm ECU, bộ khuếch đại điện áp cho kim phun EDU, các cảm biến đầu vào và bộ chấp hành ECU thu thập tín hiệu từ nhiều cảm biến để xác định trạng thái hoạt động của động cơ, từ đó tính toán lượng và thời điểm phun nhiên liệu, gửi tín hiệu điều khiển đến EDU để điều khiển kim phun Hệ thống cũng đảm nhiệm việc tính toán và điều chỉnh áp suất nhiên liệu cũng như tuần hoàn khí xả.
Hình 2.2 Cấu tạo của hệ thống Common Rail
Nguyên lý hoạt động
Vùng nhiên liệu áp suất thấp bao gồm bơm tiếp vận, nằm trong bơm cao áp, có nhiệm vụ hút nhiên liệu từ thùng chứa, qua lọc nhiên liệu để loại bỏ cặn bẩn và tách nước, trước khi đưa đến van điều khiển hút SCV gắn trên bơm cao áp.
Vùng nhiên liệu áp suất cao là nơi nhiên liệu từ van điều khiển hút SCV được bơm lên áp suất cao và dẫn đến ống phân phối, từ đó đến các kim phun Áp suất nhiên liệu được xác định bởi ECU dựa trên chế độ làm việc của động cơ thông qua tín hiệu từ cảm biến ECU điều khiển van SCV để điều chỉnh áp suất hệ thống Để điều khiển phun nhiên liệu, ECU tính toán thời điểm và lượng phun tối ưu cho từng chế độ làm việc, gửi tín hiệu đến EDU EDU khuếch đại điện áp từ 12V-85V để mở kim phun, cho phép nhiên liệu phun vào buồng đốt Thời điểm và lượng phun được quyết định bởi tín hiệu phát ra từ ECU, với tín hiệu sớm dẫn đến phun sớm và tín hiệu dài làm tăng lượng nhiên liệu phun ra.
Sơ đồ 2.1 Nguyên lý hoạt động của hệ thống Common Rail
Hệ thống Common Rail Diesel đã cải thiện đáng kể hiệu suất động cơ và tiết kiệm nhiên liệu, đáp ứng nhu cầu của người tiêu dùng và các nhà bảo vệ môi trường Công nghệ này mở ra hướng nghiên cứu mới cho các lĩnh vực Cơ khí Động lực và Giao thông tại Việt Nam.
Thông số kỹ thuật động cơ 2KD-FTV
Số xy lanh và cách bố trí 4 xy lanh thẳng hàng
Hệ thống phối khí 16 van, DOHC, dẫn động bằng đai và bánh răng
Hệ thống nhiên liệu Diesel Common rail
Dung tích làm việc 2492 cc
10 Đường kính* hành trình piston 92,00*93,80mm
Công suất cực đại 75kW/3600 v/p
Bảng 2.1 Thông số kỹ thuật động cơ 2KD-FTV
Hình ảnh mô hình thực tế
Hình 2.3 Mô hình hệ thống nhiên liệu diesel Common Rail
HỆ THỐNG ĐIỀU KHIỂN ĐỘNG CƠ
Các cảm biến
3.1.1 Cảm biến vị trí trục khuỷu (Tốc độ Ne)
Hình 3.1 Cảm biến vị trí trục khuỷu
Hình 3.2 Cấu tạo chi tiết của trục khuỷu
1 – Lõi sắt; 2 - Cuộn dây; 3 - Bộ tạo từ trường; 4 - Nam châm
Cảm biến vị trí trục khuỷu là một loại cảm biến điện từ được lắp đặt trên mô hình, có chức năng phát hiện vị trí tức thời của trục khuỷu Khi phát hiện, cảm biến này tạo ra xung và gửi tín hiệu về ECU, giúp hệ thống điều khiển động cơ hoạt động hiệu quả.
Cảm biến được thiết kế với một nam châm và lõi thép, với các răng phân bố đều, ngoại trừ một vị trí có hai răng bị bỏ trống Khi cảm biến quét qua vị trí này, tín hiệu đầu ra sẽ thay đổi, giúp ECU nhận diện vị trí của máy số 1.
Bánh răng bộ tạo xung có 34 răng và 2 răng thiếu, tạo ra xung khoảng cách 10 độ Mỗi vòng quay của trục khuỷu (360 độ CA) sẽ sản sinh 34 xung từ cảm biến.
Sơ đồ 3.1 Mạch điện của cảm biến vị trí trục khuỷu
1-Mạch đầu vào G; 2-Mạch đầu vào NE;3- 34 xung mỗi 360 độ CA;4-180 độ CA; 5- Xung mỗi 720 độ CA
Sơ đồ 3.2 Tín hiệu NE và G
3.1.1.3 Thông số tiêu chuẩn của cảm biến NE
KÝ HIỆU CHÂN ĐIỀU KIỆN ĐO GIÁ TRỊ TIÊU CHUẨN
NE+-NE- Nguội: 10 độ C-50 độ C 1630 Ω -2740 Ω
NE+-NE- Nóng: 50độ C-100 độ C 2065 Ω -3225 Ω
Bảng 3.1 Thông số tiêu chuẩn của cảm biến NE
3.1.2 Cảm biến vị trí trục cam
Hình 3.3 Cảm biến vị trí trục cam
Cảm biến vị trí trục cam là thiết bị quan trọng giúp xác định vị trí của các xylanh Thiết bị này bao gồm một nam châm, lõi thép và các cuộn nhận tín hiệu Đĩa tín hiệu G, có 5 răng ở chu vi, được lắp đặt trên trục dẫn động bơm để thu nhận thông tin chính xác.
Khi puly trục dẫn động bơm quay, sự thay đổi của vấu trên đĩa tín hiệu và khe hở không khí trên cuộn nhận tín hiệu sẽ làm biến đổi từ trường qua cuộn dây, dẫn đến việc sinh ra tín hiệu mới.
14 một điện áp trong cuộn nhận tín hiệu ECU động cơ nhận ra xylanh số 1 và thời điểm cuối nén
Sơ đồ 3.3 Sơ đồ mạch điện và tín hiệu G ( cảm biến vị trí trục cam)
3.1.2.3 Thông số kiểm tra của cảm biến vị trí trục cam
KÝ HIỆU CHÂN ĐIỀU KHIỆN ĐO GIÁ TRỊ TIÊU CHUẨN
Bảng 3.2 Thông số kiểm tra của cảm biến vị trí trục cam
3.1.3 Cảm biến nhiệt độ nhiên liệu
Hình 3.4 Cảm biến nhiệt độ nhiên liệu
Hình 3.5 Cấu tạo cảm biến nhiệt độ nhiên liệu
Cảm biến nhiệt điện trở, được lắp đặt ở bơm cao áp của động cơ 2KD-FTV, có nhiệm vụ kiểm tra nhiệt độ nhiên liệu trong mạch áp suất thấp để ngăn ngừa hiện tượng quá nhiệt trong hệ thống nhiên liệu, với ngưỡng nhiệt độ an toàn là 90 độ C Chuẩn làm việc của cảm biến này là 39 độ C.
Cảm biến nhiệt độ nhiên liệu là một thiết bị nhiệt điện trở với hệ số nhiệt âm, được lắp đặt trong thân bơm cao áp Chức năng của cảm biến này là phát hiện nhiệt độ của nhiên liệu và truyền tín hiệu về ECU.
3.1.3.2 Nguyên lý hoạt động
Khi khóa điện được bật ON, ECU cung cấp điện áp 5V cho chân THF của cảm biến Khi nhiệt độ nhiên liệu tăng, điện áp tại hai đầu cảm biến sẽ giảm, và ngược lại ECU sử dụng tín hiệu này để nhận biết sự thay đổi nhiệt độ của động cơ.
Hình 3.6 Mạch điện của cảm biến nhiệt độ nhiên liệu Đồ thị 3.1 Đường đặc tuyến cảm biến nhiệt độ nhiên liệu
3.1.3.3 Thông số kiểm tra của cảm biến nhiệt độ nhiên liệu
Cực đo Điều kiện Điện trở
Bảng 3.3 Thông số kiểm tra của cảm biến nhiệt độ nhiên liệu
3.1.4 Cảm biến áp suất nhiên liệu
Hình 3.7 Cảm biến áp suất nhiên liệu
Hình 3.8 Cấu tạo cảm biến áp suất nhiên liệu
1- Mạch điện; 2-Màng so; 3- Màng của phần tử cảm biến;
4-Ống dẫn áp suất;5-Ren lắp ghép
Cảm biến áp suất nhiên liệu được lắp đặt trên ống phân phối, giúp ECU theo dõi áp suất nhiên liệu Dựa vào thông tin từ cảm biến, ECU điều khiển van hút SCV để điều chỉnh áp suất bên trong ống phân phối, đảm bảo hoạt động của động cơ luôn ở mức tối ưu.
Cảm biến áp suất nhiên liệu là một linh kiện bán dẫn, trong đó điện trở của chip silicon thay đổi theo áp suất nhiên liệu Sự thay đổi này được chuyển đổi thành tín hiệu điện áp và gửi về ECU.
Sơ đồ 3.4 Sơ đồ mạch điện của cảm biến áp suất nhiên liệu
Cảm biến đo áp suất nhiên liệu được lắp đặt trên ống phân phối và gửi tín hiệu về ECU Dựa vào các tín hiệu này, ECU điều khiển van SCV để điều chỉnh áp suất trong ống phân phối phù hợp với điều kiện hoạt động Cảm biến áp suất nhiên liệu là thiết bị bán dẫn gắn trên màng cảm biến, có chức năng chuyển đổi áp suất thành tín hiệu điện Tín hiệu này sau đó được khuếch đại và truyền đến ECU để xử lý.
Khi màng bị biến dạng, lớp điện trở trên màng sẽ thay đổi giá trị do áp suất tăng trong hệ thống Sự thay đổi này của điện trở dẫn đến sự biến đổi trong mạch cầu điện trở.
Khi bật khóa điện ON, ECU cung cấp nguồn 5V cho chân VC-E2 của cảm biến Sự thay đổi áp suất nhiên liệu trong ống phân phối tác động lên điện trở silicon, dẫn đến sự biến đổi giá trị điện trở Giá trị này sau đó được chuyển đổi thành điện áp và gửi về ECU qua chân kết nối.
Hình 3.9 Cảm biến áp suất nhiên liệu và đường đặc tuyến
3.1.4.3 Các thông số kiểm tra
+ Kiểm tra điện trở cảm biến
Bảng 3.4 Thông số kiểm tra điện trở cảm biến áp suất ống phân phối
3.1.5 Cảm biến áp suất đường ống nạp
Hình 3.10 Cảm biến áp suất đường ống nạp
Gồm 1 chíp silic kết hợp với một buồng chân không được duy trì ở độ chân không định mức, được gắn vào bộ cảm biến này Một phía của chíp này được lộ ra với áp suất đường ống nạp và phía bên kia thông với buồng chân không bên trong Vì vậy không cần hiệu chỉnh mức bù cho độ cao lớn vì áp suất của đường ống nạp có thể đo được chính xác ngay cả khi độ cao này thay đổi Một thay đổi về áp suất của đường ống nạp sẽ làm cho hình dạng của chip silic này thay đổi, và trị số điện trở của chíp này dao động theo mức biến dạng này tín hiệu điện áp mà IC biến đổi từ sự dao động của giá trị điện trở này gọi là tín hiệu PIM
Sơ đồ 3.5 Mạch điện và đường đặc tính áp suất đường ống nạp
Sự dao động của điện trở trong cảm biến được chuyển đổi thành tín hiệu điện áp nhờ IC bên trong, sau đó tín hiệu này được gửi đến ECU động cơ qua cực PIM để làm tín hiệu áp suất turbo diesel Cùng lúc, cực VC của ECU cung cấp nguồn 5V ổn định cho IC.
Cực đo Điều kiện Điện áp
PIM-E2 Áp suất môi trường 2,4V-3,1V
Bảng 3.5 Thông số kiểm tra cảm biến áp suất đường ống nạp
3.1.6 Cảm biến vị trí bàn đạp ga
Các cơ cấu chấp hành
Bướm ga diesel được lắp đặt trên đường ống nạp và hoạt động độc lập với bàn đạp ga Thiết bị này sử dụng động cơ điều khiển bướm ga diesel (động cơ bước) để điều chỉnh mức độ mở bướm ga dựa trên các tín hiệu từ ECU.
Giảm tiếng ồn khi nạp và độ rung bằng cách đóng bướm ga khi chạy không tải
Giảm rung động bằng cách đóng hoàn toàn bướm ga khi dừng động cơ với mục đích giảm lưu lượng không khí nạp vào
3.2.1.2 Hoạt động của bướm ga diesel
ECU sẽ mở bướm ga tối đa trong 2 – 3 giây sau khi bật công tắc máy ở vị trí IG, đồng thời kiểm tra công tắc báo bướm ga để xác nhận bướm ga đã mở tối đa ở vị trí ON.
Khi động cơ tăng tốc hoặc chịu tải lớn, cần đặt bướm ga ở vị trí tối đa và kiểm tra công tắc báo bướm ga mở vị trí tối đa có ở trạng thái ON hay không Nếu công tắc không ở vị trí ON khi động cơ khởi động hoặc tăng tốc, ECU sẽ báo lỗi và thiết lập chế độ không an toàn, dẫn đến việc giới hạn công suất động cơ.
Hình 3.20 Mạch điện của bướm ga
3.2.2.1 Cấu tạo và sơ đồ chân
EDU có cấu tạo gồm 2 phần:
Mạch khuếch đại điện áp: có tác dụng khuếch đại điện áp từ 12V thành 85V để dẫn động kim phun
Mạch điều khiển có nhiệm vụ dẫn động kim phun khi nhận tín hiệu IJT từ ECU và gửi tín hiệu xác nhận IJF trở lại ECU, cung cấp thông tin phản hồi cho việc điều khiển kim phun.
Sơ đồ 3.9 Sơ đồ chân EDU
Ký hiệu chân Chức năng
IJT#1, IJT#2, IJT#3, IJT#4 Tín hiệu điều khiển kim phun từ ECU đến INJ#1, INJ#2, INJ#3, INJ#4 Tín hiệu điều khiển đến kim phun
IJF Tín hiệu phản hồi điệu khiển phun về
COM Chân chung của các kim phun
Bảng 3.9 Bảng ký hiệu tên và chức năng các chân của EDU
Mạch cấp nguồn cho EDU và điều khiển kim phun
Hình 3.23 Mạch cấp nguồn cho EDU
Khi bật khóa điện ở vị trí ON, ECU sẽ cấp mass cho chân EDUREL, dẫn đến việc đóng tiếp điểm của rơ le EDU, từ đó cung cấp điện áp đến chân +B của EDU.
EDU nhận tín hiệu từ ECU để kích hoạt quá trình phun nhiên liệu Nó khuếch đại điện áp từ 12V lên 85V, cung cấp cho kim phun mở ra Khi kim phun mở, nhiên liệu có áp suất cao trong ống phân phối sẽ được phun vào buồng đốt Quá trình phun sẽ dừng lại khi EDU ngừng cấp điện cho kim phun.
Chân không được đưa đến bằng van điều khiển chân không( mở và đóng) van EGR để đưa các khí sau khi đốt vào đường ống nạp
3.2.3.1 Hoạt động của hệ thống EGR
Để kiểm soát lượng khí xả tuần hoàn, ECU điều chỉnh độ nâng của van EGR thông qua việc kiểm soát chân không cấp vào bộ chấp hành van EGR Khi chân không mạnh, van EGR nâng lên nhiều hơn, dẫn đến lượng khí xả tuần hoàn tăng ECU cũng nhận tín hiệu phản hồi từ cảm biến vị trí van EGR, từ đó điều chỉnh hệ số tác dụng của tín hiệu xung điều khiển đến van bật tắt chân không, đảm bảo độ nâng của van EGR được điều khiển chính xác.
Khí thải từ động cơ đi vào chốt van và màng Control, khiến bệ van nâng lên và đóng lỗ trung tâm của màng Power Khi đó, áp suất thấp từ động cơ sẽ hút màng Power và màng Control, cho phép khí thải đi vào đường ống nạp của động cơ.
ECU động cơ kích hoạt VSV, giúp điều chỉnh lượng không khí trong khí quyển tác động lên EGR (tuần hoàn khí xả) thay vì sử dụng chân không Điều này dẫn đến việc tắt bộ EGR, nhằm duy trì khả năng tải khi động cơ đang lạnh hoặc khi xe di chuyển với tốc độ cao.
Bảng 3.10: Bảng thông số kiểm tra điện trở EGR cut
Cực đo Trạng thái Điện trở
Hình 3.26 Sơ đồ giắc công tắc cắt EGR
Bugi xông khác với bugi đánh lửa; trong khi bugi đánh lửa tạo ra tia lửa điện, bugi xông được sử dụng để tạo ra nhiệt trong động cơ dầu.
Hình 3.28 Cấu tạo bugi xông
Bugi xông là loại bugi có dạng dây đốt may so, được lắp đặt trong buồng cháy của xi lanh động cơ, đối diện với vòi phun Các bugi xông được kết nối song song với nhau.
Hình 3.29 Mạch điều khiển bugi xông
Khi khởi động, dòng điện vào cuộn dây của rơ le bugi xông làm cho tiếp điểm rơ le đóng lại Dòng điện này kích hoạt bugi xông, khiến bugi nóng đỏ Thời gian cấp dòng điện được ECU điều khiển dựa trên tín hiệu từ cảm biến nhiệt độ nước làm mát.
• Số lỗ phun từ 6 đến 8
Hình 3.31 Cấu tạo kim phun
3.2.6.2 Hoạt động của kim phun
Khi không có tín hiệu điều khiển, cuộn dây điện từ không được cấp điện, dẫn đến lò xo hồi nén của van điều khiển bịt kín lỗ tiết lưu lớn Áp suất nhiên liệu tác động lên mặt trên của piston điều khiển thắng lực nén của lò xo, khiến van kim đóng kín lỗ tia, ngăn không cho nhiên liệu phun ra.
Hình 3.32 Chưa có tín hiệu phun
Khi tín hiệu điều khiển phun được kích hoạt, dòng điện cung cấp cho kim cuộn dây kim phun làm van điều khiển nâng lên, mở lỗ tiết lưu Nhiên liệu từ buồng trên piston điều khiển được xả ra cửa xả, dẫn đến lực tác dụng lên piston giảm nhanh chóng Lò xo nén van kim đẩy piston di chuyển lên, giảm lực nén lên ti kim Áp suất nhiên liệu phía buồng B đẩy van kim nâng lên, từ đó nhiên liệu được phun ra qua các lỗ tia.
Hình 3.33 Khi có tín hiệu điều khiển phun
Khi dòng điện qua solenoid bị ngắt, lò xo lỗ xả đẩy van từ xuống và đóng lỗ xả lại, dẫn đến việc áp suất trong buồng điều khiển van tăng lên nhờ nhiên liệu cấp từ lỗ nạp Áp suất này tương tự như áp suất trong ống phân phối, làm tăng lực tác dụng lên đỉnh piston điều khiển Lực này, kết hợp với lực của lò xo, cao hơn lực tác dụng của buồng chứa ty kim, khiến ty kim đóng lại Tốc độ đóng của ty kim phụ thuộc vào dòng chảy của nhiên liệu qua lỗ nạp.
THIẾT KẾ CHẾ TẠO VÀ LẬP TRÌNH BOARD MẠCH THU THẬP DỮ LIỆU
Khái quát mô hình cần thu thập dữ liệu
Mô hình : HỆ THỐNG ĐIỀU KHIỂN DIESEL ĐIỆN TỬ TOYOTA HILUX 2KD – FTV
Chọn lọc các tín hiệu cơ bản cần thu thập:
Nhiệt độ nhiên liệu : Chọn tín hiêu cảm biến nhiệt độ nhiên liệu ( THF)
Nhiệt độ nước làm mát: Chọn tín hiệu nhiệt độ nước làm mát (THW)
Nhiệt độ khí nạp : Chọn tín hiệu nhiệt độ khí nạp (THA)
Áp suất trong ống phân phối : Chọn tín hiệu áp suất trong ống phân phối ( PCR)
Ta có thể chọn 1 trong các loại xung tính sau để thực hiện đo kiểm
- Tín hiệu cảm biến vị trí trục cam ( G)
Sơ đồ 4.1 Hình dạng xung tín hiệu cảm biến vị trí trục cam ( G)
- Tín hiệu cảm biến vị trí trục khuỷu
Sơ đồ 4.2 Hình dạng xung tín hiệu cảm biến vị trí trục khuỷu ( Ne)
- Tín hiệu đều khiển kim phun ở máy số 4 : #4
Sơ đồ 4.3 Hình dạng xung tín đều khiển kim phun ở máy số 4 ( #4)
Qua các đồ thị hình dạng xung, cả ba loại tín hiệu đều có thể được sử dụng để tính toán tốc độ động cơ Tuy nhiên, tín hiệu Ne và G cần được điều chỉnh về dạng xung vuông để thuận tiện cho việc tính toán Do đó, tín hiệu điều khiển kim phun ở máy số 4 được lựa chọn để đo tốc độ động cơ.
Thời gian phun chính, thời gian phun phụ : sử dụng tín hiệu đều khiển kim phun ở máy số 4 : #4
Các tín hiệu cần thu thập
4.2.1 Tín hiệu cảm biến nhiệt độ nước làm mát : THW
4.2.1.1 Giá trị nhiệt độ nước làm mát ứng với điện áp và điện trở tương ứng
Nhiệt độ nước làm mát
( o C) Điện trở cảm biến (K) Điện áp tại cực THW
Bảng 4.1 Giá trị nhiệt độ nước làm mát ứng với điện áp và điện trở tương ứng
4.2.1.2 Đồ thị liên hệ nhiệt độ nước làm mát và điện áp Đồ thị 4.1 Đồ thị liên hệ nhiệt độ nước làm mát và điện áp
4.2.2 Tín hiệu cảm biến nhiệt độ khí nạp : THA
4.2.2.1 Giá trị nhiệt độ khí nạp ứng với điện áp và điện trở tương ứng
Nhiệt độ khí nạp ( o C) Điện trở cảm biến (K) Điện áp tại cực THW
Bảng 4.2 Giá trị nhiệt độ khí nạp ứng với điện áp và điện trở tương ứng y = 4.6316x 2 - 48.42x + 106.05 -40
N h iệ t độ n ư ớ c là m má t ( 0 C) Điện áp đầu ra (V)
Nhiệt độ nước làm mát
4.2.2.2 Đồ thị liên hệ giữa nhiệt khí nạp và điện áp Đồ thị 4.2 Đồ thị liên hệ giữa nhiệt độ khí nạp và điện áp
4.2.3 Tín hiệu cảm biến nhiệt độ nhiên liệu : THF
4.2.3.1 Giá trị nhiệt độ nhiên liệu ứng với điện áp và điện trở tương ứng
Nhiệt độ khí nạp ( o C) Điện trở cảm biến (K) Điện áp tại cực THW
Bảng 4.3 Giá trị nhiệt độ nhiên liệu ứng với điện áp và điện trở tương ứng y = 4.6316x 2 - 48.42x + 106.05 -40
N h iệ t độ kh í n ạp ( 0 C) Điện áp đầu ra (V)
4.2.3.2 Đồ thị liên hệ giữa nhiệt độ nhiên liệu và điện áp Đồ thị 4.3 Mối liên hệ nhiệt độ nhiên liệu với điện áp
4.2.4 Tín hiệu áp suất trong ống phân phối : PCR Đồ thị 4.4 Đồ thị mối liên hệ áp suất ống phân phối với điện áp
4.2.5 Tín hiệu điều khiển kim phun ở máy số 4 : #4
Hình 4.1 Hình dạng xung tín hiệu kim phun y = 4.6316x 2 - 48.42x + 106.05
Nhiệ t độ nh iên liệu ( 0 C) Điện áp đầu ra (V)
Phương pháp thực hiện
Sử dụng bộ KIT Arduino để thu thập dữ liệu từ động cơ:
- Các tín hiệu là tín hiệu dạng điện áp được thu từ các chân Analog A0, A1, A2, A3 gồm + Tín hiệu cảm biến nhiệt độ khí nạp
+ Tín hiệu cảm biến nhiệt độ nước làm mát
+ Tín hiệu cảm biến nhiệt độ nhiên liệu
+ Tín hiệu cảm biến áp suất trong ống Common Rail
- Các tín hiệu được thu từ chân Digital gồm :
Nguyên lý thực hiện
Các cảm biến đo nhiệt độ và áp suất trong ống phân phối gửi tín hiệu điện áp, vì vậy chúng ta sử dụng các chân Analog để đo điện áp này Từ đó, có thể tính toán được nhiệt độ và áp suất dựa trên các đường đặc tính tương ứng.
Để đo tốc độ động cơ cùng với thời gian phun chính và phun phụ, chúng ta sử dụng tín hiệu từ kim phun, là tín hiệu dạng xung vuông Tín hiệu này được kết nối với chân ngắt ngoài số 2 trên mạch Arduino để thực hiện việc ngắt Qua đó, chúng ta có thể tính toán các mức cao thấp của xung, từ đó xác định được tốc độ động cơ, thời gian phun chính và thời gian phun phụ.
Mức thấp 1 Mức thấp 2 thời gian mức cao= mức cao 1+ mức cao 2 mức thấp=mức thấp 1+ mức thấp 2 chu kỳ= thời gian mức cao + thời gian mức thấp
Khối mạch điều khiển thu nhận tín hiệu phần cứng
Mạch điều khiển trung tâm có vai trò quan trọng trong việc đọc các tín hiệu, giao tiếp với máy tính và xuất tín hiệu đến các bảng điện tử như bảng LED.
- Đây là mạch điều khiển có chức năng hỗ trợ mạch Arduino UNO thu thập dữ liệu và xuất các tín hiệu ra bảng LED
Arduino UNO và NANO là bộ KIT vi điều khiển AT Mega 328P, nổi bật với kích thước nhỏ gọn và hỗ trợ lập trình hiệu quả cho người mới bắt đầu.
Sử dụng Arduino UNO không đủ chân để xuất tín hiệu cho bảng LED, vì vậy chúng tôi đã quyết định sử dụng thêm một bộ Arduino NANO để hỗ trợ việc xuất dữ liệu ra bảng LED.
Chương trình dưới Vi điều khiển
4.6.1 Đối với KIT Arduino UNO R3
- Sử dụng KIT Arduino UNO R3 thu thập các dữ liệu:
+ Nhiệt độ nước làm mát thông qua cảm biến nhiệt độ nước làm mát ( THW) + Nhiệt độ khí nạp thông qua cảm biến nhiệt độ khí nạp ( THA)
+ Nhiệt độ nhiên liệu thông qua cảm biến nhiệt độ nhiên liệu (THF)
Áp suất trong ống phân phối được đo thông qua cảm biến áp suất (PCR), trong khi tốc độ động cơ được xác định thông qua chân tín hiệu kim phun của máy số 4 (#4).
+ Thời gian phun chính , thời gian phun phụ thông qua chân tín hiệu kim phun của máy số 4 (#4)
Arduino UNO SMD R3 được lập trình để tính toán và hiển thị dữ liệu thực tế về tốc độ động cơ, thời gian phun chính và thời gian phun phụ trên các bảng LED tương ứng.
Dữ liệu được truyền từ Arduino UNO SMD R3 đến máy tính qua cổng COM – USB 2.0, cho phép giao tiếp trực tiếp giữa Arduino và máy tính Qua đó, dữ liệu được hiển thị trên giao diện thiết kế trong phần mềm LabVIEW 2016.
4.6.2 Đối với KIT Arduino NANO
- Sử dụng KIT Arduino NANO thu thập các dữ liệu:
+ Nhiệt độ nước làm mát thông qua cảm biến nhiệt độ nước làm mát ( THW)
+ Nhiệt độ khí nạp thông qua cảm biến nhiệt độ khí nạp ( THA)
+ Nhiệt độ nhiên liệu thông qua cảm biến nhiệt độ nhiên liệu (THF)
+ Áp suất ống phân phối thông qua cảm biến áp suất trên ống phân phối (PCR)
Arduino NANO được lập trình để thu thập và hiển thị dữ liệu thực tế về nhiệt độ nước làm mát, nhiệt độ nhiên liệu, nhiệt độ khí nạp và áp suất trong ống phân phối lên các bảng LED tương ứng.
Lưu đồ , thuật toán
4.7.1 Lưu đồ đọc cảm biến từ các chân Analog
Sơ đồ 4.4 Phương thức xử lí các tín hiệu Analog
4.7.2 Lưu đồ đọc tín hiệu đọc xung từ chân #4
Sơ đồ 4.5 Phương thức xử lí các tín hiệu Digital
4.7.3 Lưu đồ tín hiệu giao tiếp với máy tính:
Khởi đầu Khởi tạo các Kết thúc chân Analog
-Đọc tín hiệu từ chân A0 -Đọc tín hiệu từ chân A1 -Đọc tín hiệu từ chân A2 -Đọc tín hiệu từ chân A3
Khởi đầu Khởi tạo ngắt Kết thúc ngoài Đọc tín hiệu từ chân Digital 2
Sơ đồ 4.6 Phương thức Arduino truyền dữ liệu thu thập từ động cơ lên máy tính
4.7.4 Chương trình trong Vi điều khiển:
Gửi dữ liệu nhiệt độ nước làm mát
Gửi dữ liệu nhiệt độ khí nạp
Gửi dữ liệu nhiệt độ nhiên liệu
Gửi dữ liệu áp suất trong ống phân phối
Gửi dữ liệu tốc độ động cơ
Gửi dữ liệu nhiệt thời gian phun chính
Gửi dữ liệu thời gian phun phụ
Sơ đồ 4.7 Chương trình vòng điều khiển
Thiết kế phần cứng
- Arduino UNO SMD R3 sẽ được kết nối như hình
Arduino UNO SMD R3 có nhiệm vụ kết nối với máy tính qua cổng USB, giúp truyền tải dữ liệu về tốc độ động cơ, thời gian phun chính và thời gian phun phụ lên bảng LED.
Để thiết lập mạch điện, cần mắc một điện trở 1kΩ nối tiếp với các chân tín hiệu THA, THW, THF, PCR và một điện trở 10kΩ nối tiếp với chân #4 Mục đích của việc này là nhằm đảm bảo tính ổn định và độ chính xác trong quá trình truyền tải tín hiệu.
Dữ liệu từ các cảm biến
Tín hiệu xung Digital Thiết bị nhận/ chuyển đổi/truyền tín hiệu
Chương trình thực hiện xử lý tín hiệu
Lưu trữ và xuất kết quả Kết thúc
64 chế dòng vào các chân Analog và Digital của Arduino , bảo vệ mạch Arduino hoạt động ổn định
Hình 4.4 Nguyên lý hoạt động của Arduino UNO SMD
Hình 4.5 Mạch nguyên lý hoạt động của Arduino NANO
Hình 4.6 Mạch nguyên lý hoạt động kết hợp của Arduino UNO SMD R3 và Arduino NANO
Hình 4.7 Mạch thực tế kết hợp của Arduino UNO SMD R3 và Arduino NANO
Mạch Arduino Nano Mạch Arduino
Ngõ vào thu tín hiệu động cơ
Cổng xuất tín hiệu tới các bảng LED
Cổng giao tiếp máy tính Mạch Giảm áp
THIẾT KẾ - CHẾ TẠO MẠCH HIỂN THỊ
Nguyên lý
- Sử dụng LED 7 đoạn để hiển thị từ số đơn lẻ , chúng ta kết hợp các số đơn lẻ để trở thành 1 mạch với số LED theo ý muốn
Lựa chọn LED 7 đoạn để hiển thị là do nó phát sáng tốt, có kích thước đa dạng phù hợp với kích cỡ tổng thể của mô hình và khả năng hoạt động liên tục trong thời gian dài.
Trong bảng LED, thuật toán quét LED sử dụng một IC điện tử để gộp các chân tín hiệu điều khiển sáng tắt của các thanh trên LED 7 đoạn Thuật toán này giúp giảm số lượng chân tín hiệu, từ đó dễ dàng thực hiện điều khiển bởi Vi điều khiển trong mạch Arduino.
IC 74HC595, với 16 chân, là một thành phần phổ biến trong các mạch điện tử, thường được sử dụng để giải quyết vấn đề quét LED.
Nguồn cung cấp cho bo mạch LED là nguồn 5V DC, đây là giá trị lý tưởng để IC 74HC595 hoạt động hiệu quả Để đảm bảo LED phát sáng tốt mà không bị hỏng, cần kết nối mỗi chân của LED 7 đoạn với một điện trở có giá trị 330Ω.
Các linh kiện điện tử được sử dụng :
LED 7 đoạn hay LED 7 thanh (Seven Segment display) là 1 linh kiện rất phổ dụng , được dùng như là 1 công cụ hiển thị đơn giản nhất
Trong LED 7 thanh bao gồm ít nhất là 7 con LED mắc lại với nhau , vì vậy mà có tên là
LED 7 đoạn là vậy ,7 LED đơn được mắc sao cho nó có thể hiển thị được các số từ 0 - 9 , và
1 vài chữ cái thông dụng, để phân cách thì người ta còn dùng thêm 1 led đơn để hiển thị dấu chấm (dot)
Các LED đơn được đặt tên theo các chữ cái A, B, C, D, E, F, G và dấu chấm (dot) Để hiển thị ký tự mong muốn, chỉ cần cấp nguồn vào chân tương ứng, LED sẽ sáng theo ý muốn.
Trong mạch thì chúng em dùng nguồn 5V nên để tránh việc cháy cháy led thì chúng em dùng cách mắc thêm trở để hạn dòng.
Thông số làm việc của LED : Điện áp = 2V
Vì nếu dùng nguồn 5V , thì áp rơi trên trở = 5 -2 = 3 V.
- VCC : chân để dòng điện đi vào, nối với cực dương
- GND : chân để dòng điện đi ra, nối với cực âm
- DS Serial Data Input : dữ liệu sẽ được truyền vào IC thông qua cổng này
- OE Output Enable : chân này dung để bật/tắt IC, IC được phép chạy khi ở trạng thái LOW
Chân đồng hồ của thanh ghi lưu trữ ST_CP, hay còn gọi là chân LATCH, có vai trò quan trọng trong việc xuất dữ liệu từ IC Khi chân này chuyển từ trạng thái LOW sang HIGH, dữ liệu sẽ được đưa ra các chân Q1.
- SH_CP Shift register clock pin : còn gọi là chân CLOCK, khi từ trạng thái LOW-
>HIGH tức là một xung, dữ liệu sẽ được dịch vào một bit theo trạng thái hiện tại của của chân DS
- MR Master Reclear : khi ở trạng thái HIGH , bộ nhớ trong IC sẽ được xóa hoàn toàn
- Q1->Q7 : tượng trưng cho 8 bit trong vùng nhớ IC
Arduino UNO có số chân hạn chế, chỉ đủ để điều khiển một đèn LED matrix 8x8 Để điều khiển hai đèn LED matrix 8x8, cần tới 32 chân (8 + 8) x 2 Để khắc phục giới hạn này, chúng ta sử dụng IC 74HC595, một chip có khả năng dịch bit và lưu trữ trạng thái của 8 bit, đồng thời cho phép đẩy các bit thừa ra ngoài để có thể sử dụng cho các mục đích khác.
IC khác và làm tiếp tục công việc của nó
Cụm 2 LED
Hình 5.3 Cụm hiển thị 2 LED 7 đoạn.
Cụm 3 LED
Hình 5.4 Cụm hiển thị 3 LED 7 đoạn
Cụm 4 LED
Hình 5.5 Cụm hiển thị 4 LED 7 đoạn.
Bảng LED hiển thị khi thiết kế
Hình 5.6 Bảng Led hiển thị
LẬP TRÌNH VỚI ARDUINO
Arduino là gì ?
Arduino là bo mạch vi xử lý cho phép lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ và đèn Điểm nổi bật của Arduino là môi trường phát triển dễ sử dụng cùng với ngôn ngữ lập trình dễ học, phù hợp cho cả những người ít kinh nghiệm về điện tử Sự phổ biến của Arduino còn đến từ mức giá phải chăng và tính chất nguồn mở của cả phần cứng lẫn phần mềm.
Arduino được ra đời tại thị trấn Ivrea, Ý, và mang tên vị vua King Arduino từ thế kỷ 9 Được giới thiệu vào năm 2005 như một công cụ hỗ trợ sinh viên của giáo sư Massimo Banzi tại trường Interaction Design Institute Ivrea, Arduino nhanh chóng lan rộng nhờ sự truyền miệng tích cực từ người dùng đầu tiên Ngày nay, Arduino đã trở thành một biểu tượng nổi tiếng, thu hút nhiều du khách đến Ivrea để khám phá nơi khởi nguồn của nó.
Tổng quan về mạch Arduino đã sử dụng
6.2.1 Phần cứng của Arduino UNO SMD R3 và Arduino NANO
Arduino Uno SMD R3 và Arduino NANO là hai board vi điều khiển dựa trên Atmega328P, với Arduino Uno sở hữu 14 chân Digital (bao gồm 6 chân hỗ trợ xuất xung PWM) và 6 chân analog Board hoạt động với tần số 16MHz, tích hợp cổng USB, cổng nguồn ngoài, ICSP của Atmega 328, và nút reset Arduino Uno cung cấp đầy đủ các tính năng cần thiết để hỗ trợ vi điều khiển, cho phép kết nối với máy tính qua cáp USB hoặc nguồn ngoài như pin, bình ắc quy, hay adapter.
6.2.2 Cấu tạo Arduino UNO SMD R3
Hình 6.1 Cấu tạo Arduino UNO SMD R3
Hình 6.2 Cấu tạo Arduino NANO
6.2.4 Các thông số chính của Arduino UNO SMD R3và Arduino NANO
Vi điều khiển ATmega328P (họ 8bit) Điện áp hoạt động 5V DC Điện áp vào khuyên dùng 7 – 12V
Tần số hoạt động 16 MHz
Dòng tiêu thụ Khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader
Bảng 6.1 Các thông số chính của Arduino UNO R3 SMD và Arduino NANO
Phần mềm Arduino IDE
Ngôn ngữ lập trình Arduino, được phát triển từ C/C++, rất dễ học và dễ hiểu, đặc biệt nếu bạn đã nắm vững kiến thức từ chương trình Tin học 11 Để lập trình, gửi lệnh và nhận tín hiệu từ mạch Arduino, người dùng có thể sử dụng môi trường lập trình Arduino IDE (Integrated Development Environment) do nhóm phát triển cung cấp.
Hình 6.3 Giao diện phần mềm Arduino IDE
Thanh bảng chọn Thanh công cụ
6.3.1 Ngôn ngữ lập trình trên Arduino
Chương trình Arduino có thể được chia làm 3 phần: cấu trúc (structure), biến số
(variable) và hằng số (constant), hàm và thủ tục (function)
Trong chương trình Arduino, các lệnh trong hàm setup() sẽ được thực thi khi khởi động, cho phép bạn khai báo biến, thư viện và thiết lập thông số Sau khi hoàn tất, các lệnh trong hàm loop() sẽ chạy liên tục cho đến khi nguồn của board Arduino bị ngắt.
Bất cứ khi nào bạn nhất nút Reset, chương trình của bạn sẽ trở về lại trạng thái như khi Arduino mới được cấp nguồn
Quá trình này có thể được miêu tả như sơ đồ dưới đây:
- Bao gồm các hàm sau:
+ If : Cú pháp: if ([biểu thức 1] [toán tử so sánh] [biểu thức 2]) {[câu lệnh 1]} else {[câu lệnh 2]}
Nếu biểu thức điều kiện trả về giá trị TRUE, [câu lệnh 1] sẽ được thực hiện, ngược lại, [câu lệnh 2] sẽ được thực hiện
+ For: có chức năng làm một vòng lặp
Setup() { // danh sách lệnh } loop() { // danh sách lệnh }
+ While: là một dạng vòng lặp theo điều kiện, mình không thể biết trước số lần lặp của nó, nhưng mình quản lý lúc nào thì nó ngừng lặp!
; dấu chấm phẩy: Dùng để kết thúc một dòng lệnh
{} dấu ngoặc nhọn: cung cấp một cú pháp để gọi những lệnh cho những cấu trúc đặc biệt như (if, while, for, )
Ví dụ: While (){ }
#define là một chỉ thị trong ngôn ngữ C/C++, cho phép bạn định nghĩa tên cho hằng số nguyên hoặc hằng số thực Cú pháp sử dụng #define bao gồm việc chỉ định tên hằng và giá trị tương ứng của nó.
#include: cho phép chương trình của bạn tải một thư viện đã được viết sẵn
Ví dụ: #include
Toán tử Ý nghĩa Ví dụ
== So sánh bằng (a == b) trả về TRUE nếu a bằng b và ngược lại
!= So sánh không bằng (a != b) trả về TRUE nếu a khác b và ngược lại
> So sánh lớn (a > b) trả về TRUE nếu a lớn hơn b và FALSE nếu a bé hơn hoặc bằng b
< So sánh bé (a < b) trả về TRUE nếu a bé hơn b và FALSE nếu ngược lại
= b) tương đương với ((a > b) or (a = b))
- Boolean: nhận một trong hai giá trị: true hoặc false Và bạn sẽ mất 1 byte bộ nhớ cho điều đó
- Unsigned char: biểu hiệu một số nguyên byte không âm (giá trị từ 0 - 255)
- Byte: Là một kiểu dữ liệu biểu diễn số nguyên nằm trong khoảng từ 0 đến 255
- Int: là kiểu số nguyên chính được dùng trong chương trình Arduino Trên mạch Uno, nó có đoạn giá trị từ -32,768 đến 32,767 (-215 đến 215-1)(16 bit)
- Long: là một kiểu dữ liệu mở rộng của int Những biến có kiểu long có thể mang giá trị 32bit từ -2,147,483,648 đến -2,147,483,647
- Float: Một biến dùng kiểu dữ liệu này có thể đặt một giá trị nằm trong khoảng -
3.4028235E+38 đến 3.4028235E+38 Nó chiếm 4 byte bộ nhớ
- pinMode: Cấu hình 1 pin quy định hoạt động như là một đầu vào (INPUT) hoặc đầu ra (OUTPUT)
- digitalWrite():Xuất tín hiệu ra các chân digital, có 2 giá trị là HIGH hoặc là LOW
- digitalRead():Đọc tín hiệu điện từ một chân digital (được thiết đặt là INPUT) Trả về 2 giá trị HIGH hoặc LOW
- analogReference():đặt lại mức (điện áp) tối đa khi đọc tín hiệu analogRead
- analogRead():đọc giá trị điện áp từ một chân Analog (ADC)
- analogWrite():là lệnh xuất ra từ một chân trên mạch Arduino một mức tín hiệu analog (phát xung PWM)
Hàm Millis() trong Arduino trả về thời gian đã trôi qua tính bằng mili giây kể từ khi chương trình bắt đầu Giá trị này sẽ tràn và quay về 0 sau khoảng 50 ngày hoạt động liên tục.
Hàm micros() trong Arduino trả về thời gian tính bằng micro giây kể từ khi chương trình bắt đầu Sau khoảng 70 phút, giá trị này sẽ tràn và quay trở lại 0, sau đó tiếp tục tăng.
- Delay: có nhiệm vụ dừng chương trình trong thời gian mili giây
- DelayMicroseconds: có nhiệm vụ dừng chương trình trong thời gian micro giây
- Ngắt (interrupt) là những lời gọi hàm tự động khi hệ thống sinh ra một sự kiện
Những sự kiện này được nhà sản xuất vi điều khiển thiết lập bằng phần cứng và được cấu hình trong phần mềm bằng những tên gọi cố định
- Cú pháp: attachInterrupt(interrupt, ISR, mode);
- Interrupt: Số thứ tự của ngắt Trên Arduino Uno, bạn có 2 ngắt với số thứ tự là 0 và 1
- ISR: tên hàm sẽ gọi khi có sự kiện ngắt được sinh ra
- Mode: kiểu kích hoạt ngắt , bao gồm:
+ LOW: kích hoạt liên tục khi trạng thái chân digital có mức thấp
+ HIGH: kích hoạt liên tục khi trạng thái chân digital có mức cao
+ RISING: kích hoạt khi trạng thái của chân digital chuyển từ mức điện áp thấp sang mức điện áp cao
+ FALLING: kích hoạt khi trạng thái của chân digital chuyển từ mức điện áp cao sang mức điện áp thấp
- DetachInterrupt(): tắt các ngắt đã được kích hoạt tương ứng với thông số truyển vào
Hàm interrupts() trong Arduino được sử dụng để bật toàn bộ các ngắt đã được cài đặt Mặc định, các ngắt luôn được kích hoạt, do đó bạn không cần gọi hàm này trong phần setup() Nếu bạn đã tắt các ngắt bằng hàm noInterrupts(), bạn có thể sử dụng interrupts() để kích hoạt lại các ngắt.
Ví dụ: void setup() {} void loop()
// tắt các ngắt để chạy
// đoạn chương trình yêu cầu cao về thời gian interrupts();
// bật lại các ngắt, các ngắt hoạt động
Chương trình dưới Arduino
22 unsigned long thoigianmuccao, biencux, biencuy, thoigianmucthap;
27 float THA, THW, THF, PCR;
28 int THA1, THF1 , THW1,PCR1;
43 void LEDPIL(unsigned long Giatri, byte SoLed = 4) {
44 byte *array= new byte[SoLed];
46 //Lấy các chữ số từ phải quá trái
48 Giatri = (unsigned long)(Giatri /10UL);
52 shiftOut(dPIL, cPIL, MSBFIRST, Seg[array[i]]);
56 void LEDMAIN(unsigned long Giatri, byte SoLed = 4) {
57 byte *array= new byte[SoLed];
59 //Lấy các chữ số từ phải quá trái
61 Giatri = (unsigned long)(Giatri /10UL);
65 shiftOut(dMAIN, cMAIN, MSBFIRST, Seg[array[i]]);
69 void LEDSPEED(unsigned long Giatri, byte SoLed = 4) {
70 byte *array= new byte[SoLed];
72 //Lấy các chữ số từ phải quá trái
74 Giatri = (unsigned long)(Giatri /10UL);
78 shiftOut(dSPEED, cSPEED, MSBFIRST, Seg[array[i]]);
Trong đoạn 1 đến 9, chúng ta khai báo các chân clock, latch và data của IC 74HC595 trong bảng LED Các bảng LED này được sử dụng trong Arduino UNO SMD, bao gồm bảng tốc độ động cơ, bảng thời gian phun chính và bảng thời gian phun phụ.
Dòng 10 – 21 mô tả cách tạo thư viện hiển thị các số từ 0 đến 9 bằng phương pháp điều khiển các đoạn LED 7 đoạn Để hiển thị số 0, cần làm sáng các thanh từ A đến F và tắt thanh G Đối với số 1, chỉ cần làm sáng hai thanh F và E, trong khi các thanh còn lại sẽ được tắt.
Trong đoạn từ dòng 22 đến 28, các biến cần thiết cho bài toán được khai báo lần lượt, với mỗi biến tương ứng với kiểu dữ liệu phù hợp Mục tiêu là tiết kiệm bộ nhớ của vi điều khiển và tránh tình trạng tràn bộ nhớ.
Trong phần thiết lập chương trình từ dòng 29 đến 42, chúng ta khai báo các chân vào và ra của Arduino Cụ thể, chân số 2 được thiết lập là chân ngắt ngoài (interrupt), trong khi các chân tín hiệu còn lại được định nghĩa là OUTPUT của hệ thống, giúp Arduino hiểu và xuất tín hiệu Để giao tiếp với máy tính, bạn cần sử dụng một trong các mức baudrate đã quy định.
300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, hoặc 115200, vì vậy trong trường hợp này ta chọn Serial.begin với giá trị baudrate là 9600, một mức thông dụng và dễ dàng giao tiếp với máy tính
- Dòng 43-55: Tạo chương trình con dành cho bảng LED thời gian phun phụ
- Dòng 56-69:Tạo chương trình con dành cho bảng LED thời gian phun chính
- Dòng 69-81:Tạo chương trình con dành cho bảng LED tốc độ động cơ
- Dòng 81-115 : Tạo chương trình con cho chương trình ngắt ngoài
Dòng 116-141 hiển thị các thông số trên bảng LED và thiết lập công thức cho tín hiệu nhiệt độ nước làm mát, nhiệt độ khí nạp, nhiệt độ nhiên liệu và áp suất trên ống phân phối Những dữ liệu này sẽ được sử dụng để giao tiếp với máy tính và hiển thị trên giao diện LabVIEW.
Dòng 141-157 hiển thị toàn bộ dữ liệu cần thu thập lên màn hình Serial.print qua cổng COM Các dữ liệu này được chương trình LabVIEW xử lý để hiển thị trên giao diện người dùng.
6.4.3 Chương trình dưới Arduino NANO
13 float THA,THW, THF, PCR;
14 int THA1, THF1 , THW1,PCR1;
43 void LEDTHA(unsigned long Giatri, byte SoLed = 2) {
44 byte *array= new byte[SoLed];
46 //Lấy các chữ số từ phải quá trái
48 Giatri = (unsigned long)(Giatri /10UL);
52 shiftOut(dTHA, cTHA, MSBFIRST, Seg[array[i]]);
56 void LEDPCR(unsigned long Giatri, byte SoLed = 2) {
57 byte *array= new byte[SoLed];
59 //Lấy các chữ số từ phải quá trái
61 Giatri = (unsigned long)(Giatri /10UL);
65 shiftOut(dPCR, cPCR, MSBFIRST, Seg[array[i]]);
69 void LEDTHF(unsigned long Giatri, byte SoLed = 2) {
70 byte *array= new byte[SoLed];
72 //Lấy các chữ số từ phải quá trái
74 Giatri = (unsigned long)(Giatri /10UL);
78 shiftOut(dTHF, cTHF, MSBFIRST, Seg[array[i]]);
82 void LEDTHW(unsigned long Giatri, byte SoLed = 2) {
83 byte *array= new byte[SoLed];
85 //Lấy các chữ số từ phải quá trái
87 Giatri = (unsigned long)(Giatri /10UL);
91 shiftOut(dTHW, cTHW, MSBFIRST, Seg[array[i]]);
6.4.4 Giải thích chương trình dưới Arduino NANO
- Dòng 1 – 12 : khai báo các chân clock, clatch,data của IC 74HC595 trong bảng
Bảng LED trong Arduino NANO bao gồm các thông số quan trọng như nhiệt độ nước làm mát, nhiệt độ nhiên liệu, nhiệt độ khí nạp và áp suất trên ống phân phối.
Trong đoạn 13-14, chúng ta sẽ khai báo các biến cần thiết cho bài toán, đảm bảo rằng các kiểu dữ liệu được sử dụng phù hợp với yêu cầu của đề bài Việc này giúp tiết kiệm bộ nhớ của vi điều khiển và tránh tình trạng tràn bộ nhớ.
- Dòng 15-26 : Tạo thư viện hiển thị số ( đã giải thích ở 3.5.2)
- Dòng 27-42 : Thiết lập, khai báo , phân chia nhiệm vụ các chân ,khai báo các chân nhận nhiêm vụ xuất dữ liệu là OUTPUT
- Dòng 43-55 : Thiết lập thư viện cho cụm bảng LED nhiệt độ khí nạp
- Dòng 56-68 : Thiết lập thư viện cho cụm bảng LED nhiệt độ nhiên liệu
- Dòng 69-81 : Thiết lập thư viện cho cụm bảng LED áp suất trên ống phân phối
- Dòng 82-94 : Thiết lập thư viện cho cụm bảng LED nhiệt độ nước làm mát
Dòng 95 – hết: Dựa trên các đường đặt tính đã thiết lập trước, công thức chuyển đổi tín hiệu từ điện áp (analog) của cảm biến thành số liệu cần thu thập được xây dựng, sau đó xuất dữ liệu ra các bảng LED hiển thị tương ứng.