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

Շարժիչի արագության չափում Arduino- ի միջոցով. 6 քայլ
Շարժիչի արագության չափում Arduino- ի միջոցով. 6 քայլ

Video: Շարժիչի արագության չափում Arduino- ի միջոցով. 6 քայլ

Video: Շարժիչի արագության չափում Arduino- ի միջոցով. 6 քայլ
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Հուլիսի
Anonim
Շարժիչի արագության չափում Arduino- ի միջոցով
Շարժիչի արագության չափում Arduino- ի միջոցով
Շարժիչի արագության չափում Arduino- ի միջոցով
Շարժիչի արագության չափում Arduino- ի միջոցով
Շարժիչի արագության չափում Arduino- ի միջոցով
Շարժիչի արագության չափում Arduino- ի միջոցով

Դժվա՞ր է շարժիչի rpm- ը չափելը ??? Կարծում եմ `ոչ: Ահա մեկ պարզ լուծում.

Միայն մեկ IR սենսոր և ձեր հանդերձանքի Arduino- ն կարող են դա անել:

Այս գրառման մեջ ես կտամ մի պարզ ձեռնարկ, որը բացատրում է, թե ինչպես չափել ցանկացած շարժիչի RPM- ն ՝ օգտագործելով IR սենսոր և Arduino UNO/nano:

Պարագաներ:

1. Arduion uno (Amazon) / Arduion nano (Amazon)

2. IR սենսոր (Amazon)

3. DC շարժիչ ցանկացած (Amazon)

4. LCD 16*2 (Amazon)

Օգտագործված գործիքներ

1. Sոդման երկաթ (Amazon)

2. Wire Stripper (Amazon)

Քայլ 1: Քայլ. 1 Ապահովեք տվիչների և սարքերի աշխատանքային վիճակը

Ի՞նչ է IR սենսորը IR սենսորը էլեկտրոնային սարք է, որը լույս է արձակում `շրջակա միջավայրի ինչ -որ առարկա զգալու համար: IR սենսորը կարող է չափել օբյեկտի ջերմությունը, ինչպես նաև հայտնաբերել շարժումը: Սովորաբար, ինֆրակարմիր սպեկտրում բոլոր օբյեկտները ճառագայթում են ջերմային ճառագայթման ինչ -որ ձև: Այս տեսակի ճառագայթներն անտեսանելի են մեր աչքերի համար, սակայն ինֆրակարմիր տվիչը կարող է հայտնաբերել այդ ճառագայթումները:

Ի՞նչ է DC շարժիչը: Ուղղակի հոսանքի (DC) շարժիչը էլեկտրական մեքենայի տեսակ է, որը էլեկտրական էներգիան փոխակերպում է մեխանիկական էներգիայի: DC շարժիչները էլեկտրական էներգիա են ստանում ուղիղ հոսանքի միջոցով և այդ էներգիան փոխակերպում են մեխանիկական պտույտի:

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

Ի՞նչ է Arduino- ն:

Arduino- ն բաց կոդով էլեկտրոնիկայի հարթակ է, որը հիմնված է հեշտ օգտագործման ապարատային և ծրագրային ապահովման վրա: Arduino- ի տախտակները կարող են կարդալ մուտքերը `լույս սենսորի վրա, մատը կոճակի վրա կամ Twitter հաղորդագրություն, և այն վերածել ելքի` ակտիվացնելով շարժիչը, միացնելով LED- ը, ինչ -որ բան հրապարակելով առցանց: Դուք կարող եք ասել ձեր տախտակին, թե ինչ պետք է անի ՝ մի շարք հրահանգներ ուղարկելով տախտակի վրա գտնվող միկրոկառավարիչին: Դա անելու համար դուք օգտագործում եք Arduino ծրագրավորման լեզուն (հիմնված է լարերի վրա) և Arduino ծրագրային ապահովման վրա (IDE) ՝ հիմնված մշակման վրա:

Ներբեռնեք ARDUINO IDE- ն

Քայլ 2: Ինչպե՞ս է այն աշխատում:

Այսպիսով, ո՞րն է դրա տրամաբանությունը:

Այն շատ նման է կոդավորողին: Սկսնակների համար կոդավորողները դժվար է հասկանալ: Այն, ինչ ձեզ հարկավոր է իմանալ, այն է, որ IR սենսորը առաջացնում է զարկերակ, և մենք պարզում ենք յուրաքանչյուր զարկերակի միջև ընկած ժամանակահատվածը:

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

Եկեք համարենք, որ մենք ունենք պտուտակ, որն ունի երկու շեղբեր: Յուրաքանչյուր հեղափոխական շարժիչի համար սայրը երկու անգամ կհասցնի IR ճառագայթը: Այսպիսով, IR սենսորը երբ երբ որ ընդհատումներ անի, իմպուլսներ կարտադրի:

Այժմ մենք պետք է գրենք մի ծրագիր, որը կարող է չափել IR սենսորի արտադրած թվային իմպուլսները որոշակի ժամանակային ընդմիջումով:

Խնդիրը լուծելու մեկից ավելի եղանակներ կան, բայց մենք պետք է ընտրենք, թե որն է լավագույնը այս ծածկագրերում: Ես չափել եմ ընդհատումների միջև տևողությունը (IR սենսոր) Ես միկրո () գործառույթների միջոցով չափել եմ իմպուլսների տևողությունը միկրո վայրկյանում:

կարող եք օգտագործել այս բանաձևը ՝ RPMRPM = ((1/տևողությունը)*1000*1000*60)/շեղբեր չափելու համար

որտեղ, տևողությունը - իմպուլսների միջև ընկած ժամանակահատվածը:

60 - վայրկյանից րոպե

1000 - միլից վրկ

1000 - միկրո դեպի ջրաղաց

շեղբեր - պտուտակի մեջ թևեր չկան:

LCD էկրան - Arduino- ն թարմացնում է LCD էկրանին հրամանների և տվյալների գրանցամատյանները: Որը ցուցադրում է ASCII նիշերը LCD էկրանին:

Քայլ 3. Programրագրեք ձեր Arduino- ն ՝ օգտագործելով Arduino IDE- ն

#ներառում

LiquidCrystal LCD (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR սենսոր INPUT անստորագիր երկար պրևմիկրո; // unsամանակը անստորագիր երկար տևելու համար. // differenceամային տարբերությունը չստորագրված երկար lcdrefresh պահելու համար; // cամանակ պահելու համար, որպեսզի LCD- ը թարմացնի int rpm- ը; // RPM արժեքը բուլյան ընթացիկ վիճակ; // IR մուտքի սկանավորման ներկա վիճակը boolean prevstate; // IR սենսորի վիճակը նախորդ սկանավորման դատարկության պարամետրում () {pinMode (IR_IN, INPUT); lcd. սկսել (16, 2); prevmicros = 0; prevstate = OWԱOWՐ; } void loop () {////////////////////////////////////////// ///////////////////////////////////// RPM Չափման ընթացիկ վիճակ = digitalRead (IR_IN); // Կարդացեք IR սենսորի վիճակը if (prevstate! = Currentstate) // Եթե մուտքի մեջ փոփոխություն կա {if (currentstate == LOW) // Եթե մուտքը միայն HIGH- ից ցածր է փոխվում {duration = (micros () - prevmicros); // revolutionամանակի տարբերությունը միկրովայրկյան rpm- ում պտույտի միջև = ((60000000/տևողություն)/3); // rpm = (1/ անգամ միլիլ)*1000*1000*60; prevmicros = micros (); // պահեստավորել ժամանակ նեկտի հեղափոխության հաշվարկման համար}} prevstate = currentstate; // պահեք այս սկանավորման (նախորդ սկանավորման) տվյալները հաջորդ սկանավորման համար /////////////////////////////////// ///////////////////////////////////////////////// LCD Display if ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print («Շարժիչի արագություն»); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (rpm); lcdrefresh = millis (); }}

Քայլ 4: Proteus- ի օգտագործմամբ մոդելավորում

Պրոտեուսի օգտագործմամբ մոդելավորում
Պրոտեուսի օգտագործմամբ մոդելավորում

Այս նախագիծը հիանալի աշխատեց, երբ ես փորձեցի նմանակել այն proteus- ի օգնությամբ:

IR սենսոր օգտագործելու փոխարեն ես օգտագործեցի DC զարկերակային գեներատոր, որը նմանակելու է IR զարկերակին նմանվող գեներատորին, երբ IR ճառագայթները հարվածում են պտուտակների շեղբերին:

դուք պետք է փոփոխություններ կատարեք ձեր ծրագրում ՝ կախված ձեր օգտագործած սենսորից

LM358- ով IR սենսորը պետք է օգտագործի այս հրամանը:

if (currentstate == HIGH) // Եթե մուտքագրումը փոխվում է միայն LOW- ից HIGH- ի

LM359- ով IR սենսորը պետք է օգտագործի այս հրամանը:

if (currentstate == LOW) // Եթե մուտքագրումը փոխվում է միայն HIGH- ից LOW- ի

Քայլ 5: Սարքաշարի կատարում

Սարքաշարի կատարում
Սարքաշարի կատարում
Սարքաշարի կատարում
Սարքաշարի կատարում
Սարքաշարի կատարում
Սարքաշարի կատարում

Սխեմատիկ կերպով օգտագործեք մոդելավորման նկարները կամ հղեք ծրագրի ծածկագրերը և համապատասխանաբար կատարեք կապերը: Վերբեռնեք ծրագրի կոդը Arduino- ում և չափեք ցանկացած շարժիչի RPM- ը: Հետևեք իմ հաջորդ գրառմանը և դիտեք իմ YouTube ալիքը:

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