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

MCP41HVX1 թվային պոտենցիոմետր Arduino- ի համար. 10 քայլ (նկարներով)
MCP41HVX1 թվային պոտենցիոմետր Arduino- ի համար. 10 քայլ (նկարներով)

Video: MCP41HVX1 թվային պոտենցիոմետր Arduino- ի համար. 10 քայլ (նկարներով)

Video: MCP41HVX1 թվային պոտենցիոմետր Arduino- ի համար. 10 քայլ (նկարներով)
Video: Show Wiper Control Arduino sketch running while controlling an MCP41HV51-104E/ST digipot. 2024, Հուլիսի
Anonim
MCP41HVX1 թվային պոտենցիոմետր Arduino- ի համար
MCP41HVX1 թվային պոտենցիոմետր Arduino- ի համար

MCP41HVX1 թվային պոտենցիոմետրերի ընտանիքը (նույնքան DigiPots) սարքեր են, որոնք ընդօրինակում են անալոգային պոտենցիոմետրի գործառույթը և վերահսկվում են SPI- ով: Applicationրագրի օրինակ կլինի ձեր ստերեոյի ձայնի կոճակի փոխարինումը DigiPot- ով, որը կառավարվում է Arduino- ով: Սա ենթադրում է, որ ձեր ստերեոյի ձայնի կարգավորիչը պոտենցիոմետր է և ոչ թե պտտվող կոդավորիչ:

MCP41HVX1- ը մի փոքր այլ է, քան մյուս DigiPots- ն այն առումով, որ նրանք ունեն ճեղքված երկաթգծի ձևավորում: Սա նշանակում է, որ մինչդեռ DigiPot- ն ինքնին կարող է կառավարվել Arduino- ի ելքային լարման միջոցով, դիմադրության ցանցով անցած ազդանշանն աշխատում է լարման շատ ավելի մեծ տիրույթով (մինչև 36 վոլտ): 5 վոլտով կառավարվող DigiPots- ների մեծ մասը սահմանափակվում է 5 վոլտով դիմադրողական ցանցով, ինչը սահմանափակում է դրանց օգտագործումը ավելի բարձր լարման վրա աշխատող գոյություն ունեցող միացումի վերազինման համար, ինչպես օրինակ մեքենայում կամ նավակում:

MCP41HVX1 ընտանիքը բաղկացած է հետևյալ չիպերից.

  • MCP41HV31-104E/ST - 100k ohm (7 բիթ)
  • MCP41HV31-503E/ST - 50k ohm (7 բիթ)
  • MCP41HV31-103E/ST - 10k ohm (7 բիթ)
  • MCP41HV31-502E/ST - 5k ohm (7 բիթ)
  • MCP41HV31-103E/MQ - 10k ohm (7 բիթ)
  • MCP41HV51-104E/ST - 100k ohm (8 բիթ)
  • MCP41HV51-503E/ST - 50k ohm (8 բիթ)
  • MCP41HV51T -503E/ST - 50k ohm (8 բիթ)
  • MCP41HV51-103E/ST - 10k ohm (8 բիթ)
  • MCP41HV51-502E/ST - 5k ohm (8 բիթ)

7 բիթանոց չիպերը թույլ են տալիս 128 քայլ կատարել դիմադրության ցանցում, իսկ 8 բիթանոց չիպսերը `256 քայլ` դիմադրության ցանցում: Սա նշանակում է, որ 8 բիթանոց չիպսերը թույլ են տալիս երկու անգամ ավելի շատ դիմադրության արժեքներ պոտենցիոմետրից:

Պարագաներ

  • Ընտրեք համապատասխան MCP41HVX1 չիպը վերը նշված ցուցակից: Ձեր ընտրած չիպը հիմնված է ձեր դիմումի համար պահանջվող դիմադրության տիրույթի վրա: Այս Instructable- ը հիմնված է չիպի TSSOP 14 փաթեթի տարբերակների վրա, հետևաբար այս ուղեցույցին հետևելիս ընտրեք ցանկի ցանկացած չիպ, բացառությամբ MCP41HV31-103E/MQ- ի, որը QFN փաթեթ է: Խորհուրդ է տրվում ստանալ մի քանի լրացուցիչ չիպսեր, քանի որ ես հանդիպեցի վատին, և դրանք էժան են: Իմը պատվիրեցի Digi-Key- ից:
  • Երկրորդային DC սնուցման աղբյուր, որը 10 -ից 36 վոլտ է: Իմ օրինակում ես օգտագործում եմ 17 վոլտ պատի գորտնուկի DC սնուցման աղբյուր իմ հին սնուցման աղբյուրների տուփից:
  • Sոդման հոսք
  • Sոդման երկաթ
  • Sոդող
  • Պինցետ և / կամ ատամի խոզանակ
  • TSSOP 14 փին ջարդման տախտակ - Amazon - QLOUNI 40 հատ PCB Proto Boards SMD to DIP Adapter Plate Converter TQFP (32 44 48 64 84 100) SOP SSOP TSSOP 8 10 14 16 20 20 24 24 28 (Չափերի տեսականի: Շատ նախագծերի համար մատչելի)
  • Քանակականացրեք 2 - 7 փին վերնագիր - Amazon - DEPEPE 30 հատ 40 Pin 2.54 մմ Արու և իգական պտտվող վերնագրեր Arduino Prototype Shield- ի համար (անհրաժեշտ է կտրել չափերը: Բազում նախագծերի համար փաթեթում շատ)
  • Arduino Uno. Եթե դուք չունեք մեկը, ես կառաջարկեի ստանալ պաշտոնական խորհուրդ: Ես բախտ եմ ունեցել ոչ պաշտոնական վարկածների հետ: Digi -Key - Arduino Uno
  • Բազմաչափ, որը կարող է չափել դիմադրությունը և նաև ստուգել շարունակականությունը
  • Jumper լարերը
  • Breadboard
  • Բարձր խորհուրդ է տրվում, բայց բացարձակապես չի պահանջվում ձեռքի ազատ խոշորացույց, քանի որ TSSOP չիպսերը շատ փոքր են: Բազմաչափի հետ եռակցման և փորձարկման համար ձեզ հարկավոր կլինեն երկու ձեռքեր: Ես օգտագործում եմ մի զույգ Harbor Freight 3x Clip-On Magnifiers իմ դեղատոմսով բաժակների վրա և ազատ կանգնած / հոդավորված խոշորացույց: Մյուս տարբերակները զույգ էժան ընթերցողներ են զեղչի կամ դոլարային խանութից: Դուք նույնիսկ կարող եք ընթերցողներին կրել ձեր դեղատոմսով ակնոցների վրա կամ ձեռք բերել երկու զույգ ընթերցող (մեկը մյուսից մեկը) `կախված նրանից, թե որքան լավ (կամ վատ) է ձեր տեսողությունը: Եթե կրկնապատկում եք ակնոցը, զգույշ եղեք, քանի որ ձեր տեսողության շրջանակը շատ սահմանափակ կլինի, այնպես որ համոզվեք, որ դրանք հանեք ՝ նախքան որևէ այլ բան անելը: Extraոդման ժամանակ նաև չափազանց զգույշ եղեք:
  • Մեկ այլ տարր, որը չի պահանջվում, բայց խորհուրդ է տրվում, դա Harbor Freight Helping Hands- ն է: Դրանք ալիգատոր սեղմակներ են, որոնք ամրացված են մետաղական հիմքի վրա: Դրանք հասանելի են բազմաթիվ այլ վաճառողներից ինտերնետում, ինչպես նաև տարբեր ֆիրմային անվանումներով: Սրանք շատ օգտակար են, երբ չիպը կպցնում են բեկման տախտակին:

Քայլ 1. TSSOP չիպը զոդել բեկման տախտակին

Image
Image
TSSOP Chip- ը զոդում է Breakout Board- ին
TSSOP Chip- ը զոդում է Breakout Board- ին
TSSOP Chip- ը զոդում է Breakout Board- ին
TSSOP Chip- ը զոդում է Breakout Board- ին

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

Փոքր չափի պատճառով TSSOP չիպը զոդելը կարող է լինել այս ծրագրի ամենադժվար մասը, սակայն դա անելու հնարքը իմանալը դարձնում է այն խնդիր, որը յուրաքանչյուրը կարող է կատարել: Կան մի քանի տեխնիկա, ստորև մեկն այն է, ինչ ես արել եմ:

Ռազմավարությունն այն է, որ զոդումն առաջին հերթին հոսեն դեպի ճեղքման տախտակի հետքերը:

  • Մինչև հրահանգ չտալը չիպը միացրեք բեկման տախտակին:
  • Առաջին բանը, որ պետք է անել, առատաձեռն քանակությամբ հոսք դնել ճեղքման տախտակի վրա:
  • Հաջորդը, օգտագործելով ձեր եռակցման երկաթը մի փոքր եռացրեք և հոսեք այն դեպի հետքերը:
  • Putոդման վերևում դրեք մի հոսք, որը դուրս եք հոսել հետքերի վրա, ինչպես նաև չիպի ոտքերի ներքևի մասում:
  • Տեղադրեք չիպը հետքերի վերևում, որտեղ դուք պարզապես տեղադրել եք զոդում և հոսք: Պինցետները կամ ատամի խոզանակը լավ գործիքներ են ստեղծում ՝ չիպը ճշգրիտ տեղադրելու համար: Համոզվեք, որ չիպը ճիշտ հավասարեցրեք, որպեսզի բոլոր կապումներն անմիջապես հետքերից վերև լինեն: Չիփից մեկը կապում է քանդման տախտակի վրա ՝ նշելով փին մեկի համար:
  • Օգտագործելով ձեր զոդման երկաթը, տաքացրեք չիպի վերջում գտնվող կապումներից մեկը (կամ 1, 7, 8 կամ 14), սեղմելով այն հետքի մեջ: Previouslyոդիչը, որը դուք նախկինում կիրառել եք, կհալչի և կանցնի պտուկի շուրջը:

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

Բոլոր կապումներն ամրացնելուց հետո տեսանյութը առաջարկում է օգտագործել խոշորացույց ՝ ձեր կապերը հաստատելու համար: Ավելի լավ մեթոդ է շարունակականությունը ստուգելու համար մուլտիմետր օգտագործելը: Դուք պետք է մի զոնդը տեղադրեք քորոցի ոտքին, իսկ մյուսը ՝ տախտակի այն հատվածի վրա, որտեղ կպցրեք վերնագիրը (տե՛ս այս նկարի երկրորդ նկարը): Դուք նաև պետք է ստուգեք հարակից քորոցները ՝ համոզվելու համար, որ դրանք միացված չեն մի քանի կապում միասին կպցնելու պատճառով: Օրինակ, եթե հաստատում եք 4 -րդ կապը, ստուգեք նաև 3 -րդ և 5 -րդ փիները: 4 -րդ կապը պետք է ցույց տա շարունակականություն, իսկ 3 -րդ և 5 -րդ կապերը պետք է ցույց տան բաց միացում: Բացառություն է միայն այն, որ մաքրիչ P0W- ը կարող է միացում ցույց տալ P0A- ին կամ P0B- ին:

ԽՈՐՀՈՐԴՆԵՐ.

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

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

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

Դուք պետք է միացնեք Arduino- ն և Digipot- ը, ինչպես ցույց է տրված էլեկտրագծերի գծապատկերում: Օգտագործվող կապումներն հիմնված են Arduino Uno- ի դասավորության վրա: Եթե դուք օգտագործում եք այլ Arduino, տեսեք վերջին քայլը:

Քայլ 3. Ստացեք Arduino գրադարան DigiPot- ը վերահսկելու համար

Ձեռք բերելով Arduino գրադարանը DigiPot- ը վերահսկելու համար
Ձեռք բերելով Arduino գրադարանը DigiPot- ը վերահսկելու համար

Programրագրավորումը պարզեցնելու համար ես ստեղծել եմ գրադարան, որը հասանելի է Github- ում: Գնացեք github.com/gregsrabian/MCP41HVX1 ՝ MCP41HVX1 գրադարանը ձեռք բերելու համար: Դուք կցանկանաք ընտրել «Clone» կոճակը, այնուհետև ընտրել «Download Zip»: Համոզվեք, որ պահեք Zip ֆայլը այն վայրում, որտեղ դուք գիտեք, թե որտեղ է այն գտնվում: Սեղանի կամ ներլցումների թղթապանակը հարմար վայրեր են: Երբ այն ներմուծում եք Arduino IDE, կարող եք ջնջել այն ներբեռնման վայրից:

Քայլ 4. Նոր գրադարանի ներմուծում Arduino IDE- ի մեջ

Նոր գրադարանի ներմուծումը Arduino IDE- ի մեջ
Նոր գրադարանի ներմուծումը Arduino IDE- ի մեջ

Arduino IDE- ի շրջանակներում անցեք «Էսքիզ», այնուհետև ընտրեք «Ներառել գրադարանը», այնուհետև ընտրեք «Ավելացնել ZIP գրադարան..»: Նոր երկխոսության տուփ կհայտնվի, որը թույլ կտա Ձեզ ընտրել. ZIP ֆայլը, որը ներբեռնել եք GitHub- ից:

Քայլ 5. Գրադարանի օրինակներ

Գրադարանային օրինակներ
Գրադարանային օրինակներ

Նոր գրադարանը ավելացնելուց հետո կնկատեք, որ եթե գնաք «Ֆայլ», ապա ընտրեք «Օրինակներ», այնուհետև ընտրեք «Օրինակներ հարմարեցված գրադարաններից», այժմ ցուցակում կտեսնեք գրառում MCP41HVX1- ի համար: Եթե սավառնեք այդ մուտքի վրա, կտեսնեք WLAT, Wiper Control և SHDN, որոնք էսքիզների օրինակ են: Այս Instructable- ում մենք կօգտագործենք Wiper Control- ի օրինակը:

Քայլ 6: Աղբյուրի ծածկագրի ուսումնասիրություն

#ներառել «MCP41HVX1.h» // Սահմանել Arduino- ում օգտագործվող կապում#սահմանել WLAT_PIN 8 // Եթե ցածր է դրված «փոխանցել և օգտագործել»#սահմանել SHDN_PIN 9 // բարձր սահմանել ՝ դիմադրության ցանցը միացնելու համար#սահմանել CS_PIN 10 // Setածր սահմանել SPI- ի համար չիպ ընտրելու համար // Սահմանել թեստային հավելվածի համար օգտագործվող որոշ արժեքներ#define FORWARD true#define REVERSE false#define MAX_WIPER_VALUE 255 // մաքուր մաքուր մաքուր MCP41HVX1 Digipot (CS_PIN, SHDN_PIN, WLAT_PIN); անվավեր կարգավորում () { Serial.begin (9600); Serial.print ("Մեկնարկային դիրք ="); Serial.println (Digipot. WiperGetPosition ()); // Displayուցադրել սկզբնական արժեքը Serial.print ("Set Wiper Position ="); Serial.println (Digipot. WiperSetPosition (0)); // Մաքրիչի մաքրման դիրքը սահմանեք 0} void loop () {static bool bDirection = FORWARD; int nWiper = Digipot. WiperGetPosition (); // Ստացեք մաքրիչի ընթացիկ դիրքը // Որոշեք ուղղությունը: եթե (MAX_WIPER_VALUE == n Սրբիչ) {bDirection = REVERSE; } else if (0 == nWiper) {bDirection = FORWARD; } // Տեղափոխեք դիջիպոտի մաքրիչը, եթե (ԱՌԱARD == bDirection) {nWiper = Digipot. WiperIncrement (); // Ուղղությունն առաջ է Serial.print («Բարձրացում -»); } else {nWiper = Digipot. WiperDecrement (); // Ուղղությունը հետընթաց է Serial.print ("Decrement -"); } Serial.print ("Մաքրիչի դիրքը ="); Serial.println (nWiper); ուշացում (100);}

Քայլ 7: Աղբյուրի կոդը հասկանալը և ուրվագծի գործարկումը

Image
Image

Այս աղբյուրի կոդը հասանելի է Arduino IDE- ի շրջանակներում ՝ գնալով «Օրինակներ» ընտրացանկ և տեղադրելով նոր տեղադրված MCP41HVX1- ը (տես նախորդ քայլը): MCP41HVX1- ի շրջանակներում բացեք «Մաքրիչի մաքրման» օրինակը: Լավագույնն այն է, որ գրադարանի հետ ներառված ծածկագիրը օգտագործվի, եթե սխալների շտկումներ կան, դրանք կթարմացվեն:

Wiper Control- ի օրինակը ցույց է տալիս MCP41HVX1 գրադարանից հետևյալ API- ները.

  • Կոնստրուկտոր MCP41HVX1 (int nCSPin, int nSHDNPin, int nWLATPin)
  • WiperGetPosition ()
  • WiperSetPosition (բայթ byWiper)
  • WiperIncrement ()
  • WiperDecrement ()

Նմուշի կոդի ներսում համոզվեք, որ MAX_WIPER_VALUE- ը սահմանեք 127, եթե օգտագործում եք 7 բիթանոց չիպ: Կանխադրվածը 255 է, որը նախատեսված է 8 բիթանոց չիպերի համար: Եթե նմուշում փոփոխություններ կատարեք, Arduino IDE- ն կստիպի ձեզ ընտրել նախագծի նոր անուն, քանի որ դա թույլ չի տա թարմացնել օրինակի կոդը: Սա սպասված պահվածք է:

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

Էսքիզը գործարկելիս սերիական մոնիտորը թարմացվում է մաքրիչի ընթացիկ դիրքով:

Դիմադրության փոփոխությունը տեսնելու համար հարկավոր է օգտագործել բազմաչափ հաշվիչ `Օմս կարդալու համար: Տեղադրեք հաշվիչի զոնդերը P0B (pin 11) և P0W (pin 12) digipot- ի վրա `դիմումի ընթացքի ընթացքում դիմադրության փոփոխությունը տեսնելու համար: Նկատի ունեցեք, որ դիմադրության արժեքը չի իջնի մինչև զրոյի, քանի որ չիպի ներսում կա որոշակի ներքին դիմադրություն, բայց այն կմոտենա 0 օմ -ի: Ամենայն հավանականությամբ, այն նույնպես չի գնա առավելագույն արժեքի, բայց մոտ կլինի:

Տեսանյութը դիտելիս կարող եք տեսնել, որ մուլտիմետրը ցույց է տալիս, որ դիմադրությունը մեծանում է մինչև այն հասնում է առավելագույն արժեքի, իսկ հետո սկսում է նվազել: Տեսահոլովակում օգտագործվող չիպը MCP41HV51-104E/ST է, որը 8 բիթանոց չիպ է ՝ 100k ohm առավելագույն արժեքով:

Քայլ 8: Խնդիրների վերացում

Եթե ամեն ինչ այնպես չի ընթանում, ինչպես սպասվում էր, այստեղ պետք է ուշադրություն դարձնել մի քանի բաների:

  • Ստուգեք ձեր էլեկտրագծերը: Ամեն ինչ պետք է ճիշտ միացված լինի: Համոզվեք, որ օգտագործում եք էլեկտրագծերի ամբողջական դիագրամը, ինչպես նշված է սույն Հրահանգում: Գոյություն ունեն README, գրադարանի աղբյուրի կոդ և ներքևում տրված README, գրադարանի սկզբնաղբյուրում այլընտրանքային էլեկտրագծեր, բայց կառչեք վերևում նշված էլեկտրագծերի վերևում նշվածից:
  • Համոզվեք, որ ձեր թվային կաթսայի յուրաքանչյուր քորոց կպած է ջարդման տախտակին: Տեսողական ստուգման օգտագործումը բավականաչափ լավ չէ: Համոզվեք, որ ձեր բազմաչափի անընդհատության գործառույթի միջոցով հաստատում եք, որ դիջիպոտի բոլոր կապումներն էլեկտրականորեն կապված են ճեղքման տախտակին, և չկա զոդումից կապանքների խաչմերուկ, որը կարող է կամրջվել հետքերով:
  • Եթե սերիական մոնիտորը ցույց է տալիս, որ էսքիզը վարելիս մաքրող մաքրիչի դիրքը փոխվում է, բայց դիմադրության արժեքը չի փոխվում, դա ցուցիչ է, որ WLAT- ը կամ SHDN- ը պատշաճ կապ չեն հաստատում ճեղքման տախտակի կամ WLAT- ի կամ SHDN- ի ջնջիչ մաքրիչների հետ: պատշաճ կերպով կապված չեն Arduino- ի հետ:
  • Համոզվեք, որ օգտագործում եք երկրորդային սնուցման աղբյուր, որը DC է 10 -ից մինչև 36 վոլտ:
  • Համոզվեք, որ 10 -ից 36 վոլտ հզորության էլեկտրասնուցումը աշխատում է ՝ չափելով լարումը ձեր բազմիմետրով:
  • Փորձեք օգտագործել սկզբնական ուրվագիծը: Եթե որևէ փոփոխություն եք կատարել, հնարավոր է ՝ սխալ եք թույլ տվել:
  • Եթե անսարքությունների վերացման քայլերից ոչ մեկը չի օգնել փորձել մեկ այլ digipot չիպ: Հուսանք, որ դուք գնել եք մի քանիսը և դրանք միաժամանակ կպցրել TSSOP- ի ճեղքման տախտակին, այնպես որ դա պարզապես մեկը մյուսին փոխանակելու խնդիր է: Ես ունեի մի վատ չիպ, որն ինձ բավականին հիասթափություն պատճառեց, և սա շտկումն էր:

Քայլ 9. Ներքին գործեր և լրացուցիչ տեղեկություններ

Այլընտրանքային էլեկտրագծերի դիագրամ
Այլընտրանքային էլեկտրագծերի դիագրամ

Լրացուցիչ տեղեկություններ

Լրացուցիչ տեղեկություններ կարելի է գտնել MCP41HVX1 տվյալների թերթիկում:

MCP41HVX1 գրադարանի ամբողջական փաստաթղթերը հասանելի են README.md ֆայլում, որը գրադարանի ներբեռնման մի մասն է: Այս ֆայլը գրված է նշումով և կարող է դիտվել Github- ի ներսում պատշաճ ձևաչափմամբ (նայեք էջի ներքևում) կամ նշումով դիտող / խմբագրիչով:

Arduino- ի և DigiPot- ի միջև հաղորդակցություն

Arduino- ն DigiPot- ի հետ շփվում է SPI- ի միջոցով: Այն բանից հետո, երբ գրադարանը ուղարկում է մաքրիչի դիրքի հրաման, ինչպիսիք են ՝ WiperIncrement, WiperDecrement կամ WiperSetPosition, այն այնուհետև կանչում է WiperGetPosition ՝ չիպից մաքրիչի դիրքը ստանալու համար: Այս մաքրիչ հրամաններից վերադարձվող արժեքը մաքրիչի դիրքն է, ինչպես չիպը տեսնում է այն և կարող է օգտագործվել ՝ ստուգելու համար, որ մաքրիչը տեղափոխվել է սպասված վայր:

Ընդլայնված ֆունկցիոնալություն (WLAT & SHDN)

Այս առաջադեմ գործառույթները ցուցադրված չեն «Մաքրիչի մաքրում» օրինակում: Գրադարանում առկա են API- ներ ՝ WLAT և SHDN վերահսկելու համար: Գրադարանի հետ կան նաև WLAT և SHDN օրինակ էսքիզներ (նույն տեղում, ինչպես Wiper Control էսքիզը):

SHDN (անջատում)

SHDN- ն օգտագործվում է ռեզիստորների ցանցը անջատելու կամ միացնելու համար: SHDN- ի ցածր հաշմանդամների և բարձրերի սահմանումը միացնում է ռեզիստորների ցանցը: Երբ դիմադրության ցանցն անջատված է, P0A- ն (DigiPot pin 13) անջատվում է, և P0B- ն (DigiPot pin 11) միացված է P0W- ին (DigiPot pin 12): P0B- ի և P0W- ի միջև փոքր քանակությամբ դիմադրություն կլինի, այնպես որ ձեր հաշվիչը չի կարդա 0 ohms:

Եթե ձեր դիմումը SHDN- ը վերահսկելու կարիք չունի, կարող եք այն ուղղակիորեն միացնել HIGH (տես այլընտրանքային էլեկտրագծերի դիագրամ): Դուք պետք է օգտագործեք ճիշտ կոնստրուկտորը կամ MCP41HVX1_PIN_NOT_CONFIGURED- ով փոխանցեք կոնստրուկտորին `նշելու համար, որ SHDN- ը լարված է: Կարևոր է նշել, որ եթե հետևում եք օրինակին, ապա պետք է օգտագործեք էլեկտրագծերի ամբողջական դիագրամը (տե՛ս վերևի էլեկտրագծերի քայլը):

WLAT (գրել կապ)

Ներքին ճարտարապետությունը երկու բաղադրիչ է մեկ չիպի վրա: Բաղադրիչներից մեկը SDI ինտերֆեյսն է և մաքրիչ արժեքը պահող գրանցամատյանը: Մյուս բաղադրիչը ինքնին ռեզիստորների ցանցն է: WLAT- ը միացնում է երկու ներքին բաղադրիչները միասին:

Երբ WLAT- ը սահմանվում է OWԱOWՐ, ցանկացած մաքրիչ մաքրող դիրքի հրամանի տեղեկատվությունը փոխանցվում է անմիջապես ռեզիստորների ցանցին և մաքրվում է մաքրիչի դիրքը:

Եթե WLAT- ը սահմանվում է HIGH, ապա SPI- ով փոխանցված մաքրիչի դիրքի մասին տեղեկատվությունը պահվում է ներքին գրանցամատյանում, բայց չի փոխանցվում դիմադրության ցանցին, ուստի մաքրիչի դիրքը չի թարմացվի: Երբ WLAT- ը սահմանվում է LOW, արժեքը գրանցամատյանից փոխանցվում է ռեզիստորների ցանցին:

WLAT- ը օգտակար է, եթե դուք օգտագործում եք բազմաթիվ digipot, որոնք անհրաժեշտ են համաժամեցման համար: Ռազմավարությունն այն է, որ բոլոր digipot- երի վրա WLAT- ը սահմանվի HIGH, այնուհետև մաքրիչի արժեքը բոլոր չիպերի վրա: Բոլոր մաքրիչ սարքերին ուղարկվելուց հետո WLAT- ը կարող է միաժամանակ բոլոր սարքերի վրա լինել OWԱOWՐ, որպեսզի բոլորը մաքրող սարքերը միաժամանակ տեղափոխեն:

Եթե դուք վերահսկում եք միայն մեկ DigiPot- ը կամ ունեք բազմաթիվ, բայց դրանք պետք չէ համաժամանակացված պահել, ապա ամենայն հավանականությամբ, այս գործառույթը ձեզ հարկավոր չի լինի, և, հետևաբար, կարող եք WLAT- ը միացնել ուղղակիորեն LOW- ին (տես այլընտրանքային էլեկտրագծերի դիագրամ): Դուք պետք է օգտագործեք ճիշտ կոնստրուկտորը կամ MCP41HVX1_PIN_NOT_CONFIGURED- ով փոխանցեք կոնստրուկտորին `նշելու համար, որ WLAT- ը լարված է: Կարևոր է նշել, որ եթե հետևում եք օրինակին, ապա պետք է օգտագործեք էլեկտրագծերի ամբողջական դիագրամը (տե՛ս վերևի էլեկտրագծերի քայլը):

Քայլ 10. Այլընտրանքային էլեկտրագծերի դիագրամ

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

Դուք ունեք WLAT- ը digpot- ից անմիջապես LOW / GND- ին միացնելու փոխարեն `թվային կապին միանալու փոխարեն: Եթե դա անեք, ապա չեք կարողանա վերահսկել WLAT- ը: Դուք նաև հնարավորություն ունեք SHDN- ն անմիջապես թվային կապի փոխարեն միացնել HIGH- ին: Եթե դա անեք, դուք չեք կարողանա վերահսկել SHDN- ը:

WLAT- ը և SHDN- ն միմյանցից անկախ են, այնպես որ կարող եք մեկը լարով լարել, իսկ մյուսը միացնել թվային կապին, երկուսն էլ `կոշտ մետաղալարով, կամ երկուսն էլ միացնել թվային կապերին, որպեսզի դրանք վերահսկվեն: Անդրադարձեք էլեկտրագծերի այլընտրանքային գծապատկերին այն սարքերի համար, որոնք ցանկանում եք ամրացնել և վերադառնալ 2 -րդ քայլում գտնվող հիմնական էլեկտրագծերի գծապատկերին `էլեկտրագծերի կառավարելի թվային կապում:

Կոնստրուկտորներ

MCP41HVX դասում կա երեք կոնստրուկտոր: Մենք կքննարկենք դրանցից երկուսը: Նրանք բոլորը փաստաթղթավորված են README.md ֆայլում, այնպես որ, եթե երրորդ շինարարով հետաքրքրված եք, դիմեք փաստաթղթերին:

  • MCP41HVX1 (int nCSPin) - օգտագործեք այս կոնստրուկտորը միայն այն դեպքում, եթե WLAT և SHDN լարերը լարված են:
  • MCP41HVX1 (int nCSPin, int nSHDNPin, int nWLATPin) - Օգտագործեք այս կոնստրուկտորը, եթե կամ WLAT- ը, կամ SHDN- ը լարված են: Անցեք մշտական MCP41HVX1_PIN_NOT_CONFIGURED- ով, եթե քորոցը կոշտ լարով է, կամ կապի համարը, եթե այն միացված է թվային կապին:

nCSPin- ը պետք է միացված լինի թվային կապին: Անվավեր է փոխանցել MCP41HVX1_PIN_NOT_CONFIGURED կոնստրուկտորին nCSPin- ի համար:

Ի՞նչ անել, եթե Arduino Uno չեմ օգտագործում:

Arduino- ն օգտագործում է SPI- ն ՝ դիջիպոտին հաղորդակցվելու համար: SPI կապումներն են հատուկ կապում Arduino- ի տախտակին:Uno- ի SPI կապումներն են.

  • SCK - 13 -րդ կապ Uno- ի վրա, որը միացված է digipot- ի 2 -րդ կապին
  • MOSI - 11 -րդ կապ Uno- ի վրա, որը միացված է digipot- ի 4 -րդ կապին
  • MISO - 12 -րդ կապը Uno- ի վրա, որը միացված է digipot- ի 5 -ին

Եթե դուք օգտագործում եք Arduino, որը Uno չէ, ապա ձեզ հարկավոր է պարզել, թե որ քորոցն է SCK, MOSI և MISO և միացնել դրանք digipot- ին:

Էսքիզում օգտագործվող մյուս կապերը սովորական թվային կապում են, այնպես որ ցանկացած թվային կապում կաշխատի: Դուք պետք է փոփոխեք ուրվագիծը ՝ նշելու այն կապումները, որոնք ընտրում եք Arduino տախտակի վրա, որոնք օգտագործում եք: Սովորական թվային կապերն են.

  • CS - 10 -րդ կապ Uno- ում, որը միացված է digipot- ի 3 -րդ կապին (թարմացրեք CS_PIN- ը էսքիզում ՝ նոր արժեքով)
  • WLAT - 8 -րդ կապ Uno- ում, որը միացված է digipot- ի 6 -րդ կապին (թարմացրեք WLAT_PIN- ը ուրվագծում նոր արժեքով)
  • SHDN - 9 -րդ կապ Uno- ում, որը միացված է digipot- ի 7 -ին (թարմացրեք SHDN_PIN էսքիզը նոր արժեքով)

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