I2C In Arduino Vmesnik

Kazalo:

I2C In Arduino Vmesnik
I2C In Arduino Vmesnik

Video: I2C In Arduino Vmesnik

Video: I2C In Arduino Vmesnik
Video: Видеоуроки по Arduino. I2C и processing (7-я серия, ч1) 2024, Maj
Anonim

V tem članku bomo preučili, kaj je vmesnik I2C (ay-tu-si, i-two-tse), kakšne so njegove značilnosti in kako delati z njim.

I2c vmesnik
I2c vmesnik

Potrebno je

  • - Arduino;
  • - digitalni potenciometer AD5171;
  • - Svetleča dioda;
  • - 220 ohmski upor;
  • - 2 upora za 4,7 kOhm;
  • - priključne žice.

Navodila

Korak 1

Protokol serijske komunikacije IIC (imenovan tudi I2C - Inter-Integrated Circuits) uporablja dve dvosmerni komunikacijski liniji za prenos podatkov, ki se imenuje vodilo SDA (serijski podatki) in vodilo SCL (serijska ura). Obstajata tudi dva daljnovoda. Vodila SDA in SCL se prek uporov potegnejo do napajalnega vodila.

V omrežju je vsaj en mojster, ki sproži prenos podatkov in generira sinhronizacijske signale. V omrežju so tudi podrejeni, ki prenašajo podatke na zahtevo poveljnika. Vsaka podrejena naprava ima edinstven naslov, na katerega jo naslovi glavni. Naslov naprave je naveden v potnem listu (podatkovni list). Na eno vodilo I2C je mogoče povezati do 127 naprav, vključno z več glavnimi enotami. Naprave je mogoče med delovanjem priključiti na vodilo, t.j. podpira vročo priključitev.

Shema povezave I2C
Shema povezave I2C

2. korak

Arduino za delo na vmesniku I2C uporablja dve vrati. Na primer, v Arduino UNO in Arduino Nano analogna vrata A4 ustrezajo SDA, analogna vrata A5 pa SCL.

Za druge modele plošč:

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

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

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

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

Preslikava zatičev Arduino na vodila SDA in SCL
Preslikava zatičev Arduino na vodila SDA in SCL

3. korak

Za lažjo izmenjavo podatkov z napravami prek vodila I2C je za Arduino napisana standardna knjižnica "Wire". Ima naslednje funkcije:

start (naslov) - inicializacija knjižnice in povezava z vodilom I2C; če ni naveden noben naslov, se priključena naprava šteje za glavno; Uporablja se 7-bitno naslavljanje;

requestFrom () - uporablja ga poveljnik, da od podrejenega zahteva določeno število bajtov;

beginTransmission (naslov) - začetek prenosa podatkov v podrejeno napravo na določen naslov;

endTransmission () - zaključek prenosa podatkov na pomožni sistem;

write () - zapisovanje podatkov iz podrejenega kot odgovor na zahtevo;

available () - vrne število bajtov informacij, ki so na voljo za sprejem od podrejenega;

read () - prebere bajt, ki je prenesen iz pomožnega v glavnega ali iz glavnega v pomožni;

onReceive () - označuje funkcijo, ki jo je treba poklicati, ko podrejeni prejme prenos od glavne enote;

onRequest () - Označuje funkcijo, ki jo je treba poklicati, ko poveljnik prejme prenos od pomožnega.

4. korak

Poglejmo, kako delati z vodilom I2C z uporabo Arduina.

Najprej bomo sestavili vezje, kot je prikazano na sliki. Svetlost LED bomo nadzorovali z digitalnim potenciometrom AD5171 s 64 položaji, ki se poveže z vodilom I2C. Naslov, na katerega se bomo sklicevali na potenciometer, je 0x2c (44 v decimalnih mestih).

Krmilno vezje LED z digitalnim potenciometrom in Arduino
Krmilno vezje LED z digitalnim potenciometrom in Arduino

5. korak

Zdaj pa odprimo skico iz primerov knjižnice "Wire":

Datoteka -> Vzorci -> Žica -> digitalni potenciometer. Naložimo ga v spomin Arduino. Vklopimo ga.

Veste, svetlost LED se ciklično dvigne in nato nenadoma ugasne. V tem primeru potenciometer nadzorujemo z uporabo Arduina prek vodila I2C.

Priporočena: