Antarmuka I2C Dan Arduino

Daftar Isi:

Antarmuka I2C Dan Arduino
Antarmuka I2C Dan Arduino

Video: Antarmuka I2C Dan Arduino

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

Pada artikel ini kita akan melihat apa itu antarmuka I2C (ay-tu-si, i-two-tse), apa saja fitur-fiturnya dan bagaimana cara bekerja dengannya.

antarmuka I2c
antarmuka I2c

Itu perlu

  • -Arduino;
  • - potensiometer digital AD5171;
  • - Dioda pemancar cahaya;
  • - resistor 220 ohm;
  • - 2 resistor untuk 4,7 kOhm;
  • - kabel penghubung.

instruksi

Langkah 1

Protokol komunikasi serial IIC (juga disebut I2C - Inter-Integrated Circuits) menggunakan dua jalur komunikasi dua arah untuk mentransfer data, yang disebut bus SDA (Serial Data) dan bus SCL (Serial Clock). Ada juga dua saluran listrik. Bus SDA dan SCL ditarik ke bus daya melalui resistor.

Setidaknya ada satu Master di jaringan yang memulai transmisi data dan menghasilkan sinyal sinkronisasi. Jaringan juga memiliki budak yang mengirimkan data atas permintaan master. Setiap perangkat budak memiliki alamat unik di mana master menanganinya. Alamat perangkat ditunjukkan di paspor (lembar data). Hingga 127 perangkat dapat dihubungkan ke satu bus I2C, termasuk beberapa master. Perangkat dapat dihubungkan ke bus selama operasi, mis. mendukung hot plugging.

Diagram koneksi I2C
Diagram koneksi I2C

Langkah 2

Arduino menggunakan dua port untuk bekerja pada antarmuka I2C. Misalnya, di Arduino UNO dan Arduino Nano, port analog A4 sesuai dengan SDA, port analog A5 sesuai dengan SCL.

Untuk model papan lainnya:

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

Memetakan pin Arduino ke bus SDA dan SCL
Memetakan pin Arduino ke bus SDA dan SCL

Langkah 3

Untuk memfasilitasi pertukaran data dengan perangkat melalui bus I2C, perpustakaan "Wire" standar telah ditulis untuk Arduino. Ini memiliki fungsi sebagai berikut:

mulai (alamat) - inisialisasi perpustakaan dan koneksi ke bus I2C; jika tidak ada alamat yang ditentukan, maka perangkat yang terhubung dianggap sebagai master; pengalamatan 7-bit digunakan;

requestFrom () - digunakan oleh master untuk meminta sejumlah byte tertentu dari slave;

beginTransmission (alamat) - awal transfer data ke perangkat budak di alamat tertentu;

endTransmission () - penghentian transmisi data ke slave;

tulis () - menulis data dari budak sebagai tanggapan atas permintaan;

tersedia () - mengembalikan jumlah byte informasi yang tersedia untuk diterima dari budak;

read () - membaca byte yang ditransfer dari slave ke master atau dari master ke slave;

onReceive () - menunjukkan fungsi yang akan dipanggil ketika budak menerima transmisi dari master;

onRequest () - Menunjukkan fungsi yang akan dipanggil saat master menerima transmisi dari slave.

Langkah 4

Mari kita lihat cara bekerja dengan bus I2C menggunakan Arduino.

Pertama, kita akan merakit sirkuit, seperti yang ditunjukkan pada gambar. Kami akan mengontrol kecerahan LED menggunakan potensiometer digital 64-posisi AD5171, yang terhubung ke bus I2C. Alamat di mana kita akan merujuk ke potensiometer adalah 0x2c (44 dalam desimal).

Rangkaian kontrol LED menggunakan potensiometer digital dan Arduino
Rangkaian kontrol LED menggunakan potensiometer digital dan Arduino

Langkah 5

Sekarang mari kita buka sketsa dari contoh library "Wire":

File -> Sampel -> Kawat -> digital_potentiometer. Mari kita memuatnya ke dalam memori Arduino. Mari kita hidupkan.

Anda lihat, kecerahan LED naik secara siklis, dan kemudian tiba-tiba padam. Dalam hal ini, kami mengontrol potensiometer menggunakan Arduino melalui bus I2C.

Direkomendasikan: