Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
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
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
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
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
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
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
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
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
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
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:
Kasutage vana sülearvuti puuteplaati samm -mootori juhtimiseks: 11 sammu (piltidega)
Kasutage vana sülearvuti puuteplaati samm -mootori juhtimiseks: tegin selle projekti paar kuud tagasi. Mõni päev tagasi postitasin Redditisse projekti r/Arduino video. Nähes inimesi projekti vastu huvi tundmas, otsustasin selle juhendi muuta, kus olen Arduino koodi muutnud ja
"Üksinda kodus" sissemurdja peletusvahend/ kasutage samm -mootori ja servo juhtimiseks Attiny13: 5 sammu
"Üksinda kodus" sissemurdja peletusvahend/ kasutage samm-mootori ja servo juhtimiseks Attiny13: see võib olla üks mu kummalisemaid projekte :-) peate juhtima samm- või servomootorit või isegi mitut alalisvoolumootorit Attiny13.Mo
Kasutage Cortana ja Arduino abil oma häälega RGB -valgusdioode või LED -ribasid!: 4 sammu (koos piltidega)
Kasutage Cortana ja Arduino abil oma häälega RGB -d või LED -ribasid!: Selles juhendis näitan teile, kuidas saate oma häälega oma RGB -d või LED -riba juhtida. Seda teeb CoRGB rakendus, mis on Windowsi rakenduste poes tasuta saadaval. See rakendus on osa minu CortanaRoomi projektist. Kui olete asjadega valmis
Pöörete arvesti koos STM32 -ga: 8 sammu
Pöörete arvesti koos STM32 -ga: Kuigi ostmine on mõnevõrra ebameeldiv (kuna seda pole paljudes Interneti -poodides saadaval), pean vajalikuks arutleda STM32 L432KC üle. See kiip väärib erilist kiindumust, kuna see on ULTRA LOW POWER. Kuid neile, kes ei oma ST -d
Mootori pöörete arvu autonoomne juhtimine tagasiside süsteemi abil IR -põhise tahhomeetri abil: 5 sammu (piltidega)
Mootori pöörlemiskiiruste autonoomne juhtimine tagasisidesüsteemi abil IR -põhise tahhomeetri abil: alati on vaja automatiseerida protsess, olgu see siis lihtne/koletu. Mul tekkis idee seda projekti teha lihtsast väljakutsest, millega silmitsi seistes leidsin meetodid meie väikese maatüki kastmiseks/niisutamiseks. Praeguse toiteliini puudumise probleem