I2C I Arduino Sučelje

Sadržaj:

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

Video: I2C I Arduino Sučelje

Video: I2C I Arduino Sučelje
Video: Видеоуроки по Arduino. I2C и processing (7-я серия, ч1) 2024, Svibanj
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.

I2c sučelje
I2c sučelje

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.

Dijagram povezivanja I2C
Dijagram povezivanja I2C

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

Mapiranje Arduino pribadača na SDA i SCL sabirnice
Mapiranje Arduino pribadača na SDA i SCL sabirnice

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

LED upravljački krug koji koristi digitalni potenciometar i Arduino
LED upravljački krug koji koristi digitalni potenciometar i Arduino

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: