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

5-լարային դիմացկուն հպման տվիչ `10 քայլ
5-լարային դիմացկուն հպման տվիչ `10 քայլ

Video: 5-լարային դիմացկուն հպման տվիչ `10 քայլ

Video: 5-լարային դիմացկուն հպման տվիչ `10 քայլ
Video: Պիոնների, հորտենզիաների և քրիզանտեմների 10 տեսակի հենարաններ 2024, Հուլիսի
Anonim
5-Wire Resistive Touch Sensor
5-Wire Resistive Touch Sensor

Բարեւ բարեւ!

Արդեն որոշ ժամանակ է, ինչ ես աշխատում եմ այս կայքում և շատ բան է փոխվել: Վերջապես պատրաստ եմ ղեկին վերադառնալ մեկ այլ նախագծի համար, և կարծում եմ, որ ժամանակն է ինքս ինչ -որ բան փոխելու:

Ես որոշ ժամանակ մտքում ունեի մի նախագիծ, որը հիմնված էր 271828 թ. Ես կարծում էի, որ քանի դեռ մեկ -երկու բան եմ սովորում, կարող եմ ձեզ հետս տանել:

Այդ նպատակով, այս ձեռնարկների իմ նպատակը մի տեսակ հիբրիդ կլինի իմ ավելի հղկված ձեռնարկների միջև և բուն նախագծի համար գրանցում: Յուրաքանչյուր առանձին ձեռնարկ կլինի մեկ քայլ այդ ճանապարհորդության մեջ և կներառի մանրամասներ, որոնք ես շոշափել եմ անցյալում, ինչպիսիք են կոդի մշակում (պարզապես լրացված ծածկագրի փոխարեն) և սխալ քայլեր, որոնք ես կատարում եմ ճանապարհին:

Ես շատ ոգևորված եմ այս նոր նախագծով և հուզված եմ տեսնել, թե որքան լավ է այն աշխատում:

Այսօր մենք պարզապես կստանանք մի պարզ 5-Wire սենսորային վահանակ, որն աշխատում է DP-32- ի հետ:

Եկեք սկսենք!

Քայլ 1: Այն, ինչ ձեզ հարկավոր կլինի

Այն, ինչ ձեզ պետք կգա
Այն, ինչ ձեզ պետք կգա

Քանի որ այս ձեռնարկը վերաբերում է մեկ սենսորին աշխատեցնելուն, միկրոկոնտրոլերից և սենսորային վահանակից այն կողմ շատ բան պետք չէ:

  • Միկրոկոնտրոլեր:

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

  • Լարերի և մալուխների տեսականի:

    Ես կարող էի օգտագործել սենսորային վահանակի ներկառուցված ժապավենի մալուխը, բայց եթե այն պատռվի, ապա ամբողջ վահանակն անօգուտ է: Փոխարենը, ես օգտագործում եմ 6-լարային մալուխ `ներկառուցված մալուխի լարվածությունը նվազեցնելու համար:

  • Տիտղոսային 5-մետաղալար դիմադրողական սենսորային վահանակ:

    Ես ունեի 4-մետաղալար դիմադրողական սենսորային վահանակ, բայց դրա համար նախատեսված ժապավենի մալուխը կոտրվեց:

Եվ վերջ!

Քայլ 2. Ի՞նչ է 5-լարանի դիմացկուն դիպչող վահանակը:

Ի՞նչ է 5-մետաղալար դիմացկուն դիպչող վահանակը
Ի՞նչ է 5-մետաղալար դիմացկուն դիպչող վահանակը
Ի՞նչ է 5-մետաղալար դիմացկուն դիպչող վահանակը
Ի՞նչ է 5-մետաղալար դիմացկուն դիպչող վահանակը
Ի՞նչ է 5-մետաղալար դիմացկուն դիպչող վահանակը
Ի՞նչ է 5-մետաղալար դիմացկուն դիպչող վահանակը

Եթե կարդացել եք իմ 4-լարային սենսորային վահանակի ձեռնարկը, ապա ձեզ ծանոթ կլինեն դիմադրողական հպման տվիչի ընդհանուր գաղափարը, սակայն 5-մետաղալար վահանակները և 4-մետաղալարերը գործում են մի փոքր այլ կերպ:

Ինձ դուր է գալիս այս վահանակը, քանի որ դուք կարող եք տեսնել բոլոր մետաղալարերի հետքերը, ինչը հեշտացնում է տեսնել, թե ինչն ինչ է անում: Առաջին նկարում ես յուրաքանչյուր հետք տարբեր կերպ եմ գունավորել: Դուք հավանաբար կարող եք տեսնել, որ լարերից չորսը (վարդագույն, դեղին, նարնջագույն և մանուշակագույն) յուրաքանչյուրը անցնում է չորս անկյուններից մեկին: Միջին մետաղալարը (կարմիր) անցնում է ճկուն սենսորային վահանակին:

Երկրորդ նկարում մենք չորս լարերից երկուսը (վերևից աջ և ներքևից աջ) բարձր լարման ենք դարձրել (կարմիր գույնով), իսկ մյուս երկուսը (վերևից ձախ և ներքևից ձախ) ցածր են լարումը (ցուցադրվում է կապույտ գույնով): Սա ստեղծում է լարման գրադիենտ ամբողջ վահանակի վրա: Այս դեպքում գրադիենտն անցնում է X առանցքի երկայնքով, ուստի ավելի բարձր լարումը ներկայացնում է ավելի բարձր դիրք X առանցքի երկայնքով:

Երբ մատը դիպչում ենք վահանակին, այն ճնշում է ճկուն սենսորը ՝ միանալով ինչ-որ տեղ X առանցքի գրադիենտի երկայնքով: Մեր միկրոկառավարիչի լարման տվիչները կարող են զգալ այս լարումը և ասել, թե որտեղ է մատը դիպչում X առանցքի վրա:

Երրորդ նկարում դուք կարող եք տեսնել, թե ինչպես է փոխվում կազմաձևը ՝ թույլ տալով մեզ զգալ Y առանցքի երկայնքով: Այսպիսով, մենք կարող ենք ասել, թե որտեղ է մեր մատը դիպչում երկկողմանի տարածության վրա:

Քայլ 3: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր

Ինչպես երևի կարող եք տեսնել վերևի նկարներում, ես չորս անկյուններս միացրել եմ իրենց թվային ելքային քորոցին: Դա թույլ կտա դրանք անհատապես բարձր կամ ցածր սահմանել: Իմ տվիչի քորոցը միանում է անալոգային մուտքի քորոցին: 5-մետաղալար սենսորային էկրանին հաճելի է, ի տարբերություն 4-մետաղալարերի, այն է, որ ձեզ անհրաժեշտ է միայն մեկ անալոգային քորոց, մինչդեռ 4-մետաղալարով կպահանջվի 2:

Ձեր լարերը, իհարկե, կարող են տարբերվել, բայց իմ էլեկտրագծերը հետևյալն են.

Անալոգային 0 (կապ 6) միանում է սենսորին (միջին քորոց)

Թվային 3-ը միանում է վերևից աջ (վերևի ամենաապին)

Թվային 2-ը միանում է վերև-ձախ (երկրորդ ամենաբարձր քորոցին)

Թվային 1-ը միանում է ներքևից ձախ (երկրորդ ներքևի ամենաշատ քորոցին)

Թվային 0-ը միանում է ներքևի աջին (ներքևի ամենից շատ քորոց)

Կրկին հարկ է նշել, որ ես միկրոկոնտրոլերի և վահանակի միջև անցնելու համար օգտագործում եմ 6 լարային մալուխ: Այս մալուխի վերին կապը ես միացված եմ թողել:

Քայլ 4: Softwareրագրաշարի մշակում

Ծրագրային ապահովման մշակում
Ծրագրային ապահովման մշակում

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

Ինչպես միշտ, ես կօգտագործեմ Arduino IDE- ն ՝ Digilent միջուկով: Յուրաքանչյուր բաժին կներառի կոդի ֆայլ, էկրանի նկարահանում, ինչպես նաև հավելումների նկարագրություն և այն, ինչին մենք փորձում ենք հասնել:

Այս պահին ես սկսում եմ մի պարզ հետաձգման ոճի թարթման ծրագիր, որը նույնն է, ինչ դուք կգտնեիք Օրինակներ թղթապանակում: Եթե կարդաք իմ գրած երկարատև վերնագիրը, կտեսնեք, որ այս գործընթացի յուրաքանչյուր քայլ կփոփոխի ծրագիրը `այն մեր վերջնական նպատակին ավելի մոտենալու համար:

