Selles artiklis vaatleme, mis on I2C liides (ay-tu-si, i-two-tse), millised on selle omadused ja kuidas sellega töötada.
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.
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
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).
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.