Obsah:
- Krok 1: Vyberte signál Sigal
- Krok 2: Rozšírte drôt na dosku Arduino
- Krok 3: Analýza signálu
- Krok 4: Kódujte svoju analýzu signálu
- Krok 5: Identifikujte filter
- Krok 6: Filtrovanie: časť 1
- Krok 7: Filtrovanie: časť 2
- Krok 8: Filtrovanie: časť 3
- Krok 9: Filtrovanie: časť 4
- Krok 10: Zobrazte filtrované otáčky motora
Video: Použite Arduino na zobrazenie otáčok motora: 10 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Táto príručka načrtne, ako som v mojom dráhovom automobile Acura Integra používal Arduino UNO R3, LCD displej 16x2 s I2C a LED pásik ako ukazovateľ otáčok motora a svetlo radenia. Je napísaný v zmysle niekoho, kto má skúsenosti alebo má skúsenosti so softvérom Arduino alebo s kódovaním všeobecne, matematickým softvérom MATLAB a s vytváraním alebo úpravou elektrických obvodov. V budúcnosti to môže byť zrevidované, aby bolo zrozumiteľnejšie pre niekoho, kto má s týmito témami malé až žiadne skúsenosti.
Krok 1: Vyberte signál Sigal
Budete potrebovať signál, ktorý zodpovedá otáčkam motora. Je možné pridať systém, ktorý meria otáčky motora, ale je oveľa praktickejšie využiť existujúci vodič, ktorý prenáša informácie o otáčkach motora. Jedno auto na to môže mať viac zdrojov a môže sa veľmi líšiť aj medziročne na jednom modeli vozidla. V záujme tohto tutoriálu použijem príklad svojho auta, upravenú trať 2000 Acura Integra LS. Na svojom motore (B18B1 s OBD2) som našiel nevyužité napätie, ktoré je vysoké 12 V a po úplnom otočení klesne na 0 V.
Veci, ktoré pomôžu identifikovať potenciálny signál otáčok motora:
- Schéma zapojenia vášho vozidla
- Hľadanie fór pre vaše vozidlo so signálmi motora/ECU
- Priateľský mechanik alebo automobilový nadšenec
Krok 2: Rozšírte drôt na dosku Arduino
Keď si vyberiete vhodný signál, budete ho musieť rozšíriť kdekoľvek, kde umiestnite dosku Arduino. Rozhodol som sa umiestniť ten svoj do vozidla, kde bývalo rádio, a tak som previedol nový drôt od motora cez gumovú priechodku v protipožiarnej stene a priamo do priestoru rádia. Pretože už existuje veľké množstvo návodov na odstraňovanie, spájkovanie a ochranu vodičov, tento proces nebudem vysvetľovať.
Krok 3: Analýza signálu
Tu sa môžu veci skomplikovať. Všeobecné porozumenie analýze signálu a ovládacím prvkom vám pomôže na dlhej ceste, ale dá sa to zvládnuť s malými znalosťami.
Zvolený signálny drôt pravdepodobne nevypľuje presnú hodnotu otáčok motora. Bude potrebné ho tvarovať a upravovať tak, aby poskytoval presný počet otáčok motora, ktoré chcete. Vzhľadom na to, že každé iné auto a zvolený signálny vodič sa môžu líšiť, od tohto bodu vysvetlím, ako som na svojom Integre použil signál polohy od distribútora.
Môj signál je normálne 12V a po dokončení jedného úplného otočenia klesne na 0V. Ak poznáte čas na dokončenie jednej úplnej rotácie alebo jedného celého cyklu, dá sa to ľahko preložiť do otáčok za minútu pomocou niektorých základných konceptov.
1 / (sekundy na cyklus) = cykly za sekundu alebo Hz
Otáčky za minútu = Hz * 60
Krok 4: Kódujte svoju analýzu signálu
Táto metóda vyžaduje získanie času potrebného na to, aby vstupný signál dokončil jeden celý cyklus. Našťastie softvér Arduino IDE má príkaz, ktorý to robí presne, PulseIn.
Tento príkaz počká, kým signál prekročí prah, začne počítať a zastaví počítanie, keď sa prah opäť prekročí. Pri použití príkazu je potrebné poznamenať niekoľko podrobností, preto sem vložím odkaz na informácie o PulseIn:
PulseIn vráti hodnotu v mikrosekundách a aby bola matematika jednoduchá, mala by byť okamžite prevedená na bežné sekundy. V nadväznosti na matematiku v predchádzajúcom kroku je možné toto časové obdobie rovnať RPM.
Poznámka: po pokusoch a omyloch som zistil, že distribútor dokončí dve otáčky pre každé jedno otočenie kľukového hriadeľa motora, a tak som svoju odpoveď jednoducho rozdelil na 2.
Krok 5: Identifikujte filter
Ak budete mať šťastie, váš signál bude bez „šumu“(kolísania) a otáčky motora budú presné. V mojom prípade od distribútora prichádzal veľký hluk, ktorý často dával napätie ďaleko od toho, čo sa očakáva. To sa zmení na veľmi falošné hodnoty skutočných otáčok motora. Tento hluk bude potrebné odfiltrovať.
Po určitej analýze signálu prišiel takmer všetok hluk pri frekvenciách (Hz) oveľa vyšších, než aké produkoval samotný motor (čo platí pre väčšinu skutočných dynamických systémov). To znamená, že dolnopriepustný filter je ideálnym kandidátom, ako sa o to postarať.
Dolnopriepustný filter umožňuje prechod nízkych frekvencií (požadovaný) a tlmí vysoké frekvencie (nežiaduce).
Krok 6: Filtrovanie: časť 1
Navrhovanie filtra je možné vykonať ručne, použitie MATLABu to však výrazne urýchli, ak máte prístup k softvéru.
Dolnopriepustný filter možno prirovnať k prenosovej funkcii (alebo zlomku) v Laplaceovej doméne (frekvenčná doména). Vstupná frekvencia sa vynásobí týmto zlomkom a výstupom je filtrovaný signál, ktorý obsahuje iba informácie, ktoré chcete použiť.
Jedinou premennou vo funkcii je tau. Tau sa rovná 1 / Omega, kde Omega je požadovaná medzná frekvencia (musí byť v radiánoch za sekundu). Medzná frekvencia je limit, pri ktorom budú odstránené frekvencie vyššie, ako sú, a frekvencie nižšie, ako budú zachované.
Nastavil som medznú frekvenciu na otáčky, ktoré môj motor nikdy nedosiahne (990 ot / min alebo 165 Hz). Grafy FFT zhruba ukazujú, aké frekvencie niesol môj surový signál a frekvencie, ktoré vychádzali z filtra.
Krok 7: Filtrovanie: časť 2
Tu bol MATLAB kvôli času opäť použitý. Definuje sa medzná frekvencia a z nej sa zobrazí výsledná prenosová funkcia. Majte na pamäti, že táto frakcia sa týka iba domény Laplace a nemôže byť priamo použitá na časovo riadenom mikrokontroléri, ako je Arduino UNO R3.
Krok 8: Filtrovanie: časť 3
MATLAB má príkaz, ktorý prevedie spojitú funkciu (frekvenčná doména) na diskrétnu funkciu (časová doména). Výstup tohto príkazu poskytne rovnicu, ktorú je možné ľahko začleniť do kódu Arduino IDE.
Krok 9: Filtrovanie: časť 4
V náčrte Arduino zahrňte pred nastavením premenné u a y. Príkaz float jednoducho definuje, ako bude premenná ukladať údaje (napríklad maximálna hodnota, desatinné miesta atď. …), a odkaz na ďalšie informácie o tom bude poskytnutý tu: https://www.arduino.cc/reference/en/language /varia…
Do slučky, v ktorej dochádza k prevodu zo surového signálu na otáčky motora, zahrňte premennú u a rovnicu násobku y. Existuje niekoľko spôsobov, ako to využiť, ale premenná u by mala byť nastavená rovnako ako meraný surový vstupný signál a premenná y bude filtrovaná hodnota.
Krok 10: Zobrazte filtrované otáčky motora
Odporúča:
Regulátor otáčok motora: 8 krokov
Regulátor otáčok motora: V tomto projekte vám ukážem spôsob, akým som vyrobil regulátor otáčok motora & Tiež ukážem, aké ľahké môže byť zostavenie regulátora otáčok motora pomocou IC 555. Začnime
Znovu použite touchpad starého prenosného počítača na ovládanie krokového motora: 11 krokov (s obrázkami)
Znovu použite touchpad starého prenosného počítača na ovládanie krokového motora: Tento projekt som realizoval pred niekoľkými mesiacmi. Pred niekoľkými dňami som zverejnil video z projektu na r/Arduino na Reddite. Keď som videl, ako sa ľudia o projekt zaujímajú, rozhodol som sa vytvoriť tento návod, v ktorom som vykonal niekoľko zmien v kóde Arduino
Ako ovládať bezkartáčový jednosmerný motor Drone Quadcopter (typ 3 drôty) pomocou regulátora otáčok motora HW30A a Arduino UNO: 5 krokov
Ako ovládať bezkartáčový jednosmerný motor Drone Quadcopter (typ 3 drôty) pomocou regulátora otáčok motora HW30A a Arduino UNO: Popis: Regulátor otáčok motora HW30A je možné použiť s 4-10 NiMH/NiCd alebo 2-3 článkovými LiPo batériami. BEC je funkčný až s 3 článkami LiPo. Môže byť použitý na ovládanie rýchlosti bezkartáčového jednosmerného motora (3 vodiče) s maximálnym napätím až 12 V DC. Špecifické
Autonómne riadenie otáčok motora pomocou systému spätnej väzby z tachometra založeného na infračervenom žiarení: 5 krokov (s obrázkami)
Autonómne riadenie otáčok motora pomocou systému spätnej väzby z tachometra založeného na infračervenom žiarení: Vždy je potrebné automatizovať proces, či už je to jednoduchý/monštruózny. Dostal som nápad urobiť tento projekt z jednoduchej výzvy, s ktorou som sa stretol pri hľadaní metódy na polievanie/zavlažovanie nášho malého kúska zeme. Problém nedostatku súčasného prívodného vedenia
Použite SSH a XMing na zobrazenie programov X z počítača so systémom Linux na počítači so systémom Windows: 6 krokov
Použitie SSH a XMing na zobrazenie programov X z počítača so systémom Linux na počítači so systémom Windows: Ak používate Linux v práci a Windows doma alebo naopak, občas sa budete možno musieť prihlásiť do počítača na inom mieste a spustite programy. Môžete si teda nainštalovať server X a povoliť tunelovanie SSH pomocou svojho klienta SSH a jedného