I2C- Ja Arduino-käyttöliittymä

Sisällysluettelo:

I2C- Ja Arduino-käyttöliittymä
I2C- Ja Arduino-käyttöliittymä

Video: I2C- Ja Arduino-käyttöliittymä

Video: I2C- Ja Arduino-käyttöliittymä
Video: How I2C Communication Works and How To Use It with Arduino 2024, Marraskuu
Anonim

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ä.

I2c-liitäntä
I2c-liitäntä

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ä.

I2C-kytkentäkaavio
I2C-kytkentäkaavio

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

Arduino-nastojen kartoitus SDA- ja SCL-väyliin
Arduino-nastojen kartoitus SDA- ja SCL-väyliin

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).

LED-ohjauspiiri digitaalisella potentiometrillä ja Arduinolla
LED-ohjauspiiri digitaalisella potentiometrillä ja Arduinolla

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.

Suositeltava: