Այս հոդվածում մենք կտեսնենք, թե ինչ է I2C ինտերֆեյսը (ay-tu-si, i-two-tse), որոնք են դրա առանձնահատկությունները և ինչպես աշխատել դրա հետ:
Դա անհրաժեշտ է
- - Arduino;
- - թվային պոտենցիոմետր AD5171;
- - լույս արտանետող դիոդ;
- - 220 օմ դիմադրություն;
- - 2 դիմադրություն 4,7 կոլմ-ի համար;
- - լարերը միացնող:
Հրահանգներ
Քայլ 1
IIC սերիական հաղորդակցության արձանագրությունը (կոչվում է նաև I2C - Ինտեգրացված շղթաներ) տվյալների փոխանցման համար օգտագործում է երկու երկկողմանի հաղորդակցման գծեր, որոնք կոչվում են SDA (սերիական տվյալների) ավտոբուս և SCL (սերիական ժամացույց) ավտոբուս: Գոյություն ունեն նաև երկու էլեկտրահաղորդման գծեր: SDA և SCL ավտոբուսները ռեզիստորների միջոցով ձգվում են դեպի հոսանքի ավտոբուս:
Networkանցում կա առնվազն մեկ Վարպետ, որը նախաձեռնում է տվյալների փոխանցումը և առաջացնում է համաժամացման ազդանշաններ: Անցը ունի նաև ստրուկներ, որոնք տիրոջ խնդրանքով փոխանցում են տվյալները: Յուրաքանչյուր ստրուկ սարք ունի յուրահատուկ հասցե, որի վրա վարպետը դիմում է դրան: Սարքի հասցեն նշված է անձնագրում (տվյալների թերթ): Մինչև 127 սարք կարող է միացվել մեկ I2C ավտոբուսին, ներառյալ մի քանի վարպետ: Գործարկման ընթացքում սարքերը կարող են միացված լինել ավտոբուսին, այսինքն. այն աջակցում է տաք խցանմանը:
Քայլ 2
I2C ինտերֆեյսի վրա աշխատելու համար Arduino- ն օգտագործում է երկու նավահանգիստ: Օրինակ, Arduino UNO- ում և Arduino Nano- ում A4 անալոգային պորտը համապատասխանում է SDA- ին, A5 անալոգային պորտը համապատասխանում է SCL- ին:
Տախտակի այլ մոդելների համար.
Arduino Pro և Pro Mini - A4 (SDA), A5 (SCL)
Arduino Mega - 20 (SDA), 21 (SCL)
Արդուինո Լեոնարդո - 2 (SDA), 3 (SCL)
Arduino Due - 20 (SDA), 21 (SCL), SDA1, SCL1
Քայլ 3
I2C ավտոբուսի միջոցով սարքերի հետ տվյալների փոխանակումը հեշտացնելու համար, Arduino- ի համար գրվել է «Wire» ստանդարտ գրադարան: Այն ունի հետևյալ գործառույթները.
սկիզբ (հասցե) - գրադարանի նախնականացում և միացում I2C ավտոբուսին; եթե հասցե նշված չէ, ապա միացված սարքը համարվում է վարպետ; Օգտագործվում է 7-բիթանոց հասցեագրում;
requestFrom () - օգտագործվում է վարպետի կողմից ստրուկից որոշակի թվով բայթ պահանջելու համար;
startTransmission (հասցե) - տվյալների փոխանցման սկիզբ ստրուկ սարքին որոշակի հասցեով.
endTransmission () - ստրուկին տվյալների փոխանցման դադարեցում;
գրել () - ստրուկից տվյալներ գրելը ՝ ի պատասխան հարցման;
մատչելի () - վերադարձնում է ստրուկից ստանալու համար մատչելի տեղեկատվության բայթերի քանակը;
կարդալ () - կարդալ ստրուկից տիրոջը կամ տիրոջից ստրուկին փոխանցված բայթ;
onReceive () - ցույց է տալիս այն գործառույթը, որը պետք է կանչվի, երբ ստրուկը տիրոջից փոխանցում է ստանում.
onRequest () - Նշում է մի գործառույթ, որը պետք է կանչվի, երբ տերը ստրուկից փոխանցում է ստանում:
Քայլ 4
Եկեք տեսնենք, թե ինչպես աշխատել I2C ավտոբուսի հետ ՝ օգտագործելով Arduino:
Նախ, մենք հավաքելու ենք շղթան, ինչպես ցույց է տրված նկարում: Մենք վերահսկելու ենք LED- ի պայծառությունը `օգտագործելով AD5171 64 դիրքով թվային պոտենցիոմետր, որը միանում է I2C ավտոբուսին: Հասցեն, որով մենք կանդրադառնանք պոտենցիոմետրին, 0x2c է (44 տասնորդական):
Քայլ 5
Հիմա եկեք ուրվագիծ բացենք «Մալուխ» գրադարանի օրինակներից.
Ֆայլ -> նմուշներ -> մետաղալար -> թվային_պոտենցիոմետր: Եկեք այն տեղադրենք Arduino հիշողության մեջ: Եկեք միացնենք այն:
Տեսնում եք, որ LED- ի պայծառությունը ցիկլային կերպով բարձրանում է, իսկ հետո հանկարծ մարում: Այս դեպքում մենք վերահսկում ենք պոտենցիոմետրը Arduino- ի միջոցով I2C ավտոբուսի միջոցով: