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, Maj
Anonim

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

I2c sučelje
I2c sučelje

Neophodno je

  • - Arduino;
  • - digitalni potenciometar AD5171;
  • - dioda koja emituje svjetlost;
  • - otpornik 220 ohma;
  • - 2 otpornika za 4,7 kOhm;
  • - spojne žice.

Instrukcije

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 se preko otpornika izvlače do sabirnice za napajanje.

U mreži postoji barem jedan Master koji inicira prenos podataka i generira sinhronizacijske signale. Mreža takođe ima podređene uređaje koji prenose podatke na zahtjev master-a. Svaki podređeni uređaj ima jedinstvenu adresu na koju mu se master obraća. Adresa uređaja navedena je u pasošu (tablica podataka). Na jednu I2C sabirnicu može se povezati do 127 uređaja, uključujući nekoliko glavnih. Uređaji se tokom rada mogu povezati na sabirnicu, tj. 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 port 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 pinova na SDA i SCL sabirnice
Mapiranje Arduino pinova na SDA i SCL sabirnice

Korak 3

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

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

requestFrom () - koristi ga master za traženje određenog broja bajtova od pomoćnog uređaja;

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 prebačen sa slave na master ili s master na slave;

onReceive () - označava funkciju koju treba pozvati kada slave prima prijenos od master-a;

onRequest () - Označava funkciju koju treba pozvati kada master primi prijenos od podređenog uređaja.

Korak 4

Pogledajmo kako raditi sa I2C sabirnicom koristeći Arduino.

Prvo ćemo sastaviti sklop, kao što je prikazano na slici. Kontrolirati ćemo svjetlinu LED diode pomoću AD5171 64-pozicijskog digitalnog potenciometra, 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 zatim se naglo gasi. U ovom slučaju, potenciometrom upravljamo pomoću Arduina preko I2C sabirnice.

Preporučuje se: