Rozhranie I2C A Arduino

Obsah:

Rozhranie I2C A Arduino
Rozhranie I2C A Arduino

Video: Rozhranie I2C A Arduino

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

V tomto článku sa pozrieme na to, čo je rozhranie I2C (ay-tu-si, i-two-tse), aké sú jeho vlastnosti a ako s ním pracovať.

Rozhranie I2c
Rozhranie I2c

Je to nevyhnutné

  • - Arduino;
  • - digitálny potenciometer AD5171;
  • - Dióda vyžarujúca svetlo;
  • - rezistor 220 ohmov;
  • - 2 odpory pre 4,7 kOhm;
  • - spojovacie vodiče.

Inštrukcie

Krok 1

Sériový komunikačný protokol IIC (tiež nazývaný I2C - Inter-Integrated Circuits) používa na prenos dát dve obojsmerné komunikačné linky, ktoré sa nazývajú zbernica SDA (Serial Data) a zbernica SCL (Serial Clock). K dispozícii sú tiež dve elektrické vedenia. Zbernice SDA a SCL sú cez odpor odpájané až k výkonovej zbernici.

V sieti je aspoň jeden Master, ktorý iniciuje prenos dát a generuje synchronizačné signály. Sieť má aj podriadené jednotky, ktoré prenášajú údaje na žiadosť nadriadeného. Každé podradené zariadenie má jedinečnú adresu, na ktorú ho adresuje hlavný server. Adresa zariadenia je uvedená v pase (údajovom liste). Na jednu I2C zbernicu je možné pripojiť až 127 zariadení, vrátane niekoľkých masterov. Zariadenia je možné pripojiť na zbernicu počas prevádzky, t.j. podporuje pripojenie za tepla.

Schéma pripojenia I2C
Schéma pripojenia I2C

Krok 2

Arduino používa na prácu na rozhraní I2C dva porty. Napríklad v Arduino UNO a Arduino Nano zodpovedá analógový port A4 SDA, analógový port A5 SCL.

Pre ostatné modely dosiek:

Arduino Pro a 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

Mapovanie pinov Arduino na zbernice SDA a SCL
Mapovanie pinov Arduino na zbernice SDA a SCL

Krok 3

Na uľahčenie výmeny údajov so zariadeniami cez zbernicu I2C je pre Arduino napísaná štandardná knižnica „Wire“. Má nasledujúce funkcie:

start (adresa) - inicializácia knižnice a pripojenie na zbernicu I2C; ak nie je zadaná adresa, potom sa pripojené zariadenie považuje za hlavné; Používa sa 7-bitové adresovanie;

requestFrom () - používa ho hlavný server na vyžiadanie určitého počtu bajtov od podradeného zariadenia;

beginTransmission (adresa) - začiatok prenosu dát do podriadeného zariadenia na konkrétnu adresu;

endTransmission () - ukončenie prenosu dát na podriadeného;

write () - zápis dát z podriadeného zariadenia ako odpoveď na požiadavku;

available () - vráti počet bajtov informácií dostupných pre príjem od podriadeného;

read () - načíta bajt prenesený z podradenej jednotky do hlavnej jednotky alebo z hlavnej jednotky do podriadenej jednotky;

onReceive () - označuje funkciu, ktorá sa má volať, keď podriadený prijíma prenos z hlavnej jednotky;

onRequest () - označuje funkciu, ktorá sa má zavolať, keď nadradený prijíma prenos od podriadeného.

Krok 4

Pozrime sa, ako pracovať so zbernicou I2C pomocou Arduina.

Najskôr zostavíme obvod, ako je to znázornené na obrázku. Jas LED budeme riadiť pomocou 64-polohového digitálneho potenciometra AD5171, ktorý sa pripája na zbernicu I2C. Adresa, na ktorú sa budeme odvolávať na potenciometer, je 0x2c (44 v desatinnej čiarke).

Ovládací obvod LED pomocou digitálneho potenciometra a Arduina
Ovládací obvod LED pomocou digitálneho potenciometra a Arduina

Krok 5

Teraz si otvoríme náčrt z príkladov knižnice „Drôt“:

File -> Samples -> Wire -> digital_potentiometer. Načítajme to do pamäte Arduino. Zapnime to.

Uvidíte, že jas LED cyklicky stúpa a potom náhle zhasne. V takom prípade ovládame potenciometer pomocou Arduina cez zbernicu I2C.

Odporúča: