I2C Un Arduino Saskarne

Satura rādītājs:

I2C Un Arduino Saskarne
I2C Un Arduino Saskarne

Video: I2C Un Arduino Saskarne

Video: I2C Un Arduino Saskarne
Video: I2C Часть 1 - Использование 2 Arduinos 2024, Maijs
Anonim

Šajā rakstā mēs apskatīsim, kas ir I2C interfeiss (ay-tu-si, i-two-tse), kādas ir tā funkcijas un kā ar to strādāt.

I2c saskarne
I2c saskarne

Tas ir nepieciešams

  • - Arduino;
  • - digitālais potenciometrs AD5171;
  • - Gaismas diode;
  • - 220 omu rezistors;
  • - 2 rezistori par 4,7 kOhm;
  • - savienojošie vadi.

Instrukcijas

1. solis

IIC sērijas sakaru protokols (saukts arī par I2C - savstarpēji integrētām shēmām) datu pārsūtīšanai izmanto divas divvirzienu sakaru līnijas, sauktas par SDA (Serial Data) kopni un SCL (Serial Clock) kopni. Ir arī divas elektropārvades līnijas. Caur rezistoriem SDA un SCL kopnes tiek pievilktas līdz strāvas kopnei.

Tīklā ir vismaz viens Master, kas sāk datu pārraidi un ģenerē sinhronizācijas signālus. Tīklam ir arī vergi, kas pārraida datus pēc kapteiņa pieprasījuma. Katrai vergu ierīcei ir unikāla adrese, kurā kapteinis to adresē. Ierīces adrese ir norādīta pasē (datu lapā). Vienai I2C kopnei var pieslēgt līdz 127 ierīcēm, ieskaitot vairākus galvenos. Darbības laikā ierīces var savienot ar kopni, t.i. tas atbalsta karsto pieslēgšanu.

I2C pieslēguma shēma
I2C pieslēguma shēma

2. solis

Lai strādātu pie I2C saskarnes, Arduino izmanto divas ostas. Piemēram, Arduino UNO un Arduino Nano analogais ports A4 atbilst SDA, analogais ports A5 - SCL.

Citiem dēļu modeļiem:

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

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

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

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

Arduino tapu kartēšana ar SDA un SCL autobusiem
Arduino tapu kartēšana ar SDA un SCL autobusiem

3. solis

Lai atvieglotu datu apmaiņu ar ierīcēm, izmantojot I2C kopni, Arduino ir uzrakstīta standarta "Wire" bibliotēka. Tam ir šādas funkcijas:

sākt (adrese) - bibliotēkas inicializēšana un savienojums ar I2C kopni; ja adrese nav norādīta, pievienotā ierīce tiek uzskatīta par galveno; Tiek izmantota 7 bitu adresēšana;

requestFrom () - izmanto kapteinis, lai pieprasītu no verga noteiktu baitu skaitu;

startTransmission (adrese) - datu pārsūtīšanas sākums uz vergu ierīci noteiktā adresē;

endTransmission () - datu pārraides pārtraukšana vergam;

write () - datu rakstīšana no verga, atbildot uz pieprasījumu;

pieejams () - atgriež pieejamo informācijas baitu skaitu, kas pieejams no verga;

lasīt () - nolasīt baitu, kas pārsūtīts no verga saimniekam vai no kapteiņa vergam;

onReceive () - norāda funkciju, kas jāizsauc, kad vergs saņem pārraidi no kapteiņa;

onRequest () - norāda funkciju, kas jāizsauc, kad kapteinis saņem pārraidi no verga.

4. solis

Apskatīsim, kā strādāt ar I2C autobusu, izmantojot Arduino.

Pirmkārt, mēs samontēsim ķēdi, kā parādīts attēlā. LED spilgtumu kontrolēsim, izmantojot AD5171 64 pozīciju digitālo potenciometru, kas savienojas ar I2C kopni. Adrese, kurā norādīsim potenciometru, ir 0x2c (44 aiz komata).

LED vadības ķēde, izmantojot digitālo potenciometru un Arduino
LED vadības ķēde, izmantojot digitālo potenciometru un Arduino

5. solis

Tagad atvērsim skici no bibliotēkas "Wire" piemēriem:

Fails -> paraugi -> vads -> digitālais potenciometrs. Ielādēsim to Arduino atmiņā. Ieslēdzam.

Redzi, gaismas diodes spilgtums cikliski palielinās un pēkšņi nodziest. Šajā gadījumā mēs kontrolējam potenciometru, izmantojot Arduino, izmantojot I2C kopni.

Ieteicams: