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

Օգտագործեք 1 անալոգային մուտքագրում Arduino- ի համար 6 կոճակի համար. 6 քայլ
Օգտագործեք 1 անալոգային մուտքագրում Arduino- ի համար 6 կոճակի համար. 6 քայլ

Video: Օգտագործեք 1 անալոգային մուտքագրում Arduino- ի համար 6 կոճակի համար. 6 քայլ

Video: Օգտագործեք 1 անալոգային մուտքագրում Arduino- ի համար 6 կոճակի համար. 6 քայլ
Video: Learn Arduino in 30 Minutes: Examples and projects 2024, Հուլիսի
Anonim
Arduino- ի համար օգտագործեք 1 անալոգային մուտք 6 կոճակների համար
Arduino- ի համար օգտագործեք 1 անալոգային մուտք 6 կոճակների համար

Ես հաճախ եմ մտածել, թե ինչպես կարող եմ ավելի շատ թվային մուտքագրումներ ստանալ իմ Arduino- ի համար: Վերջերս մտքովս անցավ, որ ես պետք է կարողանամ օգտագործել անալոգային մուտքերից մեկը `բազմաթիվ թվային մուտքեր բերելու համար: Ես արագ որոնում կատարեցի և գտա, թե որտեղ մարդիկ կարող էին դա անել, բայց որ դրանք թույլ էին տալիս միաժամանակ մեկ կոճակ սեղմել: Ես ուզում եմ, որ կարողանամ ունենալ կոճակների ցանկացած համադրություն, որոնք պետք է միաժամանակ սեղմվեն: Այսպիսով, TINKERCAD CIRCUITS- ի օգնությամբ ես մտադրվեցի դա իրագործել:

Ինչու՞ կցանկանայի միաժամանակ սեղմել կոճակները: Ինչպես պատկերված է TinkerCad սխեմաների նախագծում, այն կարող է օգտագործվել DIP անջատիչի մուտքերի համար `ծրագրի շրջանակներում տարբեր ռեժիմների ընտրության համար:

Շղթան, որը ես գտա, օգտագործում է Arduino- ից հասանելի 5V աղբյուրը և օգտագործում է 7 դիմադրություն և 6 կոճակ կամ անջատիչ:

Քայլ 1: Շղթան

The Circuit
The Circuit

Arduino- ն ունի անալոգային մուտքեր, որոնք ընդունում են 0V- ից մինչև 5V մուտք: Այս մուտքն ունի 10 բիթ թույլատրելիություն, ինչը նշանակում է, որ ազդանշանը բաժանված է 2^10 հատվածի կամ 1024 համարի: Ելնելով դրանից ՝ առավելագույնը, որ մենք երբևէ կարող էինք մուտքագրել անալոգային մուտքագրման ժամանակ ՝ միաժամանակյա սեղմումներ թույլ տալով, կլինի 10 կոճակ 1 անալոգային մուտքի համար: Բայց սա կատարյալ աշխարհ չէ: Կա հաղորդիչների դիմադրություն, արտաքին աղբյուրներից աղմուկ և անկատար ուժ: Այսպիսով, ինձ շատ ճկունություն հաղորդելու համար ես պլանավորեցի նախագծել սա 6 կոճակների համար: Սա մասամբ ազդեց այն փաստի վրա, որ TinkerCAD սխեմաներն ունեին 6-անջատիչ DIP անջատիչ օբյեկտ, ինչը հեշտ կդարձներ փորձարկումները:

Իմ նախագծման առաջին քայլն այն էր, որ համոզվեի, որ յուրաքանչյուր կոճակ, առանձին սեղմելիս, կապահովի յուրահատուկ լարում: Սա բացառեց, որ բոլոր դիմադրողները նույն արժեքը լինեն: Հաջորդ քայլն այն էր, որ դիմադրության արժեքները, զուգահեռաբար ավելացված, չեն կարող ունենալ նույն դիմադրությունը, ինչ որ մի դիմադրության մեկ արժեք: Երբ ռեզիստորները զուգահեռաբար միացված են, արդյունքում ստացված դիմադրությունը կարող է հաշվարկվել Rx = 1/[(1/R1)+(1/R2)] -ով: Այսպիսով, եթե R1 = 2000 և R2 = 1000, Rx = 667: Ես ենթադրեցի, որ կրկնապատկելով յուրաքանչյուր դիմադրության չափը, ես չեմ տեսնի նույն դիմադրությունը որևէ կոմբինացիայի համար:

Այսպիսով, իմ միացումն այս կետում պետք է ունենար 6 անջատիչ, որոնցից յուրաքանչյուրն ուներ իր դիմադրությունը: Բայց, այս շրջանը ավարտելու համար պահանջվում է ևս մեկ դիմադրություն:

Վերջին ռեզիստորը ունի 3 նպատակ. Նախ, այն հանդես է գալիս որպես Pull-Down resistor: Առանց դիմադրության, երբ ոչ մի կոճակ չի սեղմվում, շղթան թերի է: Սա թույլ կտա Arduino- ի անալոգային մուտքի լարումը լողալ ցանկացած լարման պոտենցիալ: Քաշած-իջնող դիմադրողն էապես ձգում է լարումը մինչև 0 Վ: Երկրորդ նպատակը այս շղթայի հոսանքի սահմանափակումն է: Օմի օրենքն ասում է, որ V = IR, կամ Լարման = հոսանքը բազմապատկված է դիմադրությամբ: Տրված լարման աղբյուրի դեպքում, ինչքան մեծ է դիմադրությունը, նշանակում է, որ հոսանքը ավելի փոքր կլինի: Այսպիսով, եթե 5 Վ ազդանշան կիրառվեր 500 օհմ ռեզիստորի վրա, ամենամեծ հոսանքը, որը մենք կարող էինք տեսնել, կլիներ 0.01 Ա, կամ 10 մԱ: Երրորդ նպատակը ազդանշանի լարման ապահովումն է: Վերջին դիմադրության միջով հոսող ընդհանուր հոսանքը կլինի ՝ i = 5V/Rtotal, որտեղ Rtotal = Rlast+{1/[(1/R1)+(1/R2)+(1/R3)+(1/R4)+ (1/R5)+(1/R6)]}: Այնուամենայնիվ, ներառեք միայն 1/Rx յուրաքանչյուր դիմադրության համար, որի սեղմած է համապատասխան կոճակը: Ընդհանուր հոսանքից Անալոգային մուտքին մատակարարվող Լարման կլինի i*Rlast, կամ i*500:

Քայլ 2. Ապացույց - Excel

Ապացույց - Excel
Ապացույց - Excel

Այս սխեմայի շնորհիվ ես կստանամ յուրահատուկ դիմադրություններ և դրանով իսկ յուրահատուկ լարումներ ապացուցելու ամենաարագ և ամենահեշտ ձևը `օգտագործել Excel- ի հնարավորությունները:

Ես ստեղծեցի անջատիչի մուտքերի բոլոր հնարավոր համակցությունները և կազմակերպեցի այս հաջորդականորեն հաջորդող երկուական օրինաչափությունները: «1» արժեքը ցույց է տալիս, որ անջատիչը միացված է, դատարկը ցույց է տալիս, որ այն անջատված է: Աղյուսակի վերևում ես տեղադրում եմ յուրաքանչյուր անջատիչի և քաշվող դիմադրության դիմադրության արժեքները: Այնուհետև ես հաշվարկեցի համարժեք դիմադրությունը յուրաքանչյուր կոմբինացիայի համար, բացառությամբ այն դեպքերի, երբ բոլոր ռեզիստորներն անջատված են, քանի որ այդ դիմադրողները ազդեցություն չեն ունենա առանց այն մատակարարող էներգիայի աղբյուրի: Որպեսզի իմ հաշվարկները դյուրին դարձնեն, որպեսզի կարողանամ պատճենել և կպցնել յուրաքանչյուր համադրության, ես բոլոր համակցությունները ներառեցի հաշվարկի մեջ ՝ յուրաքանչյուր անջատիչի արժեքը (0 կամ 1) բազմապատկելով դրա հակադարձ դիմադրության արժեքով: Այդպես վարվելով, նրա դիմադրությունը հանեց հաշվարկից, եթե անջատիչն անջատված էր: Ստացված հավասարումը կարելի է տեսնել աղյուսակի պատկերում, բայց Req = Rx + 1/(Sw1/R1 + Sw2/R2 + Sw3/R3 + Sw4/R4 + Sw5/R5 + Sw6/R6): Օգտագործելով Itotal = 5V / Req, մենք որոշում ենք շրջանագծի ընդհանուր հոսանքը: Սա նույն հոսանքն է, որն անցնում է ներքև քաշվող ռեզիստորի միջով և ապահովում է մեր անալոգային մուտքի լարումը: Սա հաշվարկվում է որպես Vin = Itotal x Rx: Ուսումնասիրելով ինչպես Req տվյալները, այնպես էլ Vin տվյալները, մենք կարող ենք տեսնել, որ մենք իսկապես ունենք եզակի արժեքներ:

Այս պահին, թվում է, որ մեր շրջանը կաշխատի: Այժմ պարզելու համար, թե ինչպես ծրագրավորել Arduino- ն:

Քայլ 3. Arduino ծրագրավորում

Arduino ծրագրավորում
Arduino ծրագրավորում
Arduino ծրագրավորում
Arduino ծրագրավորում
Arduino ծրագրավորում
Arduino ծրագրավորում

Երբ ես սկսեցի մտածել, թե ինչպես ծրագրավորել Arduino- ն, ես ի սկզբանե պլանավորում էի անհատական լարման տիրույթներ սահմանել `անջատիչը միացված կամ անջատված լինելու որոշման համար: Բայց, երբ մի գիշեր պառկած էի անկողնում, մտքովս անցավ, որ պետք է կարողանամ հավասարություն գտնել դա անելու համար: Ինչպե՞ս: ԲԱՐՁՐ Excel- ը հնարավորություն ունի հաշվարկել հավասարումները `գծապատկերում տվյալները լավագույնս տեղավորելու համար: Դա անելու համար ես կցանկանայի անջատիչների Ամբողջական արժեքի (երկուական) հավասարում ընդդեմ այդ արժեքին համապատասխանող լարման մուտքի: Իմ Excel- ի աշխատանքային գրքույկում ես ամբողջ արժեքն եմ դնում աղյուսակի ձախ կողմում: Հիմա իմ հավասարումը որոշելու համար:

Ահա արագ ձեռնարկ, թե ինչպես կարելի է որոշել Excel- ում տողի հավասարումը:

1) Ընտրեք բջիջ, որը չի պարունակում որևէ տվյալ: Եթե ունեք ընտրված բջիջ, որն ունի տվյալներ, Excel- ը կփորձի կռահել, թե ինչն եք ցանկանում թրենդավորել: Սա շատ ավելի է դժվարացնում միտում ստեղծելը, քանի որ Excel- ը հազվադեպ է ճիշտ կանխատեսում:

2) Ընտրեք «Տեղադրեք» ներդիրը և ընտրեք «atրվել» գծապատկեր:

3) Աջ սեղմեք գծապատկերի վանդակում և կտտացրեք «Ընտրել տվյալները…»: Սա կբացվի «Ընտրել տվյալների աղբյուր» պատուհանը: Տվյալների ընտրությունը շարունակելու համար ընտրեք Ավելացնել կոճակը:

4) Տվեք նրան սերիայի անուն (ըստ ցանկության): Ընտրեք միջակայքը X- առանցքի համար ՝ կտտացնելով վերևի սլաքին և այնուհետև ընտրել Լարման տվյալները: Ընտրեք Y-Axis- ի միջակայքը `կտտացնելով վերևի սլաքին և այնուհետև ընտրելով ամբողջական տվյալները (0-63):

5) Աջ սեղմեք տվյալների կետերի վրա և ընտրեք «Ավելացնել միտումների գիծ …» «Ձևաչափեք միտումների գիծ» պատուհանում ընտրեք Բազմանդամ կոճակը: Դիտարկելով միտումը, մենք տեսնում ենք, որ 2 -ի շքանշանը այնքան էլ չի համընկնում: Ես ընտրեցի 3 -ի շքանշանը և զգացի, որ սա շատ ավելի ճշգրիտ էր: Ընտրեք «Equուցադրել հավասարումը գծապատկերում» վանդակը: Այժմ վերջնական հավասարումը ցուցադրվում է գծապատկերում:

6) Կատարված է:

ԼԱՎ. Վերադարձ դեպի Arduino ծրագիր։ Այժմ, երբ մենք ունենք հավասարումը, Arduino- ի ծրագրավորումը հեշտ է: Ամբողջ թիվը, որը ներկայացնում է անջատիչի դիրքերը, հաշվարկվում է կոդի 1 տողում: Օգտագործելով «bitread» գործառույթը, մենք կարող ենք գրավել յուրաքանչյուր առանձին բիտի արժեքը և այդպիսով իմանալ յուրաքանչյուր կոճակի վիճակը: (ՏԵՍ ՆԿԱՐՆԵՐ)

Քայլ 4: TinkerCAD սխեմաներ

TinkerCAD սխեմաներ
TinkerCAD սխեմաներ

Եթե դեռ չեք դուրս եկել TinkerCAD սխեմաներից, արեք դա հիմա: ՍՊԱՍԻ !!!! Ավարտեք իմ Instructable- ը կարդալը, այնուհետև ստուգեք այն: TinkerCAD սխեմաները շատ հեշտ են դարձնում Arduino- ի սխեմաների փորձարկումը: Այն ներառում է մի քանի էլեկտրական օբյեկտներ և Arduinos ՝ նույնիսկ թույլ տալով ծրագրավորել Arduino- ն փորձարկման համար:

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

Ապացուցելու համար, որ Arduino ծրագրավորումը աշխատել է, ես անջատիչների վիճակները թողնում եմ LED- ների վրա `օգտագործելով Arduino- ի թվային ելքերը:

Այնուհետև ես փոխեցի յուրաքանչյուր անջատիչ յուրաքանչյուր հնարավոր համադրության համար և հպարտ եմ ասել «ՏԵ ITԵԿՈՄ Է» !!!

Քայլ 5: «Երկար, և շնորհակալություն բոլոր ձկների համար»: (նշ.1)

Ես դեռ պետք է փորձեմ սա ՝ օգտագործելով իսկական սարքավորումներ, քանի որ այժմ ճանապարհորդում եմ աշխատանքի համար: Բայց, TinkerCAD սխեմաներով դա ապացուցելուց հետո, ես հավատում եմ, որ այն կաշխատի: Խնդիրն այն է, որ իմ նշած դիմադրողների արժեքները ոչ բոլորն են ռեզիստորների ստանդարտ արժեքները: Դրանից խուսափելու համար ես պլանավորում եմ օգտագործել պոտենցիոմետրեր և դիմադրիչների համակցություններ `ինձ անհրաժեշտ արժեքները ստանալու համար:

Շնորհակալ եմ, որ կարդում եք իմ հրահանգը: Հուսով եմ, որ դա կօգնի ձեզ ձեր նախագծերում:

Խնդրում ենք թողնել մեկնաբանություններ, եթե փորձել եք հաղթահարել այս նույն խոչընդոտը և ինչպես եք այն լուծել: Ես կցանկանայի ավելի շատ եղանակներ սովորել դա անելու համար:

Քայլ 6: Հղումներ

Դուք չէիք կարծում, որ ես մեջբերում կանե՞մ ՝ առանց աղբյուրի հղում նշելու:

նշ. 1: Ադամս, Դուգլաս Երկար, և շնորհակալություն բոլոր ձկների համար: (Գալակտիկայի ավտոստոպի ուղեցույցի «եռագրության» 4 -րդ գիրքը)

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