19.01.2026

Što je I2C komunikacijski protokol

Qwiic
Inkplate
Arduino
Raspberry Pi
What is I2C communication protocol

Table of contents

Uvod Što je I2C Kako radi I2C sabirnica Adresa i identifikacija uređaja Start i Stop uvjeti Potvrdni bitovi Zašto je I2C toliko popularan Uobičajene brzine I2C sabirnice Pull-up otpornici u I2C krugovima Korištenje I2C-a na Arduinu i ESP32 Popularne I2C komponente u projektima proizvođača Rješavanje problema s I2C-om
Table of contents
Uvod Što je I2C Kako radi I2C sabirnica Adresa i identifikacija uređaja Start i Stop uvjeti Potvrdni bitovi Zašto je I2C toliko popularan Uobičajene brzine I2C sabirnice Pull-up otpornici u I2C krugovima Korištenje I2C-a na Arduinu i ESP32 Popularne I2C komponente u projektima proizvođača Rješavanje problema s I2C-om

Uvod

I2C je jedan od najčešće korištenih komunikacijskih protokola u modernoj ugrađenoj elektronici. Pojavljuje se u svemu, od malih senzorskih ploča do potrošačkih uređaja, industrijskih sustava i još mnogo toga. Budući da koristi samo dvije žice i podržava više uređaja na istoj sabirnici, I2C je postao zadani izbor za mikrokontrolere kao što su Arduino, ESP32, STM32, Raspberry Pi i mnogi drugi.

Bez obzira gradite li pametni kućni uređaj, stanicu za praćenje okoliša ili robotički projekt, razumijevanje kako I2C radi pomoći će vam u dizajniranju čišćih i pouzdanijih sklopova.

Što je I2C

I2C je skraćenica za Inter Integrated Circuit. To je sinkroni serijski komunikacijski protokol koji omogućuje digitalnim uređajima razmjenu podataka pomoću dviju zajedničkih linija:

  • SDA: Serijski podaci
  • SCL: Serijski takt

Svi uređaji na I2C sabirnici spojeni su paralelno na nju, što znači da dijele ove dvije žice. Svaki uređaj ima svoju adresu, što omogućuje jednom mikrokontroleru komunikaciju s mnogim senzorima i modulima istovremeno. To čini I2C idealnim za projekte s niskom potrošnjom energije, gdje brzina prijenosa podataka nije toliko važna, kao što su: senzorski čvorovi, kompaktne ploče, nosivi uređaji i drugo.

Kako radi I2C sabirnica

I2C sabirnica podržava više mastera i više slaveova, iako u većini projekata postoji samo jedan master. Master generira taktni signal i inicira komunikaciju. Slaveovi odgovaraju samo kada su adresirani.

Adresa i identifikacija uređaja

Većina I2C uređaja koristi 7-bitnu adresu. Neke napredne komponente koriste 10-bitno adresiranje, ali su rjeđe. Adresa identificira uređaj na zajedničkoj sabirnici. Kada master želi čitati ili pisati podatke, šalje adresu zajedno s bitom koji označava je li operacija čitanje ili pisanje.

Važno: Ako dva povezana uređaja dijele istu adresu, ne mogu pouzdano raditi na istoj sabirnici, osim ako se jedna adresa ne može promijeniti pomoću kratkospojnika ili konfiguracijskih pinova.

Start i Stop uvjeti

Svaki komunikacijski okvir počinje start uvjetom. Ovaj događaj signalizira svakom uređaju na sabirnici da počinje nova transakcija. Nakon što se adresa i podatkovni bajtovi razmijene, master šalje stop uvjet kako bi oslobodio sabirnicu.

Potvrdni bitovi

Nakon svakog prenesenog bajta, prijemni uređaj šalje potvrdni bit. To masteru daje do znanja je li podatak primljen ispravno. Ako se ne vrati potvrdni bit, master može ponoviti pokušaj ili zaustaviti komunikaciju.

Postoji nekoliko razloga zašto se proizvođači oslanjaju na korištenje I2C-a:

  • Komunikacija se ostvaruje pomoću samo dvije žice bez obzira na broj uređaja
  • Niska potrošnja energije
  • Univerzalno podržan na platformama mikrokontrolera
  • Idealno za senzore, konfiguracijske registre i kontrolu zaslona


Uobičajene brzine I2C sabirnice

I2C podržava nekoliko načina komunikacije:

  • Standardni način rada, brzina sabirnice do 100 kHz
  • Brzi način rada, brzina sabirnice do 400 kHz
  • Brzi način rada plus, brzina sabirnice do 1 MHz
  • Način visoke brzine, brzina sabirnice do 3,4 MHz

U hobi elektronici najčešći su 100 kHz i 400 kHz. Mnoge Arduino ploče po zadanoj postavci rade na 100 kHz, dok ESP32 i moderniji mikrokontroleri mogu raditi na 400 kHz ili više, ovisno o spojenom hardveru.

Pull-up otpornici u I2C krugovima

SDA i SCL linije moraju imati pull-up otpornike. Bez njih sabirnica ne može ispravno raditi. Kada uređaj šalje logičko nisko stanje, on aktivno povlači liniju prema dolje. Kada linija treba ići visoko, pull-up otpornik je vraća na logičku visoku razinu.

Tipične vrijednosti otpornika kreću se od 2,2 kOhm do 10 kOhm. Mnoge senzorske breakout ploče uključuju pull-up otpornike na PCB-u. Kada je spojeno nekoliko modula, ukupni otpor može postati prenizak, što dovodi do pogrešaka u komunikaciji. U tim slučajevima, dodatni pull-up otpornici trebaju biti uklonjeni ili onemogućeni.

Korištenje I2C-a na Arduinu i ESP32

Arduino ploče uključuju Wire biblioteku, koja pojednostavljuje komunikaciju s I2C uređajima. Biblioteka pruža funkcije za skeniranje sabirnice, očitavanje vrijednosti i slanje konfiguracijskih naredbi. Većina Arduino ploča koristi namjenske pinove za SDA i SCL.

ESP32 ploče nude dodatnu fleksibilnost jer podržavaju dvije neovisne I2C sabirnice i omogućuju prenamjenu pinova. To olakšava dizajn složenih sustava s mnogo perifernih uređaja.

BME680 senzor okoliša [link na proizvod]

LSM6DSO akcelerometar & žiroskop senzor [link na proizvod]

PCF85063A sat realnog vremena [link na proizvod]

ADS1115 16-bitni 4-kanalni ADC [link na proizvod]

SSD1306 OLED zaslon [link na proizvod]

Rješavanje problema s I2C-om

Iako se I2C smatra jednostavnim, često se mogu pojaviti neki problemi.

Pogrešne adrese

Različiti proizvođači ponekad koriste različite zadane adrese za istu vrstu senzora. Ako uređaj ne reagira, koristite I2C skener za otkrivanje njegove stvarne adrese.

Nedostajući ili prekomjerni pull-up otpornici

Ako se sabirnica ponaša nepredvidivo ili uređaji ne potvrđuju naredbe, provjerite pull-up otpornike. Više modula s ugrađenim otpornicima može previše smanjiti ukupni otpor.

Duljina kabela

I2C je namijenjen za kratke udaljenosti. Dugi kabeli dodaju kapacitet, što degradira signal. Skraćivanje žica ili smanjenje brzine komunikacije može riješiti ovaj problem.

Sukobi adresa

Ako dva modula dijele istu adresu i ne može se promijeniti, uređaji se ne mogu koristiti na istoj sabirnici. Mnoge od zalemljenih breakout ploča nude kratkospojnike za odabir adrese.

Proizvodi u ovom članku

Povezani članci

Using Qwiic devices with Raspberry Pi
Korištenje Qwiic uređaja sa Raspberry Pi platformom

Vodič za Raspberry Pi I2C s Qwiic sustavom. Pokriva potrebnu opremu, uključivanje I2C-a, spajanje BME680 senzora i SSD1306 OLED-a, instalaciju alata/biblioteka, provjeru s i2cdetect te Python primjer koji čita temperaturu i prikazuje je na OLED-u.

 

Pročitaj više
Portable GPS tracker: GNSS + OLED + Battery
Prijenosni GPS tracker: GNSS + OLED + baterija

Članak objašnjava kako radi GNSS GPS L86-M33 modul i kako ga koristiti s ESP32 mikrokontrolerom. Pokriva osnovnu inicijalizaciju uz Arduino biblioteku, čitanje i dekodiranje GNSS podataka preko UART/I2C te projekt prijenosnog GPS trackera s OLED prikazom lokacije, vremena, brzine i smjera.

Pročitaj više
What is the UART communication protocol?
Što je UART komunikacijski protokol?

Ovaj članak objašnjava što je UART, kako radi, što su baud rate i frameovi, kako funkcioniraju start, data, parity i stop bitovi te gdje se UART koristi.

Pročitaj više
What is SPI?
Što je SPI?

Članak objašnjava što je SPI komunikacijski protokol i kako funkcionira. Opisuje MOSI, MISO, SCLK i CS signale, slanje i primanje podataka, konfiguracije s više uređaja (regular i daisy-chain) te navodi prednosti, nedostatke i primjene SPI-ja.

 

Pročitaj više