I2C I Arduino Sučelje

I2C I Arduino Sučelje
I2C I Arduino Sučelje

Sadržaj:

Anonim

U ovom ćemo članku pogledati što je I2C sučelje (ay-tu-si, i-two-tse), koje su njegove značajke i kako s njim raditi.

Nužno je

  • - Arduino;
  • - digitalni potenciometar AD5171;
  • - Dioda koja emitira svjetlo;
  • - otpor od 220 ohma;
  • - 2 otpora za 4,7 kOhm;
  • - spojne žice.

Upute

Korak 1

IIC protokol serijske komunikacije (također nazvan I2C - Inter-integrirani krugovi) koristi dvije dvosmjerne komunikacijske linije za prijenos podataka, nazvane SDA (serijski podaci) sabirnica i SCL (serijski sat) sabirnica. Postoje i dva dalekovoda. SDA i SCL sabirnice dovlače se do sabirnice za napajanje kroz otpornike.

U mreži postoji barem jedan Master koji inicira prijenos podataka i generira sinkronizacijske signale. Mreža također ima podređene uređaje koji prenose podatke na zahtjev gospodara. Svaki podređeni uređaj ima jedinstvenu adresu na koju mu se master obraća. Adresa uređaja navedena je u putovnici (podatkovni list). Na jednu I2C sabirnicu može se povezati do 127 uređaja, uključujući nekoliko glavnih. Uređaji se tijekom rada mogu spojiti na sabirnicu, t.j. podržava vruće uključivanje.

Korak 2

Arduino koristi dva porta za rad na I2C sučelju. Na primjer, u Arduino UNO i Arduino Nano analogni priključak A4 odgovara SDA, analogni port A5 odgovara SCL-u.

Za ostale modele ploča:

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

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

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

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

3. korak

Kako bi se olakšala razmjena podataka s uređajima putem I2C sabirnice, za Arduino je napisana standardna "Wire" knjižnica. Ima sljedeće funkcije:

start (adresa) - inicijalizacija knjižnice i povezivanje na I2C sabirnicu; ako nije navedena adresa, tada se povezani uređaj smatra glavnim; Koristi se 7-bitno adresiranje;

requestFrom () - koristi ga master da zahtijeva određeni broj bajtova od slave-a;

beginTransmission (adresa) - početak prijenosa podataka na slave uređaj na određenoj adresi;

endTransmission () - prekid prijenosa podataka na slave;

write () - pisanje podataka iz podređenog kao odgovor na zahtjev;

available () - vraća broj bajtova informacija dostupnih za primanje od podređenog uređaja;

read () - čita bajt koji se prenosi s slave na master ili s mastera na slave;

onReceive () - označava funkciju koja će se pozvati kad slave prima prijenos od master-a;

onRequest () - Označava funkciju koju treba pozvati kada master primi prijenos od slave-a.

4. korak

Pogledajmo kako raditi s I2C sabirnicom pomoću Arduina.

Prvo ćemo sastaviti sklop, kao što je prikazano na slici. Svjetlinom LED-a upravljat ćemo pomoću digitalnog potenciometra AD5171 s 64 položaja koji se spaja na I2C sabirnicu. Adresa na koju ćemo se pozvati na potenciometar je 0x2c (44 u decimalu).

Korak 5

Otvorimo sada skicu iz primjera biblioteke "Wire":

Datoteka -> Uzorci -> Žica -> digitalni_potenciometar. Učitajmo ga u Arduino memoriju. Uključimo ga.

Vidite, svjetlina LED-a ciklički raste, a onda se odjednom ugasi. U ovom slučaju, potenciometrom upravljamo pomoću Arduina preko I2C sabirnice.

Preporučeni: