Tässä artikkelissa tarkastellaan mitä I2C-käyttöliittymä (ay-tu-si, i-two-tse) on, mitkä ovat sen ominaisuudet ja miten sen kanssa työskennellä.
Se on välttämätöntä
- - Arduino;
- - digitaalinen potentiometri AD5171;
- - Valodiodi;
- - 220 ohmin vastus;
- - 2 vastusta 4,7 kOhm: lle;
- - liitäntäjohdot.
Ohjeet
Vaihe 1
IIC-sarjaliikenneprotokolla (kutsutaan myös I2C - Inter-Integrated Circuits) käyttää kahta kaksisuuntaista tiedonsiirtolinjaa tietojen siirtämiseen, nimeltään SDA (Serial Data) -väylä ja SCL (Serial Clock) -väylä. Voimajohtoja on myös kaksi. SDA- ja SCL-väylät vedetään ylös virtaväylään vastusten kautta.
Verkossa on ainakin yksi Master, joka aloittaa tiedonsiirron ja tuottaa synkronointisignaalit. Verkossa on myös orjia, jotka lähettävät tietoja isännän pyynnöstä. Jokaisella orjalaitteella on yksilöllinen osoite, jolla päällikkö osoittaa sen. Laitteen osoite ilmoitetaan passissa (tietolomake). Jopa 127 laitetta voidaan liittää yhteen I2C-väylään, mukaan lukien useita mastereita. Laitteet voidaan kytkeä väylään käytön aikana, ts. se tukee kuumaliittimiä.
Vaihe 2
Arduino käyttää kahta porttia työskennellessään I2C-käyttöliittymässä. Esimerkiksi Arduino UNO: ssa ja Arduino Nanossa analoginen portti A4 vastaa SDA: ta, analoginen portti A5 vastaa SCL: ää.
Muut levymallit:
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
Vaihe 3
Tietojen vaihdon helpottamiseksi laitteiden kanssa I2C-väylän kautta Arduinolle on kirjoitettu tavallinen "Wire" -kirjasto. Sillä on seuraavat toiminnot:
aloita (osoite) - kirjaston alustaminen ja yhteys I2C-väylään; jos osoitetta ei ole määritetty, yhdistettyä laitetta pidetään isäntänä; 7-bittistä osoitetta käytetään;
requestFrom () - isäntä käyttää pyytämään tietyn määrän tavuja orjalta;
beginTransmission (osoite) - tiedonsiirron alku orjalaitteelle tietyssä osoitteessa;
endTransmission () - tiedonsiirron lopettaminen orjalle;
write () - tietojen kirjoittaminen orjalta vastauksena pyyntöön;
käytettävissä () - palauttaa orjilta vastaanotettavien tietojen tavujen määrän;
read () - lukee tavulta, joka on siirretty orjalta isännälle tai isännältä orjalle;
onReceive () - osoittaa toiminnon, jota kutsutaan, kun orja vastaanottaa lähetyksen isännältä;
onRequest () - Ilmaisee toiminnon, joka kutsutaan, kun isäntä vastaanottaa lähetyksen orjalta.
Vaihe 4
Katsotaanpa, kuinka työskennellä I2C-väylän kanssa Arduinoa käyttämällä.
Ensin kootaan piiri, kuten kuvassa on esitetty. Valvomme LED-valon kirkkautta AD5171 64-asentoisella digitaalisella potentiometrillä, joka kytketään I2C-väylään. Osoite, jolla viitataan potentiometriin, on 0x2c (44 desimaalilla).
Vaihe 5
Nyt avataan luonnos "Wire" -kirjaston esimerkeistä:
Tiedosto -> näytteet -> lanka -> digitaalinen potentiometri. Ladataan se Arduino-muistiin. Käynnistetään se.
LED-valon kirkkaus nousee syklisesti ja sammuu sitten yhtäkkiä. Tässä tapauksessa ohjaamme potentiometriä Arduinolla I2C-väylän kautta.