Քայլ 5. Պետական մեքենայի թարթում

Պետական մեքենայի թարթում
Պետական մեքենայի թարթում

Իմ առաջին քայլը թարթման գործառույթը «հետաձգման ()» վրա հիմնված մեկից պետական մեքենայի փոխելն է:

Նրանց համար, ովքեր սովոր չեն փոխելու հայտարարությունները, այն նման է if- հայտարարության: Այս մեկը (նարնջագույն վանդակում) ստուգում է մեր «վիճակ» փոփոխականը (որը սկսվում է 0 -ից): Այնուհետև այն անցնում է մեր ներկա վիճակի համար: Դուք կտեսնեք, որ 0 և 2 պատյանները պատասխանատու են LED- ը միացնելու և անջատելու համար (համապատասխանաբար), իսկ 1 -ին և 3 -րդ դեպքերը պատասխանատու են անջատիչների միջև սպասելու համար:

Քայլ 6: Կոճակ թարթել

Կոճակը թարթել
Կոճակը թարթել
Կոճակը թարթել
Կոճակը թարթել
Կոճակը թարթել
Կոճակը թարթել

Հաջորդը, ես ուզում էի, որ կոճակը օգտագործվի լույսը թարթելու համար: Սա չափազանց բարդացնելու փոխարեն, ես պարզապես մեկով իջեցրել եմ բոլոր վիճակները (0-ը դառնում է վիճակ 1 և այլն): Դա անելիս զգույշ եղեք, որպեսզի ավելացնեք ելքի վիճակները, ինչպես նաև բուն վիճակը (տես նկար 3):

Ես ջնջեցի նաեւ երկրորդ «սպասել» վիճակը: Դա նշանակում է, որ կոճակը լույսը միացնում է մեկ վայրկյան, և այն կարող եք նորից սեղմել այն անջատվելուց անմիջապես հետո:

Հարկ է նշել, որ այս համակարգը մեզ համար ավտոմատ կերպով ապամոնտաժում է կոճակը, քանի որ մենք պետք է սպասենք, մինչև LED- ն անջատվի, նախքան 0 վիճակին վերադառնալը, որտեղ կոճակը կարող է նորից սկսել ցիկլը:

Քայլ 7: Սերիական հաղորդակցություն

Սերիական հաղորդակցություն
Սերիական հաղորդակցություն
Սերիական հաղորդակցություն
Սերիական հաղորդակցություն

Այս թարմացումը շատ փոքր է: Այն ամենը, ինչ ուզում էի անել, սերիական կապ հաստատելն ու հաղորդագրություններ ուղարկելն էր: Առաջին նկարում կարող եք տեսնել, որ ես սկսում եմ Serial- ը setup () գործառույթում: Մեր պետական մեքենայի ներսում 1 -ին և 3 -րդ պետություններին ավելացրի տողեր, որոնք սերիայի միջոցով համակարգչին կուղարկեն պարզ հաղորդագրություններ:

Քայլ 8: Կարդալու կոորդինատներ

Ընթերցանության կոորդինատներ
Ընթերցանության կոորդինատներ
Ընթերցանության կոորդինատներ
Ընթերցանության կոորդինատներ
Ընթերցանության կոորդինատներ
Ընթերցանության կոորդինատներ
Ընթերցանության կոորդինատներ
Ընթերցանության կոորդինատներ

Լավ է, որ վերջին քայլը հեշտ ստացվեց, քանի որ այս քայլը չարաճճի էր:

Սկսելու համար ես ավելացրել եմ մեր սենսորային վահանակի փոփոխականները, ներառյալ որոշ ժամանակային փոփոխականներ ինչպես հպման վահանակի, այնպես էլ մեր կոճակի համար: Թե ինչու, մի քիչ կտեսնեք:

Ես ամբողջությամբ վերաշարադրեցի պետական մեքենան: Կոդին նայելը մի փոքր շփոթեցնող է, ուստի ես ներառել եմ բլոկ -դիագրամ, որը պետք է ցույց տա արվածը:

Ուշադրություն դարձրեք. Այժմ կան երեք «սպասող» քայլեր: Մեկը սենսորային վահանակի յուրաքանչյուր կոնֆիգուրացիայի համար `թույլ տալու, որ չափումները կատարելուց առաջ լարումները կարգավորվեն, և մեկը` կոճակին ժամանակ տալու `ճիշտ դուրս գալու համար: Այս սպասողական քայլերն են պատճառը, որ ես ուզում էի և՛ կոճակին, և՛ սենսորային վահանակին տալ իրենց ժամանակային փոփոխականները:

Նշում. DEBOUNCE_TIME կայունությունը կարող է մի փոքր ցածր լինել: Ազատորեն ավելացրեք այն:

Քայլ 9: Մաքրում

Մաքրում
Մաքրում
Մաքրում
Մաքրում
Մաքրում
Մաքրում

Մենք հասել ենք այս նախագծի ծածկագրի վերջնական տարբերակին:

Սկսելու համար, ես ավելացրել եմ loop_diff () գործառույթը, որը հաշվարկվում է անցած ժամանակը: DP32- ի ներքին ժամացույցը անստորագիր երկար է և, չնայած դա ծայրահեղ քիչ հավանական է, բայց կա հավանականություն, որ ժամացույցը կարող է ինչ -որ տեղ պտտվել այս ծածկագրի գործարկման ժամանակ*: Այդ դեպքում, պարզապես ընթացիկ ժամանակը հանելով btn_time կամ panel_time- ում պահված ժամանակից, մեզ ինչ -որ տարօրինակ բան կտրվի, այնպես որ ես գրել եմ loop_diff () `օղակների առաջացման ժամանակ հայտնաբերելու և համապատասխանաբար վարվելու համար:

Ես նաև փոքր մաքրում եմ կատարել: Ես հեռացրել եմ այժմ չօգտագործվող «state_time» փոփոխականը: Ես LED_BUILTIN պիտակից (որը Arduino ստանդարտ է) անցել եմ PIN_LED1 պիտակի (որը ստանդարտ է chipKit- ի և DP32- ի համար): Ես նաև հեռացրել եմ Սերիալի միջոցով բոլոր հաղորդագրությունները գործընթացը սկսելու և ավարտելու մասին, ինչը մեր տվյալները Սերիայի միջոցով շատ ավելի մաքուր է դարձնում:

*Ես մաթեմատիկա եմ արել տարիներ առաջ, և կարծում եմ, որ millis () ֆունկցիայի համար մի շաբաթ անընդհատ աշխատելու ժամանակ կպահանջվի, մինչև փոփոխականը շրջվի:

Քայլ 10: Վերջնական մտքեր

Վերջնական մտքեր
Վերջնական մտքեր

Եվ վերջ!

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

Սա ինձ համար ուսուցման գործընթաց է, ուստի ազատ զգալ թողեք ձեր մտքերն ու առաջարկությունները ստորև բերված մեկնաբանություններում:

Շնորհակալություն, և հաջորդ անգամ կտեսնվենք:

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