I2C և Arduino ինտերֆեյս

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

I2C և Arduino ինտերֆեյս
I2C և Arduino ինտերֆեյս

Video: I2C և Arduino ինտերֆեյս

Video: I2C և Arduino ինտերֆեյս
Video: Видеоуроки по Arduino. I2C и processing (7-я серия, ч1) 2024, Մայիս
Anonim

Այս հոդվածում մենք կտեսնենք, թե ինչ է I2C ինտերֆեյսը (ay-tu-si, i-two-tse), որոնք են դրա առանձնահատկությունները և ինչպես աշխատել դրա հետ:

I2c ինտերֆեյս
I2c ինտերֆեյս

Դա անհրաժեշտ է

  • - Arduino;
  • - թվային պոտենցիոմետր AD5171;
  • - լույս արտանետող դիոդ;
  • - 220 օմ դիմադրություն;
  • - 2 դիմադրություն 4,7 կոլմ-ի համար;
  • - լարերը միացնող:

Հրահանգներ

Քայլ 1

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

Networkանցում կա առնվազն մեկ Վարպետ, որը նախաձեռնում է տվյալների փոխանցումը և առաջացնում է համաժամացման ազդանշաններ: Անցը ունի նաև ստրուկներ, որոնք տիրոջ խնդրանքով փոխանցում են տվյալները: Յուրաքանչյուր ստրուկ սարք ունի յուրահատուկ հասցե, որի վրա վարպետը դիմում է դրան: Սարքի հասցեն նշված է անձնագրում (տվյալների թերթ): Մինչև 127 սարք կարող է միացվել մեկ I2C ավտոբուսին, ներառյալ մի քանի վարպետ: Գործարկման ընթացքում սարքերը կարող են միացված լինել ավտոբուսին, այսինքն. այն աջակցում է տաք խցանմանը:

I2C կապի դիագրամ
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

Arduino- ի քորոցների քարտեզագրում SDA և SCL ավտոբուսների վրա
Arduino- ի քորոցների քարտեզագրում SDA և SCL ավտոբուսների վրա

Քայլ 3

I2C ավտոբուսի միջոցով սարքերի հետ տվյալների փոխանակումը հեշտացնելու համար, Arduino- ի համար գրվել է «Wire» ստանդարտ գրադարան: Այն ունի հետևյալ գործառույթները.

սկիզբ (հասցե) - գրադարանի նախնականացում և միացում I2C ավտոբուսին; եթե հասցե նշված չէ, ապա միացված սարքը համարվում է վարպետ; Օգտագործվում է 7-բիթանոց հասցեագրում;

requestFrom () - օգտագործվում է վարպետի կողմից ստրուկից որոշակի թվով բայթ պահանջելու համար;

startTransmission (հասցե) - տվյալների փոխանցման սկիզբ ստրուկ սարքին որոշակի հասցեով.

endTransmission () - ստրուկին տվյալների փոխանցման դադարեցում;

գրել () - ստրուկից տվյալներ գրելը ՝ ի պատասխան հարցման;

մատչելի () - վերադարձնում է ստրուկից ստանալու համար մատչելի տեղեկատվության բայթերի քանակը;

կարդալ () - կարդալ ստրուկից տիրոջը կամ տիրոջից ստրուկին փոխանցված բայթ;

onReceive () - ցույց է տալիս այն գործառույթը, որը պետք է կանչվի, երբ ստրուկը տիրոջից փոխանցում է ստանում.

onRequest () - Նշում է մի գործառույթ, որը պետք է կանչվի, երբ տերը ստրուկից փոխանցում է ստանում:

Քայլ 4

Եկեք տեսնենք, թե ինչպես աշխատել I2C ավտոբուսի հետ ՝ օգտագործելով Arduino:

Նախ, մենք հավաքելու ենք շղթան, ինչպես ցույց է տրված նկարում: Մենք վերահսկելու ենք LED- ի պայծառությունը `օգտագործելով AD5171 64 դիրքով թվային պոտենցիոմետր, որը միանում է I2C ավտոբուսին: Հասցեն, որով մենք կանդրադառնանք պոտենցիոմետրին, 0x2c է (44 տասնորդական):

LED հսկիչ շղթա ՝ թվային պոտենցիոմետրի և Arduino– ի միջոցով
LED հսկիչ շղթա ՝ թվային պոտենցիոմետրի և Arduino– ի միջոցով

Քայլ 5

Հիմա եկեք ուրվագիծ բացենք «Մալուխ» գրադարանի օրինակներից.

Ֆայլ -> նմուշներ -> մետաղալար -> թվային_պոտենցիոմետր: Եկեք այն տեղադրենք Arduino հիշողության մեջ: Եկեք միացնենք այն:

Տեսնում եք, որ LED- ի պայծառությունը ցիկլային կերպով բարձրանում է, իսկ հետո հանկարծ մարում: Այս դեպքում մենք վերահսկում ենք պոտենցիոմետրը Arduino- ի միջոցով I2C ավտոբուսի միջոցով:

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