Mục lục:
- Bước 1: Chọn dây tín hiệu
- Bước 2: Nối dây đến bảng Arduino
- Bước 3: Phân tích tín hiệu
- Bước 4: Mã phân tích tín hiệu của bạn
- Bước 5: Xác định Bộ lọc
- Bước 6: Lọc: Phần 1
- Bước 7: Lọc: Phần 2
- Bước 8: Lọc: Phần 3
- Bước 9: Lọc: Phần 4
- Bước 10: Hiển thị tốc độ động cơ đã lọc của bạn
Video: Sử dụng Arduino để hiển thị RPM của công cụ: 10 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Hướng dẫn này sẽ trình bày cách tôi sử dụng Arduino UNO R3, màn hình LCD 16x2 với I2C và dải đèn LED được sử dụng làm đồng hồ đo tốc độ động cơ và đèn chuyển số trong xe đường đua Acura Integra của tôi. Nó được viết dưới góc nhìn của một người có một số kinh nghiệm hoặc tiếp xúc với phần mềm Arduino hoặc mã hóa nói chung, phần mềm toán học MATLAB và tạo hoặc sửa đổi các mạch điện. Trong tương lai, điều này có thể được sửa đổi để dễ hiểu hơn đối với những người có ít hoặc không có kinh nghiệm về các chủ đề này.
Bước 1: Chọn dây tín hiệu
Bạn sẽ cần nhận được một tín hiệu tương quan với tốc độ động cơ. Có thể thêm một hệ thống đo tốc độ động cơ nhưng thực tế hơn nhiều là chạm vào một dây hiện có mang thông tin tốc độ động cơ. Một chiếc xe duy nhất có thể có nhiều nguồn cho việc này và nó có thể rất khác nhau, thậm chí hàng năm trên một kiểu xe duy nhất. Vì lợi ích của hướng dẫn này, tôi sẽ sử dụng ví dụ về ô tô của tôi, một đường ray được sửa đổi 2000 Acura Integra LS. Tôi phát hiện thấy trên động cơ của mình (B18B1 với OBD2) có một điện áp không sử dụng cao là 12V và giảm xuống 0V khi hoàn thành một vòng quay đầy đủ.
Những thứ sẽ giúp xác định tín hiệu tốc độ động cơ tiềm năng:
- Sơ đồ đấu dây cho xe của bạn
- Tìm kiếm diễn đàn cho xe của bạn liên quan đến tín hiệu động cơ / ECU
- Một thợ cơ khí thân thiện hoặc một người đam mê xe hơi
Bước 2: Nối dây đến bảng Arduino
Khi bạn đã chọn một tín hiệu phù hợp, bạn sẽ cần phải mở rộng tín hiệu đó đến bất cứ nơi nào bạn đặt bảng Arduino của mình. Tôi quyết định đặt mìn bên trong xe, nơi từng đặt đài phát thanh, vì vậy tôi định tuyến dây điện mới từ động cơ, xuyên qua một grommet cao su trong bức tường lửa, và đến ngay khu vực đài phát thanh. Vì đã có rất nhiều hướng dẫn về cách loại bỏ, hàn và bảo vệ dây dẫn nên tôi sẽ không giải thích quá trình này.
Bước 3: Phân tích tín hiệu
Đây là nơi mọi thứ có thể trở nên phức tạp. Hiểu biết chung về phân tích và điều khiển tín hiệu sẽ giúp bạn một chặng đường dài, nhưng có thể thực hiện được nếu bạn có ít kiến thức.
Dây tín hiệu được chọn rất có thể sẽ không phát ra giá trị chính xác của tốc độ động cơ. Nó sẽ cần được định hình và sửa đổi để đưa ra số RPM động cơ chính xác mà bạn muốn. Do thực tế là mỗi chiếc xe khác nhau và dây tín hiệu được chọn có thể khác nhau, từ thời điểm này trở đi, tôi sẽ giải thích cách tôi sử dụng tín hiệu vị trí từ nhà phân phối trên Integra của mình.
Tín hiệu của tôi bình thường là 12V và giảm xuống 0V khi hoàn thành một vòng quay đầy đủ. Nếu bạn biết thời gian để hoàn thành một vòng quay đầy đủ hoặc một chu kỳ đầy đủ, điều này có thể dễ dàng được chuyển thành vòng quay / phút bằng cách sử dụng một số khái niệm cơ bản.
1 / (giây mỗi chu kỳ) = chu kỳ trên giây hoặc Hz
Số vòng quay mỗi phút = Hz * 60
Bước 4: Mã phân tích tín hiệu của bạn
Phương pháp này yêu cầu nhận được thời gian cần thiết để tín hiệu đầu vào hoàn thành một chu kỳ đầy đủ. May mắn thay, phần mềm Arduino IDE có một lệnh thực hiện chính xác điều đó, PulseIn.
Lệnh này sẽ đợi tín hiệu vượt qua ngưỡng, bắt đầu đếm và dừng đếm khi vượt qua ngưỡng một lần nữa. Có một số chi tiết cần lưu ý khi sử dụng lệnh, vì vậy tôi sẽ đưa vào một liên kết đến thông tin của PulseIn tại đây:
PulseIn sẽ trả về một giá trị tính bằng micro giây và để giữ cho phép toán đơn giản, giá trị này phải được chuyển đổi ngay lập tức thành giây bình thường. Theo phép toán ở bước trước, khoảng thời gian này có thể được tính trực tiếp thành RPM.
Lưu ý: sau khi thử và sai, tôi phát hiện ra nhà phân phối hoàn thành hai vòng quay cho mỗi vòng quay của trục khuỷu động cơ, vì vậy tôi chỉ cần chia câu trả lời của mình cho 2 để giải thích điều đó.
Bước 5: Xác định Bộ lọc
Nếu bạn may mắn, tín hiệu của bạn sẽ không có ‘nhiễu’ (dao động) và tốc độ động cơ của bạn sẽ chính xác. Trong trường hợp của tôi, có rất nhiều tiếng ồn đến từ nhà phân phối thường cho điện áp khác xa so với dự kiến. Điều này biến thành số đọc rất sai về tốc độ động cơ thực tế. Tiếng ồn này sẽ cần được lọc bỏ.
Sau một số phân tích tín hiệu, hầu như tất cả tiếng ồn đều đến ở tần số (Hz) cao hơn nhiều so với những gì mà chính động cơ phát ra (điều này đúng với hầu hết các hệ thống động lực thực tế). Điều này có nghĩa là một bộ lọc thông thấp là một ứng cử viên lý tưởng để giải quyết vấn đề này.
Một bộ lọc thông thấp cho phép các tần số thấp (mong muốn) đi qua và làm suy giảm các tần số cao (không mong muốn).
Bước 6: Lọc: Phần 1
Việc thiết kế bộ lọc có thể được thực hiện bằng tay, tuy nhiên việc sử dụng MATLAB sẽ tăng tốc độ này lên đáng kể nếu bạn có quyền truy cập vào phần mềm.
Bộ lọc thông thấp có thể được coi là hàm truyền (hoặc phân số) trong miền Laplace (miền tần số). Tần số đầu vào sẽ được nhân với phần này và đầu ra là một tín hiệu đã được lọc chỉ có thông tin bạn muốn sử dụng.
Biến duy nhất trong hàm là tau. Tau bằng 1 / Omega, trong đó Omega là tần số cắt bạn muốn (tính bằng radian trên giây). Tần số cắt là giới hạn mà các tần số cao hơn nó sẽ bị loại bỏ và các tần số thấp hơn nó sẽ được giữ lại.
Tôi đặt tần số cắt bằng RPM mà động cơ của tôi sẽ không bao giờ đạt được (990 RPM hoặc 165 Hz). Các đồ thị FFT hiển thị gần đúng tần số mà tín hiệu thô của tôi đang mang và các tần số phát ra từ bộ lọc.
Bước 7: Lọc: Phần 2
Ở đây MATLAB đã được sử dụng một lần nữa vì lợi ích của thời gian. Tần số cắt được xác định và từ đó chức năng truyền kết quả được hiển thị. Hãy nhớ rằng phần này chỉ áp dụng cho miền Laplace và không thể được sử dụng trực tiếp trên bộ điều khiển vi mô dựa trên thời gian như Arduino UNO R3.
Bước 8: Lọc: Phần 3
MATLAB có một lệnh sẽ chuyển một hàm liên tục (miền tần số) thành một hàm rời rạc (miền thời gian). Đầu ra của lệnh này sẽ cung cấp một phương trình có thể dễ dàng kết hợp vào mã Arduino IDE.
Bước 9: Lọc: Phần 4
Trong bản phác thảo Arduino, hãy bao gồm các biến u và y trước khi thiết lập. Lệnh float chỉ đơn giản là xác định cách biến sẽ lưu trữ dữ liệu (những thứ như giá trị lớn nhất, số thập phân, v.v.) và một liên kết đến thêm thông tin về điều này sẽ được cung cấp tại đây: https://www.arduino.cc/reference/en/language / varia…
Trong vòng lặp diễn ra quá trình chuyển đổi từ tín hiệu thô thành tốc độ động cơ, hãy bao gồm biến u và phương trình bội y. Có nhiều cách để sử dụng điều này, nhưng biến u phải được đặt bằng tín hiệu đầu vào thô đang được đo và biến y sẽ là giá trị được lọc.
Bước 10: Hiển thị tốc độ động cơ đã lọc của bạn
Đề xuất:
Hiển thị số đọc của cảm biến Arduino trực tiếp trên màn hình LCD Nokia 5110: 4 bước (có hình ảnh)
Hiển thị kết quả đọc cảm biến Arduino trực tiếp trên màn hình LCD Nokia 5110: Nếu bạn đã từng làm việc với arduino, chắc hẳn bạn đã muốn nó hiển thị các kết quả cảm biến. có lẽ muốn nó hiển thị các bài đọc trên một cái gì đó
Hiển thị Arduino XY trên Tấm chắn Máy hiện sóng: 7 bước (có Hình ảnh)
Màn hình Arduino XY trên tấm chắn Oscilloscope: Trong nhiều năm, tôi thường sử dụng máy hiện sóng hiển thị logo và văn bản bằng chế độ x y cho các sự kiện mà Makerspace của tôi đã giúp đỡ. Thông thường điều khiển nó bằng cách sử dụng các chân PWM trên Ardiuno và mạch RC để làm mịn hiện tượng chập chờn
Arduino Uno: Hình ảnh động bitmap trên Tấm chắn hiển thị màn hình cảm ứng TFT ILI9341 Với Visuino: 12 bước (có Hình ảnh)
Arduino Uno: Ảnh động bitmap trên Tấm chắn hiển thị màn hình cảm ứng TFT ILI9341 Với Tấm chắn màn hình cảm ứng TFT dựa trên Visuino: ILI9341 là Tấm chắn hiển thị chi phí thấp rất phổ biến cho Arduino. Visuino đã hỗ trợ chúng trong một thời gian khá dài, nhưng tôi chưa bao giờ có cơ hội viết Hướng dẫn về cách sử dụng chúng. Tuy nhiên, gần đây có rất ít người hỏi
Hiển thị nhiệt độ trên Mô-đun hiển thị LED P10 bằng Arduino: 3 bước (có hình ảnh)
Hiển thị nhiệt độ trên Mô-đun hiển thị LED P10 bằng Arduino: Trong hướng dẫn trước đã được hướng dẫn cách hiển thị văn bản trên Mô-đun hiển thị LED ma trận P10 bằng cách sử dụng Arduino và Đầu nối DMD, bạn có thể kiểm tra tại đây. Trong hướng dẫn này, chúng tôi sẽ đưa ra một hướng dẫn dự án đơn giản bằng cách sử dụng mô-đun P10 làm màn hình hiển thị
Thực hiện: Bài dự thi Cuộc thi Huy hiệu NYC từ Máy in GameBoy cũ: 14 bước (có Hình ảnh)
Thực hiện: Bài dự thi Huy hiệu NYC từ Máy in GameBoy cũ: Xin chào tất cả, đây là lần chụp thứ hai của tôi tại một cửa hàng Có thể hướng dẫn .. hãy tử tế..Vì vậy, cuộc họp tại địa phương Make: NYC đã có một cuộc thi huy hiệu cho cuộc họp thứ hai .. (liên kết tại đây) , mục đích của cuộc thi là tạo ra một bảng tên / huy hiệu có thể đeo được ở một số loại, bằng một số chất liệu