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 Uvjeti pokretanja i zaustavljanja Bitovi potvrde 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 maker projektima Rješavanje problema s I2C-om
Table of contents
Uvod Što je I2C Kako radi I2C sabirnica Adresa i identifikacija uređaja Uvjeti pokretanja i zaustavljanja Bitovi potvrde 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 maker projektima 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 razvodnih 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 robotski projekt, razumijevanje načina rada I2C-a pomoći će vam u dizajniranju čišćih i pouzdanijih sklopova.

Što je I2C

I2C je kratica za Inter Integrated Circuit (Inter integrirani krug) . To je sinkroni serijski komunikacijski protokol koji omogućuje digitalnim uređajima razmjenu podataka putem dvije zajedničke linije:

  • SDA: Serijski podaci
  • SCL: Serijski takt

Svi uređaji na I2C sabirnici spojeni su paralelno s njom, što znači da dijele ove dvije žice. Svaki uređaj ima svoju adresu, što omogućuje jednom mikrokontroleru komunikaciju s mnogo senzora i modula odjednom. Zbog toga je I2C idealan za projekte male snage gdje brzina prijenosa podataka nije toliko važna, kao što su: senzorska čvorišta, kompaktne ploče, nosivi uređaji i drugo.

Kako radi I2C sabirnica

I2C sabirnica podržava više glavnih i više podređenih uređaja, iako u većini projekata postoji samo jedan glavni uređaj. Glavni uređaj generira taktni signal i inicira komunikaciju. Podređeni uređaji 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 one su rjeđe. Adresa identificira uređaj na dijeljenoj sabirnici. Kada glavni uređaj ž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.

Uvjeti pokretanja i zaustavljanja

Svaki komunikacijski okvir započinje uvjetom početka. Ovaj događaj signalizira svakom uređaju na sabirnici da počinje nova transakcija. Nakon što se izmijene bajtovi adrese i podataka, glavni uređaj šalje uvjet zaustavljanja kako bi oslobodio sabirnicu.

Bitovi potvrde

Nakon svakog poslanog bajta, prijemni uređaj šalje bit potvrde. To obavještava glavnog uređaja jesu li podaci ispravno primljeni. Ako se ne vrati bit potvrde, glavni uređaj može ponovno pokušati ili prekinuti komunikaciju.

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

  • Komunikacija se ostvaruje korištenjem samo dvije žice bez obzira na broj uređaja
  • Niska potrošnja energije
  • Univerzalno podržano na svim platformama mikrokontrolera
  • Idealno za senzore, konfiguracijske registre i upravljanje zaslonom


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 rada velike brzine, brzina sabirnice do 3,4 MHz

U hobi elektronici, 100 kHz i 400 kHz su najčešći. Mnoge Arduino ploče imaju zadano 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čki nisko stanje, on aktivno povlači liniju prema dolje. Kada linija treba prijeći na visoku razinu, pull-up otpornik je vraća na visoku logičku razinu.

Tipične vrijednosti otpornika kreću se od 2,2 kOhm do 10 kOhm. Mnoge ploče s razdjelnim vratilima senzora uključuju pull-up kontakte na tiskanoj ploči. Kada je spojeno nekoliko modula, ukupni otpor može postati prenizak, što dovodi do komunikacijskih pogrešaka. U tim slučajevima, dodatne pull-up kontakte treba ukloniti ili onemogućiti.

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, čitanje 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 preraspodjelu pinova. To olakšava dizajniranje složenih sustava s mnogo perifernih uređaja.

BME680 senzor okoliša [link na proizvod]

LSM6DSO akcelerometar i žiroskopski 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, nekoliko problema se može često pojaviti.

Netočne adrese

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

Nedostatak ili prekomjeran broj zgibova

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

Duljina kabela

I2C je namijenjen za kratke udaljenosti. Dugi kabeli dodaju kapacitet, što degradira signal. Kratke žice ili smanjenje brzine komunikacije mogu riješiti ovaj problem.

Sukobi u adresiranju

Ako dva modula dijele istu adresu i ona se ne može promijeniti, uređaji se ne mogu koristiti na istoj sabirnici. Mnoge lemljene razvodne ploče nude lemne 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