Mündəricat:

Mühərrik RPM -ni göstərmək üçün Arduino -dan istifadə edin: 10 addım (şəkillərlə)
Mühərrik RPM -ni göstərmək üçün Arduino -dan istifadə edin: 10 addım (şəkillərlə)

Video: Mühərrik RPM -ni göstərmək üçün Arduino -dan istifadə edin: 10 addım (şəkillərlə)

Video: Mühərrik RPM -ni göstərmək üçün Arduino -dan istifadə edin: 10 addım (şəkillərlə)
Video: 16.500 RPM - 12V Super Yüksək Sürətli DC Motoru DEAD CD-ROM 2024, Dekabr
Anonim
Mühərrik RPM -ni göstərmək üçün Arduino -dan istifadə edin
Mühərrik RPM -ni göstərmək üçün Arduino -dan istifadə edin
Mühərrik RPM -ni göstərmək üçün Arduino -dan istifadə edin
Mühərrik RPM -ni göstərmək üçün Arduino -dan istifadə edin
Mühərrik RPM -ni göstərmək üçün Arduino -dan istifadə edin
Mühərrik RPM -ni göstərmək üçün Arduino -dan istifadə edin

Bu təlimatda, Aruraino UNO R3, I2C ilə 16x2 LCD displey və bir LED şeridi, Acura Integra trekli avtomobilimdə mühərrikin sürət göstəricisi və işığı işığı kimi necə istifadə edəcəyimi izah edəcək. Arduino proqram təminatı və ya ümumiyyətlə kodlaşdırma, MATLAB riyazi proqramı və elektrik sxemlərinin yaradılması və ya dəyişdirilməsi ilə bağlı müəyyən təcrübəyə və ya təcrübəyə malik olan birisi üçün yazılmışdır. Gələcəkdə bu mövzularla az və ya çox təcrübəsi olmayan bir adam üçün başa düşülməsi daha asan ola bilər.

Addım 1: Sigal Tel seçin

Sigal Tel seçin
Sigal Tel seçin

Mühərrik sürətinə uyğun bir siqnal almalısınız. Mühərrik sürətini ölçən bir sistem əlavə etmək mümkündür, lakin mühərrik sürəti haqqında məlumat daşıyan mövcud bir teldən istifadə etmək daha praktikdir. Tək bir maşının bunun üçün birdən çox mənbəyi ola bilər və tək bir avtomobil modelində hətta ildən-ilə vəhşicəsinə dəyişə bilər. Bu dərslik naminə 2000 Acura Integra LS modifikasiya edilmiş bir avtomobilin nümunəsini istifadə edəcəyəm. Mühərrikimdə (OBD2 ilə B18B1) 12V yüksək olan və tam bir inqilab başa çatdıqdan sonra 0V -ə düşən istifadə olunmamış bir gərginlik olduğunu gördüm.

Potensial mühərrik sürəti siqnalını təyin etməyə kömək edəcək şeylər:

  • Avtomobilinizin elektrik naqilləri diaqramı
  • Avtomobiliniz üçün mühərrik/ECU siqnallarını ehtiva edən forumlar axtarın
  • Səmimi bir mexanik və ya avtomobil həvəskarı

Addım 2: Teli Arduino lövhəsinə uzatın

Teli Arduino lövhəsinə uzatın
Teli Arduino lövhəsinə uzatın
Teli Arduino lövhəsinə uzatın
Teli Arduino lövhəsinə uzatın

Uyğun bir siqnal seçdikdən sonra Arduino lövhənizi harada yerləşdirdiyiniz yerə qədər uzatmalısınız. Əvvəlki radionu vasitənin içərisinə yerləşdirmək qərarına gəldim və yeni teli mühərrikdən, yanğın divarındakı bir rezin çubuqdan və birbaşa radio sahəsinə yönəltdim. Kabellərin soyulması, lehimlənməsi və qorunması ilə bağlı çoxlu təlimatlar olduğu üçün bu prosesi izah etməyəcəyəm.

Addım 3: Siqnal Analizi

Siqnal təhlili
Siqnal təhlili

İşlərin mürəkkəbləşə biləcəyi yer budur. Siqnal təhlili və idarəetmə haqqında ümumi bir anlayışa sahib olmaq sizə çox kömək edəcək, ancaq az məlumatla bunu etmək mümkündür.

Seçilən siqnal teli, ehtimal ki, mühərrik sürətinin dəqiq dəyərini tüpürməyəcək. İstədiyiniz mühərrik dəqiqəsinin dəqiq sayını vermək üçün şəkilləndirilməli və dəyişdirilməlidir. Seçilən hər bir avtomobil və siqnal teli fərqli ola biləcəyi üçün, bu andan etibarən Integra -dakı distribyutorun mövqe siqnalını necə istifadə etdiyimi izah edəcəyəm.

Siqnalım normal olaraq 12V -dir və bir tam fırlanmanı tamamlayanda 0V -ə düşür. Bir tam fırlanma və ya bir tam dövrəni başa çatdırmağın vaxtını bilirsinizsə, bu, bəzi əsas anlayışlardan istifadə edərək asanlıqla inqilablara/dəqlərə çevrilə bilər.

1 / (dövr başına saniyə) = saniyədə dövrə və ya Hz

Dəqiqə inqilabları = Hz * 60

Addım 4: Siqnal Analizinizi Kodlayın

Siqnal Analizinizi Kodlayın
Siqnal Analizinizi Kodlayın

Bu üsul, giriş siqnalının bir tam dövrəni tamamlaması üçün lazım olan vaxtın alınmasını tələb edir. Xoşbəxtlikdən Arduino IDE proqramının PulseIn -də bunu edən bir əmri var.

Bu əmr, eşik həddini keçmək üçün bir siqnal gözləyəcək, saymağa başlayacaq və yenidən eşik keçdikdə saymağı dayandıracaq. Komandanı istifadə edərkən qeyd edilməli olan bəzi detallar var, buna görə bura PulseIn məlumatlarına bir keçid daxil edəcəyəm:

PulseIn mikrosaniyələrdə bir dəyər qaytaracaq və riyazi sadə saxlamaq üçün bu dərhal normal saniyələrə çevrilməlidir. Əvvəlki addımdakı riyazi hesablamalardan sonra bu müddət birbaşa RPM -ə bərabər tutula bilər.

Qeyd: sınaq və səhvdən sonra distribyutorun mühərrik krank milinin hər bir fırlanması üçün iki fırlanma tamamladığını kəşf etdim, buna görə cavabımı 2 -yə böldüm.

Addım 5: Filtri müəyyənləşdirin

Filtri müəyyənləşdirin
Filtri müəyyənləşdirin

Şanslı olsanız siqnalınızda 'səs -küy' (dalğalanma) olmayacaq və mühərrik sürətiniz dəqiq olacaq. Mənim vəziyyətimdə, distribyutordan çox vaxt gözləniləndən çox gerilim verən çox səs -küy var idi. Bu, həqiqi mühərrik sürətinin çox yanlış oxunuşlarına çevrilir. Bu səs -küyü süzmək lazımdır.

Bəzi siqnal analizlərindən sonra, demək olar ki, bütün səs -küy, mühərrikin çıxardığından çox yüksək tezliklərdə (Hz) gəldi (bu, əksər dinamik sistemlər üçün doğrudur). Bu, aşağı keçid filtrinin bu işlə məşğul olmaq üçün ideal bir namizəd olması deməkdir.

Aşağı keçid filtri aşağı tezliklərin (arzu olunan) keçməsinə imkan verir və yüksək tezlikləri (arzuolunmaz) zəiflədir.

Addım 6: Filtrləmə: 1 -ci hissə

Filtrləmə: 1 -ci hissə
Filtrləmə: 1 -ci hissə
Filtrləmə: 1 -ci hissə
Filtrləmə: 1 -ci hissə
Filtrləmə: 1 -ci hissə
Filtrləmə: 1 -ci hissə

Süzgəcin dizaynı əllə edilə bilər, ancaq proqrama daxil olsanız MATLAB -dan istifadə etmək bu işi əhəmiyyətli dərəcədə sürətləndirəcək.

Aşağı keçid filtri Laplace sahəsindəki (tezlik sahəsindəki) bir transfer funksiyasına (və ya hissəsinə) bərabər tutula bilər. Giriş tezliyi bu fraksiya ilə vurulacaq və çıxış yalnız istifadə etmək istədiyiniz məlumatı olan süzülmüş bir siqnaldır.

Funksiyada yeganə dəyişən tau -dur. Tau 1 / Omega -ya bərabərdir, burada Omega istədiyiniz kəsmə tezliyidir (saniyədə radianda olmalıdır). Kesim tezliyi, ondan daha yüksək tezliklərin silinəcəyi və daha aşağı olan tezliklərin saxlanılacağı sərhəddir.

Mühərrikin heç vaxt çatmayacağı bir RPM -ə bərabər olan kəsilmə tezliyini təyin etdim (990 RPM və ya 165 Hz). FFT qrafikləri, təxminən mənim xam siqnalımın hansı tezlikləri apardığını və filtrdən çıxan tezlikləri göstərir.

Addım 7: Filtrləmə: 2 -ci hissə

Filtrləmə: 2 -ci hissə
Filtrləmə: 2 -ci hissə
Filtrləmə: 2 -ci hissə
Filtrləmə: 2 -ci hissə

Burada MATLAB vaxt naminə yenidən istifadə edildi. Kəsmə tezliyi müəyyən edilir və nəticədə ötürülmə funksiyası göstərilir. Unutmayın ki, bu hissə yalnız Laplace domeninə aiddir və Arduino UNO R3 kimi zamana əsaslanan mikro nəzarətçi üzərində birbaşa istifadə edilə bilməz.

Addım 8: Filtrləmə: 3 -cü hissə

Filtrləmə: 3 -cü hissə
Filtrləmə: 3 -cü hissə
Filtrləmə: 3 -cü hissə
Filtrləmə: 3 -cü hissə

MATLAB, fasiləsiz bir funksiyanı (tezlik sahəsini) diskret bir funksiyaya (vaxt sahəsinə) çevirəcək bir əmrə malikdir. Bu əmrin çıxışı, Arduino IDE koduna asanlıqla daxil edilə bilən bir tənlik təmin edəcək.

Addım 9: Filtrləmə: 4 -cü hissə

Filtrləmə: 4 -cü hissə
Filtrləmə: 4 -cü hissə
Filtrləmə: 4 -cü hissə
Filtrləmə: 4 -cü hissə

Arduino eskizində, qurmadan əvvəl u və y dəyişənlərini daxil edin. Float əmri, dəyişənin məlumatları necə saxlayacağını (maksimum dəyər, ondalıklar və s. Kimi şeyləri) müəyyənləşdirir və bu barədə daha çox məlumat üçün bir keçid burada veriləcək: https://www.arduino.cc/reference/en/language /varia…

Xam siqnaldan mühərrik sürətinə çevrilmənin baş verdiyi döngədə u dəyişəni və y çoxlu tənliyi daxil edin. Bunu tətbiq etməyin bir çox yolu var, ancaq u dəyişəninin ölçülən xam giriş siqnalına bərabər olaraq təyin edilməsi lazımdır və y dəyişəni süzülmüş dəyər olacaq.

Tövsiyə: