Բովանդակություն:

Շարժիչի RPM- ի ցուցադրման համար օգտագործեք Arduino- ն ՝ 10 քայլ (նկարներով)
Շարժիչի RPM- ի ցուցադրման համար օգտագործեք Arduino- ն ՝ 10 քայլ (նկարներով)

Video: Շարժիչի RPM- ի ցուցադրման համար օգտագործեք Arduino- ն ՝ 10 քայլ (նկարներով)

Video: Շարժիչի RPM- ի ցուցադրման համար օգտագործեք Arduino- ն ՝ 10 քայլ (նկարներով)
Video: Լվացքի մեքենայի շարժիչի միացումներ ձեր հեշտ նախագծերի համար 2024, Նոյեմբեր
Anonim
Շարժիչի RPM- ի ցուցադրման համար օգտագործեք Arduino- ն
Շարժիչի RPM- ի ցուցադրման համար օգտագործեք Arduino- ն
Շարժիչի RPM- ի ցուցադրման համար օգտագործեք Arduino- ն
Շարժիչի RPM- ի ցուցադրման համար օգտագործեք Arduino- ն
Շարժիչի RPM- ի ցուցադրման համար օգտագործեք Arduino- ն
Շարժիչի RPM- ի ցուցադրման համար օգտագործեք Arduino- ն

Այս ուղեցույցը կներկայացնի, թե ինչպես եմ ես օգտագործել Arduino UNO R3, 16x2 LCD էկրան I2C- ով և LED ժապավեն, որը կօգտագործվի որպես շարժիչի արագության չափիչ և լույսը փոխելու իմ Acura Integra ուղու մեքենայում: Այն գրված է ինչ -որ մեկի հետ, ով որոշակի փորձ ունի կամ ենթարկվում է Arduino ծրագրային ապահովման կամ ընդհանրապես կոդավորման, MATLAB մաթեմատիկական ծրագրակազմի, և ստեղծում կամ փոփոխում է էլեկտրական սխեմաները: Ապագայում սա կարող է վերանայվել, որպեսզի ավելի հեշտ հասկանալի լինի այս թեմաներով քիչ կամ ընդհանրապես փորձ չունեցող անձի համար:

Քայլ 1: Ընտրեք Sigal Wire

Ընտրեք Sigal Wire
Ընտրեք Sigal Wire

Դուք պետք է ազդանշան ստանաք, որը կապ ունի շարժիչի արագության հետ: Հնարավոր է ավելացնել համակարգ, որը չափում է շարժիչի արագությունը, բայց շատ ավելի գործնական է դիպչել գոյություն ունեցող մետաղալարին, որը կրում է շարժիչի արագության մասին տեղեկատվություն: Մեկ մեքենան կարող է ունենալ բազմաթիվ աղբյուրներ դրա համար, և այն կարող է ծայրահեղորեն տարբերվել նույնիսկ տարեցտարի մեկ մեքենայի մոդելի վրա: Հանուն այս ձեռնարկի, ես կօգտագործեմ իմ մեքենայի օրինակը ՝ 2000 Acura Integra LS- ով փոփոխված ուղի: Ես գտա իմ շարժիչի վրա (B18B1 OBD2- ով) կա չօգտագործված լարում, որը 12 Վ բարձր է և լիարժեք պտույտ կատարելուց իջնում է 0 Վ -ի:

Գործոններ, որոնք կօգնեն բացահայտել շարժիչի արագության պոտենցիալ ազդանշանը.

  • Ձեր մեքենայի միացման սխեմա
  • Շարժիչի/ECU ազդանշանների ներառմամբ ձեր մեքենայի ֆորումների որոնում
  • Ընկերասեր մեխանիկ կամ մեքենայի սիրահար

Քայլ 2. Երկարացրեք լարերը Arduino տախտակին

Երկարացրեք լարերը Arduino- ի տախտակին
Երկարացրեք լարերը Arduino- ի տախտակին
Երկարացրեք լարերը Arduino- ի տախտակին
Երկարացրեք լարերը Arduino- ի տախտակին

Երբ ընտրեք համապատասխան ազդանշանը, այն պետք է տարածեք այնտեղ, որտեղ և որ տեղադրեք ձեր Arduino տախտակը: Ես որոշեցի իմը տեղադրել մեքենայի ներսում, որտեղ նախկինում ռադիոընդունիչն էր, ուստի շարժիչից նոր լարերը հանեցի կրակի պատի ռետինե պատնեշի միջով և անմիջապես ռադիոյի տարածք: Քանի որ արդեն կան առատ քանակությամբ ուղեցույցներ `մերկացման, զոդման և պաշտպանման վերաբերյալ, ես չեմ բացատրի այս գործընթացը:

Քայլ 3. Ազդանշանի վերլուծություն

Ազդանշանի վերլուծություն
Ազդանշանի վերլուծություն

Այստեղ է, որ ամեն ինչ կարող է բարդանալ: Ազդանշանի վերլուծության և վերահսկման ընդհանուր պատկերացում ունենալը կօգնի ձեզ երկար ճանապարհով, բայց դա հնարավոր է անել քիչ գիտելիքներով:

Ամենայն հավանականությամբ ընտրված ազդանշանային լարը չի թքի շարժիչի արագության ճշգրիտ արժեքը: Այն պետք է ձևավորվի և ձևափոխվի ՝ տալով ձեր ուզած շարժիչի RPM- ի ճշգրիտ թիվը: Շնորհիվ այն բանի, որ յուրաքանչյուր տարբեր մեքենա և ազդանշանային լար կարող է տարբեր լինել, այս պահից սկսած ես կբացատրեմ, թե ինչպես եմ օգտագործել Integra- ում դիստրիբյուտորի դիրքորոշման ազդանշանը:

Իմ ազդանշանը սովորաբար 12 Վ է և մեկ ամբողջական պտույտ կատարելիս նվազում է մինչև 0 Վ: Եթե դուք գիտեք մեկ ամբողջական պտույտ կամ մեկ ամբողջական ցիկլ ավարտելու ժամանակը, դա հեշտությամբ կարող է թարգմանվել հեղափոխությունների/րոպեում `օգտագործելով որոշ հիմնական հասկացություններ:

1 / (վայրկյան մեկ ցիկլի համար) = ցիկլեր մեկ վայրկյանում, կամ Հց

Հեղափոխություններ րոպեում = Հց * 60

Քայլ 4: Կոդավորեք ձեր ազդանշանի վերլուծությունը

Կոդավորեք ձեր ազդանշանի վերլուծությունը
Կոդավորեք ձեր ազդանշանի վերլուծությունը

Այս մեթոդը պահանջում է ստանալ այն ժամանակը, որն անհրաժեշտ է մուտքային ազդանշանի մեկ ամբողջական ցիկլն ավարտելու համար: Բարեբախտաբար, Arduino IDE ծրագրաշարը ունի այնպիսի հրաման, որը կատարում է հենց դա ՝ PulseIn:

Այս հրամանը կսպասի ազդանշանի ՝ շեմը հատելու համար, կսկսի հաշվել և կդադարի հաշվելը, երբ շեմը նորից հատվի: Կան որոշ մանրամասներ, որոնք պետք է նշել հրամանը օգտագործելիս, այնպես որ ես այստեղ կներկայացնեմ PulseIn- ի տեղեկատվության հղումը ՝

PulseIn- ը միկրո վայրկյանում արժեք կվերադարձնի, և մաթեմատիկան պարզ պահելու համար այն պետք է անմիջապես փոխարկվի նորմալ վայրկյանների: Նախորդ քայլի մաթեմատիկայից հետո ժամանակի այս տևողությունը կարող է ուղղակիորեն հավասարվել RPM- ի:

Նշում. Փորձարկումներից և սխալներից հետո ես պարզեցի, որ դիստրիբյուտորը կատարում է երկու պտույտ շարժիչի պտուտակի յուրաքանչյուր պտույտի համար, ուստի ես պարզապես պատասխանը բաժանեցի 2 -ի `դրա համար հաշվի առնելով:

Քայլ 5: Բացահայտեք զտիչ

Բացահայտեք զտիչ
Բացահայտեք զտիչ

Եթե հաջողակ եք, ձեր ազդանշանը չի ունենա «աղմուկ» (տատանումներ), և ձեր շարժիչի արագությունը ճշգրիտ կլինի: Իմ դեպքում, շատ աղմուկ էր գալիս դիստրիբյուտորից, որը հաճախ լարվածություն էր հաղորդում սպասվածից: Սա վերածվում է շարժիչի իրական արագության շատ կեղծ ընթերցումների: Այս աղմուկը պետք է զտվի:

Ազդանշանի որոշ վերլուծություններից հետո գրեթե ամբողջ աղմուկը հաճախականությամբ (Հց) շատ ավելի բարձր էր, քան շարժիչը ինքն էր թողարկում (ինչը ճշմարիտ է իրական դինամիկ համակարգերի մեծ մասի համար): Սա նշանակում է, որ ցածր անցման ֆիլտրը իդեալական թեկնածու է `այս մասին հոգալու համար:

Ածր անցման ֆիլտրը թույլ է տալիս ցածր հաճախականությունները (ցանկալի) անցնել և թուլացնում է բարձր հաճախականությունները (անցանկալի):

Քայլ 6: Ֆիլտրացում. Մաս 1

Filտում. Մաս 1
Filտում. Մաս 1
Filտում. Մաս 1
Filտում. Մաս 1
Filտում. Մաս 1
Filտում. Մաս 1

Ֆիլտրի նախագծումը կարող է կատարվել ձեռքով, սակայն MATLAB- ի օգտագործումը դա զգալիորեն կարագացնի, եթե ծրագրային ապահովում մուտք ունենաք:

Lowածր անցուղի ֆիլտրը կարող է հավասարվել Լապլասի տիրույթի փոխանցման գործառույթին (կամ կոտորակին) (հաճախականության տիրույթ): Մուտքային հաճախականությունը կբազմապատկվի այս կոտորակով, իսկ ելքը զտված ազդանշան է, որը պարունակում է միայն այն տեղեկությունները, որոնք ցանկանում եք օգտագործել:

Ֆունկցիայի միակ փոփոխականը tau- ն է: Tau- ն հավասար է 1 / Omega- ի, որտեղ Omega- ն ձեր ուզած կտրման հաճախականությունն է (պետք է լինի ռադիոներ վայրկյանում): Անջատման հաճախականությունն այն սահմանն է, որտեղ դրանից բարձր հաճախականությունները կհեռացվեն և դրանից ցածր հաճախականությունները կպահպանվեն:

Ես սահմանում եմ անջատման հաճախականությունը հավասար RPM- ի, որը իմ շարժիչը երբեք չի հասնի (990 RPM կամ 165 Հց): FFT գծապատկերները ցույց են տալիս մոտավորապես, թե ինչ հաճախականություններ էին կրում իմ չմշակված ազդանշանը և այն հաճախականությունները, որոնք դուրս էին գալիս ֆիլտրից:

Քայլ 7: Ֆիլտրացում. Մաս 2

Terտում. Մաս 2
Terտում. Մաս 2
Filտում. Մաս 2
Filտում. Մաս 2

Այստեղ MATLAB- ը կրկին օգտագործվեց հանուն ժամանակի: Անջատման հաճախականությունը սահմանվում է, և դրանից ցուցադրվում է ստացված փոխանցման գործառույթը: Հիշեք, որ այս մասնաբաժինը վերաբերում է միայն Լապլասի տիրույթին և չի կարող ուղղակիորեն օգտագործվել ժամանակի վրա հիմնված միկրոհսկիչի վրա, ինչպիսին է Arduino UNO R3- ը:

Քայլ 8: Ֆիլտրացում. Մաս 3

Terտում ՝ մաս 3
Terտում ՝ մաս 3
Terտում ՝ մաս 3
Terտում ՝ մաս 3

MATLAB- ն ունի հրաման, որը շարունակական գործառույթը (հաճախականությունների տիրույթը) կվերածի դիսկրետ ֆունկցիայի (ժամանակի տիրույթ): Այս հրամանի ելքը կապահովի հավասարություն, որը հեշտությամբ կարելի է ներառել Arduino IDE կոդի մեջ:

Քայլ 9. Ֆիլտրացում. Մաս 4

Filտում. Մաս 4
Filտում. Մաս 4
Filտում. Մաս 4
Filտում. Մաս 4

Arduino- ի ուրվագծում ներառեք u և y փոփոխականները նախքան կարգավորումը: Float հրամանը պարզապես սահմանում է, թե ինչպես է փոփոխականը պահելու տվյալները (այնպիսի բաներ, ինչպիսիք են առավելագույն արժեքը, տասնորդականները և այլն …), և դրա մասին լրացուցիչ տեղեկությունների հղումը կտրվի այստեղ ՝ https://www.arduino.cc/reference/en/language /տարբերակ…

Այն օղակում, որտեղ հում ազդանշանից շարժիչի արագության վերածումը տեղի է ունենում, ներառեք u փոփոխականը և y բազմակի հավասարումը: Դրա օգտագործման բազմաթիվ եղանակներ կան, բայց u փոփոխականը պետք է հավասար լինի չափվող չմշակված մուտքային ազդանշանին, իսկ y փոփոխականը կլինի ֆիլտրացված արժեքը:

Խորհուրդ ենք տալիս: