İçindekiler:

Motor RPM'sini Görüntülemek için Arduino Kullanın: 10 Adım (Resimlerle)
Motor RPM'sini Görüntülemek için Arduino Kullanın: 10 Adım (Resimlerle)

Video: Motor RPM'sini Görüntülemek için Arduino Kullanın: 10 Adım (Resimlerle)

Video: Motor RPM'sini Görüntülemek için Arduino Kullanın: 10 Adım (Resimlerle)
Video: BUNU YAŞAMAYAN YOKTUR 😂 #emirbeşli #shorts 2024, Kasım
Anonim
Motor RPM'sini Görüntülemek için Arduino'yu Kullanın
Motor RPM'sini Görüntülemek için Arduino'yu Kullanın
Motor RPM'sini Görüntülemek için Arduino'yu Kullanın
Motor RPM'sini Görüntülemek için Arduino'yu Kullanın
Motor RPM'sini Görüntülemek için Arduino'yu Kullanın
Motor RPM'sini Görüntülemek için Arduino'yu Kullanın

Bu kılavuz, Acura Integra palet arabamda bir Arduino UNO R3, I2C'li 16x2 LCD ekran ve motor hız göstergesi ve vites lambası olarak kullanılacak bir LED şeridi nasıl kullandığımı özetleyecektir. Arduino yazılımına veya genel olarak kodlamaya, matematik yazılımı MATLAB'a ve elektrik devreleri oluşturma veya değiştirme konusunda biraz deneyime veya maruz kalmaya sahip biri açısından yazılmıştır. Gelecekte bu, bu konularda çok az deneyimi olan veya hiç deneyimi olmayan biri için daha kolay anlaşılması için revize edilebilir.

Adım 1: Bir Sigal Teli Seçin

Bir Sigal Teli Seçin
Bir Sigal Teli Seçin

Motor devriyle ilişkili bir sinyal almanız gerekecek. Motor devrini ölçen bir sistem eklemek mümkündür ancak motor devri bilgisini taşıyan mevcut bir kabloya dokunmak çok daha pratiktir. Tek bir arabanın bunun için birden fazla kaynağı olabilir ve tek bir araç modelinde yıldan yıla bile çılgınca değişebilir. Bu eğitimin hatırına, 2000 Acura Integra LS modifiyeli bir arabam örneğini kullanacağım. Motorumda (OBD2'li B18B1), 12V yüksekliğinde ve tam bir devri tamamladıktan sonra 0V'a düşen kullanılmayan bir voltaj çıkışı olduğunu gördüm.

Potansiyel bir motor devri sinyalinin belirlenmesine yardımcı olacak şeyler:

  • Aracınız için bağlantı şeması
  • Aracınız için motor/ECU sinyallerini içeren forumları arama
  • Dost canlısı bir tamirci veya araba tutkunu

Adım 2: Kabloyu Arduino Kartına Uzatın

Kabloyu Arduino Kartına Uzatın
Kabloyu Arduino Kartına Uzatın
Kabloyu Arduino Kartına Uzatın
Kabloyu Arduino Kartına Uzatın

Uygun bir sinyal seçtikten sonra, bunu Arduino kartınızı nereye yerleştirirseniz oraya uzatmanız gerekecektir. Benimkini radyonun olduğu yere yerleştirmeye karar verdim, bu yüzden motordan gelen yeni kabloyu yangın duvarındaki lastik bir rondeladan geçirip radyo alanına yönlendirdim. Sıyırma, lehimleme ve kablolamayı koruma konusunda zaten bol miktarda nasıl yapılır kılavuzu bulunduğundan, bu işlemi açıklamayacağım.

Adım 3: Sinyal Analizi

Sinyal Analizi
Sinyal Analizi

Burası işlerin karmaşıklaşabileceği yer. Sinyal analizi ve kontrolleri hakkında genel bir anlayışa sahip olmak size çok yardımcı olacaktır, ancak çok az bilgi ile yapılabilir.

Büyük olasılıkla seçilen sinyal kablosu, motor devrinin tam değerini göstermeyecektir. İstediğiniz motor devrinin tam sayısını verecek şekilde şekillendirilmesi ve değiştirilmesi gerekecektir. Her farklı araba ve sinyal kablosunun seçimi farklı olabileceğinden, bu noktadan sonra Integra'mda distribütörden gelen konum sinyalini nasıl kullandığımı açıklayacağım.

Sinyalim normalde 12V'dir ve bir tam dönüşü tamamladığımda 0V'a düşer. Bir tam dönüşü veya bir tam döngüyü tamamlama zamanını biliyorsanız, bu, bazı temel kavramlar kullanılarak kolayca devir/dakikaya çevrilebilir.

1 / (döngü başına saniye) = saniye başına döngü veya Hz

Dakikadaki devir sayısı = Hz * 60

Adım 4: Sinyal Analizinizi Kodlayın

Sinyal Analizinizi Kodlayın
Sinyal Analizinizi Kodlayın

Bu yöntem, giriş sinyalinin bir tam çevrimi tamamlaması için geçen süreyi almayı gerektirir. Neyse ki Arduino IDE yazılımının tam olarak bunu yapan bir komutu var, PulseIn.

Bu komut, bir sinyalin eşiği geçmesini bekleyecek, saymaya başlayacak ve eşik tekrar aşıldığında sayımı durduracaktır. Komutu kullanırken dikkat edilmesi gereken bazı detaylar var, bu yüzden PulseIn bilgilerine bir link ekleyeceğim:

PulseIn, mikrosaniye cinsinden bir değer döndürür ve matematiği basit tutmak için bunun hemen normal saniyeye dönüştürülmesi gerekir. Bir önceki adımdaki matematiğin ardından bu süre doğrudan RPM'ye eşitlenebilir.

Not: Deneme yanılmadan sonra, distribütörün motor krank milinin her dönüşü için iki dönüşü tamamladığını keşfettim, bu yüzden bunu hesaba katmak için cevabımı 2'ye böldüm.

Adım 5: Bir Filtre Tanımlayın

Bir Filtre Tanımlayın
Bir Filtre Tanımlayın

Şanslıysanız, sinyalinizde 'gürültü' (dalgalanmalar) olmayacak ve motor hızınız kesin olacaktır. Benim durumumda, dağıtıcıdan genellikle beklenenden uzak voltajlar veren çok fazla gürültü geliyordu. Bu, gerçek motor devrinin çok yanlış okumalarına dönüşür. Bu gürültünün filtrelenmesi gerekecektir.

Bazı sinyal analizlerinden sonra, neredeyse tüm gürültü, motorun kendisinin ürettiğinden (çoğu gerçek dinamik sistem için doğrudur) çok daha yüksek frekanslarda (Hz) geldi. Bu, düşük geçişli bir filtrenin bununla ilgilenmek için ideal bir aday olduğu anlamına gelir.

Alçak geçiren bir filtre, düşük frekansların (istenen) geçmesine izin verir ve yüksek frekansları (istenmeyen) zayıflatır.

6. Adım: Filtreleme: 1. Kısım

Filtreleme: Bölüm 1
Filtreleme: Bölüm 1
Filtreleme: Bölüm 1
Filtreleme: Bölüm 1
Filtreleme: Bölüm 1
Filtreleme: Bölüm 1

Filtre tasarımı elle yapılabilir, ancak yazılıma erişiminiz varsa MATLAB'ı kullanmak bunu önemli ölçüde hızlandıracaktır.

Alçak geçiren bir filtre, Laplace alanındaki (frekans alanı) bir transfer fonksiyonuna (veya kesirine) eşitlenebilir. Giriş frekansı bu kesir ile çarpılacaktır ve çıkış sadece kullanmak istediğiniz bilgilere sahip olan filtrelenmiş bir sinyaldir.

Fonksiyondaki tek değişken tau'dur. Tau eşittir 1 / Omega, burada Omega istediğiniz kesme frekansıdır (saniyede radyan cinsinden olmalıdır). Kesim frekansı, kendisinden daha yüksek frekansların kaldırılacağı ve daha düşük frekansların tutulacağı sınırdır.

Kesme frekansını motorumun asla ulaşamayacağı bir RPM'ye ayarladım (990 RPM veya 165 Hz). FFT grafikleri, ham sinyalimin hangi frekansları taşıdığını ve filtreden çıkan frekansları kabaca gösterir.

7. Adım: Filtreleme: 2. Kısım

Filtreleme: Bölüm 2
Filtreleme: Bölüm 2
Filtreleme: Bölüm 2
Filtreleme: Bölüm 2

Burada MATLAB yine zaman kazanmak için kullanılmıştır. Kesme frekansı tanımlanır ve bundan elde edilen transfer fonksiyonu görüntülenir. Bu kesrin yalnızca Laplace etki alanı için geçerli olduğunu ve Arduino UNO R3 gibi zamana dayalı bir mikro denetleyicide doğrudan kullanılamayacağını unutmayın.

8. Adım: Filtreleme: Bölüm 3

Filtreleme: Bölüm 3
Filtreleme: Bölüm 3
Filtreleme: Bölüm 3
Filtreleme: Bölüm 3

MATLAB, sürekli bir işlevi (frekans alanı) ayrık bir işleve (zaman alanı) dönüştürecek bir komuta sahiptir. Bu komutun çıktısı, Arduino IDE koduna kolayca dahil edilebilecek bir denklem sağlayacaktır.

9. Adım: Filtreleme: 4. Kısım

Filtreleme: Bölüm 4
Filtreleme: Bölüm 4
Filtreleme: Bölüm 4
Filtreleme: Bölüm 4

Arduino çiziminde, kurulumdan önce u ve y değişkenlerini ekleyin. Float komutu, değişkenin verileri nasıl depolayacağını basitçe tanımlar (maksimum değer, ondalık sayılar vb. gibi şeyler) ve bununla ilgili daha fazla bilgi için bir bağlantı burada sağlanacaktır: https://www.arduino.cc/reference/en/language /değişken…

Ham sinyalden motor hızına dönüşümün gerçekleştiği döngüye, u değişkenini ve y çoklu denklemini ekleyin. Bunu kullanmanın birçok yolu vardır, ancak u değişkeni, ölçülen ham giriş sinyaline eşit olarak ayarlanmalıdır ve y değişkeni filtrelenmiş değer olacaktır.

Adım 10: Filtrelenmiş Motor Hızınızı Görüntüleyin

Önerilen: