Sisukord:

Kasutage Arduino mootori pöörete arvu kuvamiseks: 10 sammu (koos piltidega)
Kasutage Arduino mootori pöörete arvu kuvamiseks: 10 sammu (koos piltidega)

Video: Kasutage Arduino mootori pöörete arvu kuvamiseks: 10 sammu (koos piltidega)

Video: Kasutage Arduino mootori pöörete arvu kuvamiseks: 10 sammu (koos piltidega)
Video: 30 ülimat Windows 10 näpunäidet aastaks 2020 2024, Juuli
Anonim
Kasutage mootori pöörete arvu kuvamiseks Arduino
Kasutage mootori pöörete arvu kuvamiseks Arduino
Kasutage mootori pöörete arvu kuvamiseks Arduino
Kasutage mootori pöörete arvu kuvamiseks Arduino
Kasutage mootori pöörete arvu kuvamiseks Arduino
Kasutage mootori pöörete arvu kuvamiseks Arduino

Selles juhendis kirjeldatakse, kuidas ma kasutasin oma Acura Integra rööbasteeautos Arduino UNO R3, 16x2 LCD -ekraani koos I2C -ga ja LED -riba, mida kasutada mootori pöörlemissageduse ja käiguvalgustina. See on kirjutatud inimesena, kellel on teatud kogemus või kokkupuude Arduino tarkvaraga või kodeerimisega üldiselt, matemaatilise tarkvaraga MATLAB ning elektriskeemide loomise või muutmisega. Tulevikus võidakse seda muuta, et seda oleks lihtsam mõista inimestel, kellel on nende teemadega vähe kogemusi.

Samm: valige Sigal Wire

Valige Sigal Wire
Valige Sigal Wire

Peate saama signaali, mis vastab mootori pöörlemiskiirusele. Võimalik on lisada süsteem, mis mõõdab mootori pöörlemiskiirust, kuid palju praktilisem on kasutada olemasolevat traati, mis kannab teavet mootori pöörlemiskiiruse kohta. Ühel autol võib selleks olla mitu allikat ja see võib ühe sõiduki mudeli puhul isegi aasta-aastalt erineda. Selle õpetuse huvides kasutan ma oma auto näidet - 2000 Acura Integra LS muudetud rada. Leidsin oma mootorilt (B18B1 koos OBD2 -ga) kasutamata pinge, mis on 12 V kõrge ja langeb 0 V -ni pärast täielikku pööret.

Asjad, mis aitavad tuvastada mootori võimaliku pöörlemissageduse signaali:

  • Teie sõiduki ühendusskeem
  • Teie sõiduki foorumite otsimine, mis hõlmab mootori/ECU signaale
  • Sõbralik mehaanik või autohuviline

Samm: laiendage traat Arduino plaadile

Laiendage traati Arduino plaadile
Laiendage traati Arduino plaadile
Laiendage traati Arduino plaadile
Laiendage traati Arduino plaadile

Kui olete sobiva signaali valinud, peate selle laiendama kõikjale, kuhu oma Arduino tahvli asetate. Otsustasin paigutada oma sõiduki sisse, kus varem oli raadio, nii et juhtisin uue juhtme mootorist läbi tuletõkkeseina kummist tihendi ja otse raadioalasse. Kuna juhtmete eemaldamise, jootmise ja kaitsmise kohta on juba palju juhiseid, ei selgita ma seda protsessi.

3. samm: signaalianalüüs

Signaali analüüs
Signaali analüüs

Siin võivad asjad keeruliseks minna. Signaalianalüüsi ja juhtelementide üldine mõistmine aitab teid kaugele, kuid on väheste teadmistega teostatav.

Tõenäoliselt valitud signaaltraat ei sülita välja mootori pöörlemiskiiruse täpset väärtust. See tuleb vormida ja muuta nii, et see annaks täpselt soovitud mootori pöörete arvu. Kuna iga valitud auto ja signaaltraat võivad olla erinevad, selgitan sellest hetkest alates, kuidas ma kasutasin oma Integra turustaja positsioonisignaali.

Minu signaal on tavaliselt 12 V ja langeb ühe täispöörde lõpetamisel 0 V -ni. Kui teate ühe täispöörde või ühe täistsükli lõpuleviimiseks kuluvat aega, saab selle mõningate põhimõistete abil hõlpsasti tõlkida pööreteks minutis.

1 / (sekundit tsükli kohta) = tsüklit sekundis või Hz

Pöörded minutis = Hz * 60

Samm: kodeerige oma signaalianalüüs

Kodeerige oma signaalianalüüs
Kodeerige oma signaalianalüüs

See meetod nõuab sisendsignaali ühe täistsükli läbimiseks kuluva aja hankimist. Õnneks on Arduino IDE tarkvaral käsk PulseIn, mis seda täpselt teeb.

See käsk ootab signaali läve ületamist, hakkab loendama ja lõpetab loendamise, kui künnis uuesti ületatakse. Käsu kasutamisel tuleb mõned üksikasjad märkida, seega lisan siia lingi PulseIni teabele:

PulseIn tagastab väärtuse mikrosekundites ja matemaatika lihtsuse huvides tuleks see kohe teisendada tavalisteks sekunditeks. Pärast eelmise sammu matemaatikat saab selle ajavahemiku võrdsustada otse RPM -iga.

Märkus: pärast katse -eksituse meetodit avastasin, et turustaja teeb mootori väntvõlli iga pöörlemise kohta kaks pööret, nii et jagasin selle vastuseks lihtsalt oma vastuse kahega.

Samm: leidke filter

Tuvastage filter
Tuvastage filter

Kui teil veab, ei ole teie signaalil müra (kõikumisi) ja teie mootori pöörlemiskiirus on täpne. Minu puhul oli turustajast palju müra, mis andis sageli pingeid oodatust kaugel. See muutub mootori tegeliku pöörlemiskiiruse väga valeks. See müra tuleb välja filtreerida.

Pärast mõningast signaalianalüüsi tuli peaaegu kogu müra sagedustel (Hz), mis olid palju kõrgemad kui mootor ise väljastas (mis kehtib enamiku tõeliste dünaamiliste süsteemide kohta). See tähendab, et madalpääsfilter on ideaalne kandidaat selle eest hoolitsemiseks.

Madalpääsfilter võimaldab madalatel sagedustel (soovitud) läbida ja summutab kõrgeid sagedusi (soovimatu).

6. etapp: filtreerimine: 1. osa

Filtreerimine: 1. osa
Filtreerimine: 1. osa
Filtreerimine: 1. osa
Filtreerimine: 1. osa
Filtreerimine: 1. osa
Filtreerimine: 1. osa

Filtri saab projekteerida käsitsi, kuid MATLABi kasutamine kiirendab seda märkimisväärselt, kui teil on tarkvarale juurdepääs.

Madalpääsfiltrit võib võrdsustada ülekandefunktsiooniga (või murdosaga) Laplace'i domeenis (sagedusdomeen). Sisendsagedus korrutatakse selle murdosaga ja väljund on filtreeritud signaal, millel on ainult teave, mida soovite kasutada.

Funktsiooni ainus muutuja on tau. Tau võrdub 1 / Omega, kus Omega on soovitud piirsagedus (peab olema radiaanides sekundis). Lõikesagedus on piir, kus sellest kõrgemad sagedused eemaldatakse ja sellest madalamad sagedused hoitakse.

Seadsin piirsageduse võrdseks pööretega, mida minu mootor kunagi ei saavuta (990 p / min või 165 Hz). FFT graafikud näitavad ligikaudselt, milliseid sagedusi minu toorsignaal kandis ja filtrist väljunud sagedusi.

7. etapp: filtreerimine: 2. osa

Filtreerimine: 2. osa
Filtreerimine: 2. osa
Filtreerimine: 2. osa
Filtreerimine: 2. osa

Siin kasutati aja huvides uuesti MATLAB -i. Lõikesagedus on määratletud ja sellest tulenevalt kuvatakse saadud ülekandefunktsioon. Pidage meeles, et see murdosa kehtib ainult Laplace'i domeeni kohta ja seda ei saa otseselt kasutada ajapõhisel mikrokontrolleril, näiteks Arduino UNO R3.

8. etapp: filtreerimine: 3. osa

Filtreerimine: 3. osa
Filtreerimine: 3. osa
Filtreerimine: 3. osa
Filtreerimine: 3. osa

MATLAB -il on käsk, mis muudab pideva funktsiooni (sageduspiirkonna) diskreetseks funktsiooniks (ajadomeen). Selle käsu väljund annab võrrandi, mida saab hõlpsasti Arduino IDE -koodi lisada.

9. etapp: filtreerimine: 4. osa

Filtreerimine: 4. osa
Filtreerimine: 4. osa
Filtreerimine: 4. osa
Filtreerimine: 4. osa

Arduino visandisse lisage enne seadistamist muutujad u ja y. Käsk float määrab lihtsalt kindlaks, kuidas muutuja andmeid salvestab (näiteks maksimumväärtus, kümnendkohad jne), ja siin on link selle kohta lisateabe saamiseks: https://www.arduino.cc/reference/en/language /varia…

Ahelasse, kus toimub toorsignaali muundamine mootori pöörlemiskiiruseks, lisage muutuja u ja y -kordne võrrand. Selle rakendamiseks on mitmeid viise, kuid muutuja u tuleks seada võrdseks mõõdetava toorsisendisignaaliga ja muutuja y on filtreeritud väärtus.

Soovitan: