Բովանդակություն:
- Քայլ 1: Շղթան
- Քայլ 2. Ապացույց - Excel
- Քայլ 3. Arduino ծրագրավորում
- Քայլ 4: TinkerCAD սխեմաներ
- Քայլ 5: «Երկար, և շնորհակալություն բոլոր ձկների համար»: (նշ.1)
- Քայլ 6: Հղումներ
Video: Օգտագործեք 1 անալոգային մուտքագրում Arduino- ի համար 6 կոճակի համար. 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Ես հաճախ եմ մտածել, թե ինչպես կարող եմ ավելի շատ թվային մուտքագրումներ ստանալ իմ Arduino- ի համար: Վերջերս մտքովս անցավ, որ ես պետք է կարողանամ օգտագործել անալոգային մուտքերից մեկը `բազմաթիվ թվային մուտքեր բերելու համար: Ես արագ որոնում կատարեցի և գտա, թե որտեղ մարդիկ կարող էին դա անել, բայց որ դրանք թույլ էին տալիս միաժամանակ մեկ կոճակ սեղմել: Ես ուզում եմ, որ կարողանամ ունենալ կոճակների ցանկացած համադրություն, որոնք պետք է միաժամանակ սեղմվեն: Այսպիսով, TINKERCAD CIRCUITS- ի օգնությամբ ես մտադրվեցի դա իրագործել:
Ինչու՞ կցանկանայի միաժամանակ սեղմել կոճակները: Ինչպես պատկերված է TinkerCad սխեմաների նախագծում, այն կարող է օգտագործվել DIP անջատիչի մուտքերի համար `ծրագրի շրջանակներում տարբեր ռեժիմների ընտրության համար:
Շղթան, որը ես գտա, օգտագործում է Arduino- ից հասանելի 5V աղբյուրը և օգտագործում է 7 դիմադրություն և 6 կոճակ կամ անջատիչ:
Քայլ 1: Շղթան
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- ի հնարավորությունները:
Ես ստեղծեցի անջատիչի մուտքերի բոլոր հնարավոր համակցությունները և կազմակերպեցի այս հաջորդականորեն հաջորդող երկուական օրինաչափությունները: «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- ն, ես ի սկզբանե պլանավորում էի անհատական լարման տիրույթներ սահմանել `անջատիչը միացված կամ անջատված լինելու որոշման համար: Բայց, երբ մի գիշեր պառկած էի անկողնում, մտքովս անցավ, որ պետք է կարողանամ հավասարություն գտնել դա անելու համար: Ինչպե՞ս: ԲԱՐՁՐ 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 սխեմաներից, արեք դա հիմա: ՍՊԱՍԻ !!!! Ավարտեք իմ Instructable- ը կարդալը, այնուհետև ստուգեք այն: TinkerCAD սխեմաները շատ հեշտ են դարձնում Arduino- ի սխեմաների փորձարկումը: Այն ներառում է մի քանի էլեկտրական օբյեկտներ և Arduinos ՝ նույնիսկ թույլ տալով ծրագրավորել Arduino- ն փորձարկման համար:
Միացումս ստուգելու համար ես 6 անջատիչ տեղադրեցի ՝ օգտագործելով DIP անջատիչ փաթեթը և դրանք կապեցի ռեզիստորներին: Ապացուցելու համար, որ իմ Excel աղյուսակի լարման արժեքը ճիշտ է, ես ցուցադրեցի վոլտմետր Arduino- ի մուտքի մոտ: Այս ամենը աշխատեց այնպես, ինչպես և սպասվում էր:
Ապացուցելու համար, որ Arduino ծրագրավորումը աշխատել է, ես անջատիչների վիճակները թողնում եմ LED- ների վրա `օգտագործելով Arduino- ի թվային ելքերը:
Այնուհետև ես փոխեցի յուրաքանչյուր անջատիչ յուրաքանչյուր հնարավոր համադրության համար և հպարտ եմ ասել «ՏԵ ITԵԿՈՄ Է» !!!
Քայլ 5: «Երկար, և շնորհակալություն բոլոր ձկների համար»: (նշ.1)
Ես դեռ պետք է փորձեմ սա ՝ օգտագործելով իսկական սարքավորումներ, քանի որ այժմ ճանապարհորդում եմ աշխատանքի համար: Բայց, TinkerCAD սխեմաներով դա ապացուցելուց հետո, ես հավատում եմ, որ այն կաշխատի: Խնդիրն այն է, որ իմ նշած դիմադրողների արժեքները ոչ բոլորն են ռեզիստորների ստանդարտ արժեքները: Դրանից խուսափելու համար ես պլանավորում եմ օգտագործել պոտենցիոմետրեր և դիմադրիչների համակցություններ `ինձ անհրաժեշտ արժեքները ստանալու համար:
Շնորհակալ եմ, որ կարդում եք իմ հրահանգը: Հուսով եմ, որ դա կօգնի ձեզ ձեր նախագծերում:
Խնդրում ենք թողնել մեկնաբանություններ, եթե փորձել եք հաղթահարել այս նույն խոչընդոտը և ինչպես եք այն լուծել: Ես կցանկանայի ավելի շատ եղանակներ սովորել դա անելու համար:
Քայլ 6: Հղումներ
Դուք չէիք կարծում, որ ես մեջբերում կանե՞մ ՝ առանց աղբյուրի հղում նշելու:
նշ. 1: Ադամս, Դուգլաս Երկար, և շնորհակալություն բոլոր ձկների համար: (Գալակտիկայի ավտոստոպի ուղեցույցի «եռագրության» 4 -րդ գիրքը)
Խորհուրդ ենք տալիս:
4 կոճակ խաղ ՝ օգտագործելով մեկ անալոգային մուտքագրում. 6 քայլ (նկարներով)
4 կոճակներով խաղեր ՝ օգտագործելով մեկ անալոգային մուտք. Բոլոր խաղերը (8 -ը տ
Ինչպես կարդալ բազմաթիվ անալոգային արժեքներ ՝ օգտագործելով մեկ անալոգային քորոց. 6 քայլ (նկարներով)
Ինչպես կարդալ բազմաթիվ անալոգային արժեքներ ՝ օգտագործելով մեկ անալոգային քորոց: Այս ձեռնարկում ես ձեզ ցույց կտամ, թե ինչպես կարդալ բազմաթիվ անալոգային արժեքներ ՝ օգտագործելով միայն մեկ անալոգային մուտքի քորոց:
AVR միկրոկոնտրոլեր: Միացրեք LED- ները ՝ սեղմելով կոճակի անջատիչը: Կոճակի վերացում. 4 քայլ
AVR միկրոկոնտրոլեր: Միացրեք LED- ները ՝ օգտագործելով կոճակի անջատիչը: Կոճակի դուրսբերում. Այս բաժնում մենք կսովորենք, թե ինչպես պատրաստել ծրագիր C կոդը ATMega328PU- ի համար `երեք LED- ների կարգավիճակը փոխելու համար` ըստ կոճակի անջատիչի մուտքի: Բացի այդ, մենք ուսումնասիրել ենք «Switch Bounce» - ի խնդրի լուծումները: Ինչպես սովորաբար, մենք
Raspberry Pi GPIO սխեմաներ. Օգտագործելով LDR անալոգային սենսոր առանց ADC (անալոգային թվային փոխարկիչի). 4 քայլ
Raspberry Pi GPIO սխեմաներ. Օգտագործելով LDR անալոգային տվիչ ՝ առանց ADC (անալոգային թվային փոխարկիչի). կամ Lowածր. Բայց ի՞նչ անել, եթե ցանկանում եք օգտագործել ձեր Raspberry Pi- ն անալոգային սենսորով: Եթե մենք ցանկանում ենք օգտագործել
IoT անալոգային մուտքագրում. IoT- ով սկսելը. 8 քայլ
IoT- ի անալոգային մուտքագրում. Սկսելը IoT- ով: Անալոգային մուտքերի իմացությունը մեզ շրջապատող իրերի գործելակերպը հասկանալու կարևոր մասն է, եթե ոչ բոլոր սենսորները անալոգային սենսորներ են (երբեմն այդ տվիչները վերածվում են թվայինի): Ի տարբերություն թվային մուտքերի, որոնք կարող են միացված կամ անջատված լինել, անալոգային մուտքը