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

Ինչպես կարդալ բազմաթիվ անջատիչներ մեկ MCU կապով `4 քայլ
Ինչպես կարդալ բազմաթիվ անջատիչներ մեկ MCU կապով `4 քայլ

Video: Ինչպես կարդալ բազմաթիվ անջատիչներ մեկ MCU կապով `4 քայլ

Video: Ինչպես կարդալ բազմաթիվ անջատիչներ մեկ MCU կապով `4 քայլ
Video: How measure DC Voltage and Current and build Energy meter with LCD Display | Lesson 104 2024, Հունիսի
Anonim
Ինչպես կարդալ բազմաթիվ անջատիչներ մեկ MCU կապով
Ինչպես կարդալ բազմաթիվ անջատիչներ մեկ MCU կապով

Դուք երբևէ խեղդվե՞լ եք ծրագրի (նախագծերի) վրա, և նախագիծը շարունակում է աճել և աճել, մինչդեռ դրան ավելացնում եք ավելի շատ բաներ (մենք դա անվանում ենք Feaping Creaturism): Վերջերս կատարված նախագծի վրա ես կառուցում էի հաճախականությունների հաշվիչ և ավելացնում հինգ ֆունկցիոնալ ազդանշանի գեներատոր/հաճախականության սինթեզատոր: Շուտով ես ավարտվեցի ավելի շատ անջատիչներով, քան մնացել էի հասանելի կապում, այնպես որ ինչ պետք է անի տղան:

Այնուամենայնիվ, շուտով ես ունեի ևս յոթ անջատիչ իմ Funbox- ում (այո, այդպես էի անվանում իմ գործառույթի գեներատորը … Այն չի պահանջում հերթափոխի գրանցամատյաններ կամ հատուկ IC- ներ: Փաստորեն, այն չի պահանջում նաև միկրոկոնտրոլեր, եթե դիսկրետ կիսահաղորդիչներն այնպես են պտտվում: Ահա մի եղանակ, որով կարող եք կարդալ/կառավարել բազմաթիվ անջատիչներ ՝ օգտագործելով ձեր AVR- ի մեկ փին (կամ այլ միկրոկառավարիչ… Ես լսել եմ, որ AVR- ից բացի այլ միկրոկոնտրոլերներ կան, բայց չեմ պատկերացնում…)::)

Քայլ 1: Հիմնականը (ոչ իրականում)

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

Եթե ցանկանայիք, կարող եք օգտագործել լարման վերահսկվող տատանում `դա ցույց տալու համար, գուցե որոշ թարթող լույսերով, կամ այլընտրանք` ձայնով: Այս դժվարության մեջ ես կձևացնեմ, որ մենք օգտագործում ենք AVR, բայց ձեր աշխարհում կարող եք ձևացնել այն, ինչ ձեզ երջանկացնում է: Կարոտում եմ Բոբ Ռոսսին:

Քայլ 2: Լարման բաժանարար

Լարման բաժանարար
Լարման բաժանարար
Լարման բաժանարար
Լարման բաժանարար

Ըստ էության, այն, ինչ մենք պատրաստվում ենք դա անել, դա տեխնիկայի և սխեմայի օգտագործումն է, որը կոչվում է լարման բաժանարար: Լարման բաժանարարները, ինչպես երևի կռահել եք, բաժանում են V,,,, լարման որոշված արժեքով: Դուք կարող եք լարումը բաժանել մի քանի բաղադրիչների, ներառյալ կոնդենսատորները և ինդուկտորները, բայց ահա ես դա կանեմ լավ ռեզիստորով: Գաղափարը Այն, ինչ մենք անում ենք, շարադրել երկու բաղադրիչ, որոնք կհանգեցնեն, յուրաքանչյուրը առանձին, լարման անկում բաղադրիչի վրա: Նայեք առաջին նկարին, եթե իմաստ չունեմ: Գոյություն ունի 9V- ի պոտենցիալ տարբերություն երկաթուղուց մինչև երկաթուղի: 9V- ի և 0V- ի միջև կա երկու դիմադրություն շարքում: Սրանցից յուրաքանչյուրը լարման անկում կապրի ՝ կախված դիմադրությունից, ինչպես հավանաբար հիշում եք V = IR- ից: Եթե լարման չափում կատարեք երկու դիմադրիչների միջև, ապա որոշակի արժեք կստանաք 9 Վ – ից մինչև 0 Վ ՝ կախված նրանից, թե որքան լարվածություն է ընկել առաջին ռեզիստորի երկայնքով և որքան է մնացել 2 – րդ դիմադրության վրայից իջնելու համար ՝ մինչև 0 Վ: Այս իրավիճակում կա ռեզիստորի վրա լարման անկումը հաշվարկելու մի պարզ բանաձև, և այն այսպիսին է թվում. Թող դիմադրությունը 1 -ի (R1) նկատմամբ լինի V1, իսկ դիմադրության վրա ՝ երկու (R2) ՝ V2: Քանի որ ես այլևս չեմ կարող ձևաչափել, բանաձևը դիտեք ստորև բերված նկար 2 -ում: Այսպիսով, մեր դիմադրողական բաժանարարում Vout լարումը կարող է որոշվել V2- ի մեր բանաձևով (քանի որ մենք հղում ենք անելու GND- ին մինչև 0V): Ի՞նչ կապ ունի դա այն բանի հետ, որ մի փունջից հայտնաբերվում են մի քանի անջատիչներ: Դե, թերթիր էջը, և ես ցույց կտամ քեզ:

Քայլ 3. Լարման բաժանարար սանդուղք

Լարման բաժանարար սանդուղք
Լարման բաժանարար սանդուղք

Հիմա ենթադրենք, որ մենք ունենք մեր բոլոր անջատիչները, գուցե վեց կամ ութ կամ տասնվեցը, բոլորը միացված են ռեզիստորների միջոցով, որոնցից յուրաքանչյուրը գործում է որպես լարման բաժանարար, այնպես որ երբ անջատիչի քորոցի վիճակը փոխվում է, լարումը կարդացվում է և ելնելով լարման մակարդակից, մենք կարող է իմանալ, թե որ անջատիչն է պարզապես ակտիվացվել: Նայեք ստորև: Ստորև բերված նկարում ես միացրել եմ անջատիչների երկու բլոկ: Ամենաբարձր բլոկն ունի երկու անջատիչ, իսկ ներքևի բլոկն ունի հինգ անջատիչ: Դուք կարող եք նույն կերպ միացնել ձեր անջատիչ, վայրկենական, շոշափելի և այլն անջատիչները: Կարևորը, որ պետք է նկատել, այն դիմադրիչն է, որին միացված է ձեր անջատիչը: Իմ օրինակում ես գրեթե կրկնապատկել եմ հաջորդ դիմադրության դիմադրությունը `ստեղծելով լարման բաց, որը հեշտ է չափել և սխալմամբ չընդունել անջատիչի առաջ կամ հետո: Եթե նախկինում չեք նկատել, նորից նայեք և գիտակցեք, որ մենք վերադարձանք մեր հին ընկերոջը ՝ դիմադրողական լարման բաժանարարին: Առաջին ռեզիստորը ՝ 10k ohm- ը, միացված է 5V- ին, իսկ 2 -րդը ՝ այն դիմադրիչը, որը որոշելու է Vդուրս SWITCH_ADC կապի համար միացված է յուրաքանչյուր անջատիչին և, հետևաբար, յուրաքանչյուր անջատիչ կապված է որոշակի Vout լարման հետ, որը կարելի է կարդալ SWITCH_ADC- ում միացված ADC կապից: Հաջորդը, յուրաքանչյուր անջատիչից որոշեք ակնկալվող Vout- ը

Vout = Vin * (R2 / (R1 + R2))

մեկ անջատիչի համար.

Vout = 5V * (500 / (10000 + 500)) = 5 * 0.048 = 0.24V կամ 240 մՎ

երկրորդ անջատիչի համար.

Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V կամ ~ 900mV

և այլն … Ազատ զգալ ձեր սեփական արժեքներով փոխարինել R2- ով, եթե դուք ունեք միայն որոշակի ռեզիստորներ … Այստեղ ամենակարևորը անջատիչների միջև լարման բավական լայն բացը պահելն է, որպեսզի ADC- ի սխալի ցանկացած սահման շահի »: t ձեզ մտցրեք հարևան անջատիչից սպասվող լարման մեջ: Ես գտել եմ, որ ամենահեշտն այն է, որ կառուցես բաժանարար սանդուղքը և մի մուլտիմետր/վոլտմետր տեղադրես ADC կապի վրա և սեղմիր յուրաքանչյուր քորոց և տես, թե ինչ արժեքներ ես ստանում: Նրանք պետք է բավականին տեղին լինեն ձեր հաշվարկի մեջ: Երբ դուք ունեք յուրաքանչյուր անջատիչից որոշակի ռեզիստոր օգտագործելով ակնկալվող լարման արժեքները, ապա կարող եք ձեր MCU- ին կարդալ ADC կապը և այն համեմատել ձեր հայտնի արժեքների հետ `որոշելու, թե որ անջատիչն է սեղմված: Օրինակ, ասեք, որ գրանցել եք ընդհատումների ծառայության ռեժիմ, որը կկոչվի ամեն անգամ, երբ ADC կապում հայտնաբերվի փոփոխություն: Այդ ISR- ի ներսում կարող եք կարդալ ADC- ն և այդ արժեքը համեմատել ձեր անջատիչ սեղանի հետ: Եթե դուք օգտագործում եք 8 բիթանոց ADC արժեք, ձեր լարումը կվերածվի 0-ի և 255-ի միջև ընկած թվի, որը համապատասխանում է 0V- ից մինչև 5V- ի լարման: Սա ենթադրում է, որ ձեր ADC- ն այս կերպ կազմաձևված է:

Քայլ 4: Ամփոփում

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

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