İçindekiler:
- Adım 1: Bir Sigal Teli Seçin
- Adım 2: Kabloyu Arduino Kartına Uzatın
- Adım 3: Sinyal Analizi
- Adım 4: Sinyal Analizinizi Kodlayın
- Adım 5: Bir Filtre Tanımlayın
- 6. Adım: Filtreleme: 1. Kısım
- 7. Adım: Filtreleme: 2. Kısım
- 8. Adım: Filtreleme: Bölüm 3
- 9. Adım: Filtreleme: 4. Kısım
- Adım 10: Filtrelenmiş Motor Hızınızı Görüntüleyin
Video: Motor RPM'sini Görüntülemek için Arduino Kullanın: 10 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
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
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
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
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
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
Ş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
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
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
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
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:
Bir Arduino'yu Kitaplık Olmadan Kayan Bir Metin Görüntülemek İçin Başka Bir Arduino Kullanarak Programlamak: 5 Adım
Bir Arduino'yu Kitaplık Olmadan Kayan Bir Metni Görüntülemek için Başka Bir Arduino Kullanarak Programlama: Sony Spresense veya Arduino Uno o kadar pahalı değil ve çok fazla güç gerektirmez. Ancak projenizin güç, alan ve hatta bütçe kısıtlaması varsa Arduino Pro Mini kullanmayı düşünebilirsiniz. Arduino Pro Micro'nun aksine, Arduino Pro Mi
ADC #Arduino Değerlerini Görüntülemek için 7 Segment, #Arduino: 4 Adım
7-Segment ADC #Arduino Değerlerini Görüntülemek için, #Arduino: Bu yazımda yine bir önceki yazı ile alakalı olan bir proje yapacağım. Yani ADC verileri işleniyor. Böylece adc verilerinin değerini görmek için bir seri monitöre ihtiyacınız yok. Bu yazıda bir ADC Değer görüntüleyici ekranı yapacağım. yani yapmıyorsun
Arduino için 6 Buton İçin 1 Analog Giriş Kullanın: 6 Adım
Arduino için 6 Düğme için 1 Analog Giriş Kullanın: Arduino'm için nasıl daha fazla Dijital Giriş elde edebileceğimi sık sık merak etmişimdir. Kısa süre önce birden fazla dijital giriş getirmek için Analog Girişlerden birini kullanabilmem gerektiği aklıma geldi. Hızlı bir arama yaptım ve insanların nerede olduğunu buldum
Talimatları Görüntülemek İçin Orijinal Arayüze Nasıl Dönülür: 3 Adım
Eğitilebilir Öğeleri Görüntülemek için Orijinal Arayüze Nasıl Dönülür: Fark etmediyseniz, Eğitilebilir Öğelerin bir şeyleri görüntülemek için arayüzü öne çıkan, popüler, derecelendirme için değiştirildi | en son, görüşler ve zamanın ruhu. Bu değişikliği beğenmediklerine dair birkaç şikayet gördüm, bu yüzden herkese: işte burada değişiyoruz
Windows Bilgisayarında Bir Linux Bilgisayardan X Programlarını Görüntülemek için SSH ve XMing Kullanın: 6 Adım
Bir Windows Bilgisayarında Bir Linux Bilgisayardan X Programlarını Görüntülemek için SSH ve XMing Kullanın: Linux'u iş yerinde ve Windows'u evde kullanıyorsanız veya bunun tersini yapıyorsanız, zaman zaman diğer konumunuzdaki bilgisayarda oturum açmanız gerekebilir. ve programları çalıştırın. Peki, bir X Sunucusu kurabilir ve SSH İstemcinizle SSH Tünel Açmayı etkinleştirebilirsiniz ve bir