INHOUDSOPGAWE:
- Stap 1: Kies 'n Sigal -draad
- Stap 2: Brei die draad uit na die Arduino -bord
- Stap 3: Seinanalise
- Stap 4: Kodeer u seinontleding
- Stap 5: Identifiseer 'n filter
- Stap 6: Filter: Deel 1
- Stap 7: Filter: Deel 2
- Stap 8: Filter: Deel 3
- Stap 9: Filter: Deel 4
Video: Gebruik Arduino om die motortoerental per minuut te vertoon: 10 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Hierdie gids gee 'n uiteensetting van hoe ek 'n Arduino UNO R3, 'n 16x2 LCD -skerm met I2C en 'n LED -strook gebruik het om te gebruik as 'n motortoerusting en lig in my Acura Integra -spoorwa. Dit is geskryf in terme van iemand met ervaring of blootstelling aan Arduino -sagteware of kodering in die algemeen, die wiskundige sagteware MATLAB, en die skep of aanpassing van elektriese stroombane. In die toekoms kan dit hersien word om dit makliker te verstaan vir iemand met min of geen ervaring met hierdie onderwerpe.
Stap 1: Kies 'n Sigal -draad
U moet 'n sein kry wat ooreenstem met die enjinsnelheid. Dit is moontlik om 'n stelsel by te voeg wat die motortoerusting meet, maar dit is baie meer prakties om 'n bestaande draad met inligting oor enjinspoed in te skakel. 'N Enkelmotor kan hiervoor verskeie bronne hê, en dit kan selfs van jaar tot jaar baie verskil op 'n enkele voertuigmodel. Ter wille van hierdie tutoriaal gebruik ek die voorbeeld van my motor, 'n baan wat aangepas is 2000 Acura Integra LS. Ek het op my enjin (B18B1 met OBD2) gevind dat daar 'n ongebruikte spanning is wat 12V hoog is en tot 0V daal wanneer 'n volle omwenteling voltooi is.
Dinge wat u kan help om 'n moontlike enjinsnelheidsein te identifiseer:
- Bedradingsdiagram vir u voertuig
- Soek forums vir u voertuig met motor-/ECU -seine
- 'N Vriendelike werktuigkundige of motorliefhebber
Stap 2: Brei die draad uit na die Arduino -bord
Nadat u 'n geskikte sein gekies het, moet u dit uitbrei tot waar u ook al u Arduino -bord plaas. Ek het besluit om myne in die voertuig te plaas waar die radio was, en toe trek ek die nuwe draad van die enjin af, deur 'n rubber deur in die brandmuur en regs na die radio. Aangesien daar reeds 'n groot aantal instruksies is oor die ontdooiing, soldeer en beskerming van bedrading, sal ek hierdie proses nie verduidelik nie.
Stap 3: Seinanalise
Dit is hier waar dinge ingewikkeld kan raak. As u 'n algemene begrip het van seinanalise en -kontroles, sal u 'n lang pad help, maar dit is uitvoerbaar met min kennis.
Die seindraad wat waarskynlik gekies word, sal nie die presiese waarde van die enjinspoed uitspoeg nie. Dit moet gevorm en aangepas word om die presiese aantal motortoerentalle te gee wat u wil hê. Omdat elke motor en seindraad wat gekies is, anders kan wees, sal ek van nou af verduidelik hoe ek die posisiesignaal van die verspreider op my Integra gebruik het.
My sein is normaalweg 12V en daal tot 0V wanneer ek 'n volle rotasie voltooi. As u die tyd ken om 'n volledige rotasie of een volledige siklus te voltooi, kan dit maklik in omwentelinge/min vertaal word met behulp van 'n paar basiese konsepte.
1 / (sekondes per siklus) = siklusse per sekonde, of Hz
Omwentelinge per minuut = Hz * 60
Stap 4: Kodeer u seinontleding
Hierdie metode vereis dat die tyd wat dit nodig het vir die insetsein neem om 'n volledige siklus te voltooi. Gelukkig het die Arduino IDE -sagteware 'n opdrag wat presies dit doen, PulseIn.
Hierdie opdrag wag totdat 'n sein 'n drumpel oorskry, begin tel en stop met tel as die drempel weer oorskry word. Daar is 'n paar besonderhede wat opgemerk moet word by die gebruik van die opdrag, so ek sal 'n skakel na inligting van PulseIn hier insluit:
PulseIn gee 'n waarde in mikrosekondes terug, en om die wiskunde eenvoudig te hou, moet dit onmiddellik in normale sekondes omgeskakel word. Na die wiskunde op die vorige stap, kan hierdie tydsduur direk gelykgestel word aan RPM.
Let wel: na proef en fout het ek ontdek dat die verspreider twee rotasies voltooi vir elke rotasie van die krukas van die enjin, so ek het my antwoord eenvoudig met 2 gedeel om dit te verduidelik.
Stap 5: Identifiseer 'n filter
As u gelukkig is, sal u sein geen 'geraas' (skommelinge) hê nie, en u enjinsnelheid sal presies wees. In my geval kom daar baie geraas van die verspreider, wat dikwels spanning ver gee van wat verwag word. Dit lei tot 'n baie valse lesing van die werklike enjinsnelheid. Hierdie geraas sal gefiltreer moet word.
Na 'n paar seinontledings kom byna al die geraas by frekwensies (Hz) wat baie hoër was as wat die enjin self lewer (wat geld vir die meeste werklike dinamiese stelsels). Dit beteken dat 'n laagpasfilter 'n ideale kandidaat is om hiervoor te sorg.
'N Laagpasfilter laat lae frekwensies (gewenste) deur en verswak die hoë frekwensies (ongewens).
Stap 6: Filter: Deel 1
Die ontwerp van die filter kan met die hand gedoen word, maar die gebruik van MATLAB sal dit aansienlik bespoedig as u toegang tot die sagteware het.
'N Laagdeurlaatfilter kan gelykgestel word aan 'n oordragfunksie (of breuk) in die Laplace -domein (frekwensiedomein). Die invoerfrekwensie word met hierdie breuk vermenigvuldig en die uitset is 'n gefiltreerde sein wat slegs die inligting bevat wat u wil gebruik.
Die enigste veranderlike in die funksie is tau. Tau is gelyk aan 1 / Omega, waar Omega die afsnyfrekwensie is wat u wil hê (moet in radiale per sekonde wees). Die afsnyfrekwensie is die limiet waar frekwensies wat hoër is as dit verwyder sal word en frekwensies laer as wat dit gehou sal word.
Ek stel die afsnyfrekwensie gelyk aan 'n rpm wat my enjin nooit sal bereik nie (990 RPM of 165 Hz). Die FFT -grafieke toon ongeveer watter frekwensies my rou sein gedra het en die frekwensies wat uit die filter gekom het.
Stap 7: Filter: Deel 2
Hier is MATLAB ter wille van tyd weer gebruik. Die afsnyfrekwensie word gedefinieer, en daaruit word die resulterende oordragfunksie vertoon. Hou in gedagte dat hierdie breuk slegs van toepassing is op die Laplace-domein en nie direk op 'n tydgebaseerde mikrobeheerder soos Arduino UNO R3 gebruik kan word nie.
Stap 8: Filter: Deel 3
MATLAB het 'n opdrag wat 'n deurlopende funksie (frekwensiedomein) in 'n diskrete funksie (tyddomein) omskakel. Die opbrengs van hierdie opdrag bied 'n vergelyking wat maklik in die Arduino IDE -kode opgeneem kan word.
Stap 9: Filter: Deel 4
Sluit die veranderlikes u en y voor die opstelling in die Arduino -skets in. Die float -opdrag definieer eenvoudig hoe die veranderlike data sal stoor (dinge soos maksimum waarde, desimale, ens …) en 'n skakel na meer inligting hieroor sal hier verskaf word: https://www.arduino.cc/reference/en/language /varia …
Sluit die u -veranderlike en die y -meervoudige vergelyking in in die lus waar die omskakeling van die rou sein na die motorsnelheid plaasvind. Daar is verskillende maniere om dit te gebruik, maar die veranderlike u moet gelyk gestel word aan die rou insetsein wat gemeet word, en die veranderlike y sal die gefiltreerde waarde wees.
Aanbeveel:
Die Kitronik Inventor's Kit met die Adafruit -leidraad gebruik: 4 stappe (met foto's)
Die Kitronik Inventor's Kit gebruik Met die Adafruit CLUE: Die Kitronik Inventor's Kit vir die BBC micro: bit is 'n goeie inleiding tot mikrobeheerders met elektronika wat 'n broodbord gebruik. Hierdie weergawe van die stel is ontwerp vir gebruik met die goedkoop BBC micro: bit. Die gedetailleerde studieboek wat kom
MicroPython -program: vertoon die grootte van die sirkel: 9 stappe
MicroPython -program: vertoon die grootte van die sirkel: hierdie eksperiment gebruik die MakePython ESP8266 -module, waarmee ons MicroPython -programmering op ESP8266 kan leer. Die eksperiment het die grootte van die sirkel op die skerm beheer deur die potensiometer te draai. In die proses leer ons meer oor ons
Nog 'n instruksie oor die gebruik van die DIYMall RFID-RC522 en Nokia LCD5110 met 'n Arduino: 8 stappe (met foto's)
Nog 'n instruksie vir die gebruik van die DIYMall RFID-RC522 en Nokia LCD5110 met 'n Arduino: Waarom het ek die behoefte gehad om 'n ander instruksies vir die DIYMall RFID-RC522 en die Nokia LCD5110 te skep? Om die waarheid te sê, ek het verlede jaar iewers aan 'n Proof of Concept gewerk met beide hierdie toestelle en op een of ander manier 'misplaas
Tuisautomatisering: maak 'n alarm en vertoon op die LCD as die temperatuur hoër is as die drempelwaarde: 5 stappe
Tuisautomatisering: maak 'n alarm en vertoon op die LCD as die temperatuur hoër is as die drempelwaarde: Hierdie blog sal demonstreer hoe u 'n tuisautomatiseringstelsel kan maak wat 'n alarm sal laat klink wanneer die temperatuur meer as die geprogrammeerde drempelwaarde bereik. Dit sal die huidige temperatuur van die kamer op die LCD weergee en die aksie is nodig
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: 9 stappe (met foto's)
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: die middelste voetsteunhysers moet goed onder die sitplek geberg word en laer om te ontplooi. 'N Meganisme vir die onafhanklike werking van die opberging en ontplooiing van voetsteun is nie ingesluit by rolstoele op die mark nie, en PWC -gebruikers het die behoefte uitgespreek