I2C Ja Arduino Liides

Sisukord:

I2C Ja Arduino Liides
I2C Ja Arduino Liides

Video: I2C Ja Arduino Liides

Video: I2C Ja Arduino Liides
Video: Видеоуроки по Arduino. I2C и processing (7-я серия, ч1) 2024, Mai
Anonim

Selles artiklis vaatleme, mis on I2C liides (ay-tu-si, i-two-tse), millised on selle omadused ja kuidas sellega töötada.

I2c liides
I2c liides

See on vajalik

  • - Arduino;
  • - digitaalne potentsiomeeter AD5171;
  • - Valgusdiood;
  • - takisti 220 oomi;
  • - 2 takistit 4,7 kOhm jaoks;
  • - juhtmete ühendamine.

Juhised

Samm 1

IIC jadasideprotokoll (nimetatakse ka I2C - integreeritud vooluringid) kasutab andmete edastamiseks kahte kahesuunalist sideliini, mida nimetatakse SDA (Serial Data) siiniks ja SCL (Serial Clock) siiniks. Samuti on kaks elektriliini. SDA ja SCL siinid tõmmatakse läbi takistite läbi toitebussi.

Võrgus on vähemalt üks Master, kes algatab andmeedastuse ja genereerib sünkroonimissignaale. Võrgus on ka orje, mis edastavad andmeid ülema taotlusel. Igal orjaseadmel on ainulaadne aadress, millele kapten selle adresseerib. Seadme aadress on märgitud passis (andmelehel). Ühe I2C siiniga saab ühendada kuni 127 seadet, sealhulgas mitu masterit. Seadmeid saab bussi külge ühendada töötamise ajal, s.t. see toetab kuuma ühendamist.

I2C ühendusskeem
I2C ühendusskeem

2. samm

Arduino kasutab I2C liidese töötamiseks kahte porti. Näiteks Arduino UNO ja Arduino Nano puhul vastab analoogport A4 SDA-le, analoogport A5 SCL-le.

Muude plaadimudelite puhul:

Arduino Pro ja Pro Mini - A4 (SDA), A5 (SCL)

Arduino Mega - 20 (SDA), 21 (SCL)

Arduino Leonardo - 2 (SDA), 3 (SCL)

Arduino Due - 20 (SDA), 21 (SCL), SDA1, SCL1

Arduino tihvtide kaardistamine SDA ja SCL bussidele
Arduino tihvtide kaardistamine SDA ja SCL bussidele

3. samm

I2C siini kaudu seadmetega andmete vahetamise hõlbustamiseks on Arduino jaoks kirjutatud standardne "Wire" teek. Sellel on järgmised funktsioonid:

start (aadress) - teegi initsialiseerimine ja ühendus I2C siiniga; kui aadressi pole määratud, loetakse ühendatud seadmeks master; Kasutatakse 7-bitist adresseerimist;

requestFrom () - kasutab kapten orjalt teatud arvu baite;

startTransmission (aadress) - andmeedastuse algus orjaseadmesse kindlal aadressil;

endTransmission () - andmeedastuse lõpetamine orjale;

write () - andmete kirjutamine orjalt vastuseks päringule;

available () - tagastab orjalt vastuvõetava teabe kättesaadavate baitide arvu;

loe () - loe orjalt peremehele või peremehelt orjale üle kantud bait;

onReceive () - näitab funktsiooni, mida tuleb kutsuda, kui ori saab masterilt ülekande;

onRequest () - näitab funktsiooni, mida tuleb kutsuda, kui juht saab orjalt ülekande.

4. samm

Vaatame, kuidas töötada I2C bussiga Arduino abil.

Esiteks paneme ahela kokku, nagu on näidatud joonisel. LED-i heledust kontrollime 64-positsioonilise digitaalse potentsiomeetri AD5171 abil, mis ühendub I2C siiniga. Aadress, millele potentsiomeetrile viitame, on 0x2c (44 kümnendkohaga).

LED-juhtimisahel digitaalse potentsiomeetri ja Arduino abil
LED-juhtimisahel digitaalse potentsiomeetri ja Arduino abil

5. samm

Nüüd avame visandi teegi "Traat" näidetest:

Fail -> proovid -> traat -> digitaalne potentsiomeeter. Laadime selle Arduino mällu. Lülitame selle sisse.

Näete, valgusdioodi heledus tõuseb tsükliliselt ja kustub siis äkki. Sellisel juhul kontrollime potentsiomeetrit Arduino abil I2C siini kaudu.

Soovitan: