I2C Və Arduino Interfeysi

Mündəricat:

I2C Və Arduino Interfeysi
I2C Və Arduino Interfeysi

Video: I2C Və Arduino Interfeysi

Video: I2C Və Arduino Interfeysi
Video: Видеоуроки по Arduino. I2C и processing (7-я серия, ч1) 2024, Noyabr
Anonim

Bu yazıda bir I2C interfeysinin (ay-tu-si, i-two-tse) nə olduğunu, xüsusiyyətləri nə olduğunu və onunla necə işləyəcəyini araşdıracağıq.

I2c interfeysi
I2c interfeysi

Vacibdir

  • - Arduino;
  • - rəqəmsal potensiometr AD5171;
  • - İşıq yayan diod;
  • - 220 ohm müqavimət;
  • - 4,7 kOhm üçün 2 rezistor;
  • - birləşdirici tellər.

Təlimat

Addım 1

IIC serial rabitə protokolu (I2C - İnteqrasiyalı Dövrlər də adlanır) məlumat ötürmək üçün SDA (Serial Data) avtobusu və SCL (Serial Clock) avtobusu adlanan iki istiqamətli rabitə xəttindən istifadə edir. İki elektrik xətti də var. SDA və SCL avtobusları rezistorlar vasitəsilə güc avtobusuna çəkilir.

Şəbəkədə məlumat ötürülməsini başlatan və sinxronizasiya siqnalları yaradan ən azı bir Master var. Şəbəkədə usta istəyi ilə məlumat ötürən kölələr də var. Hər qul cihazının, masterin müraciət etdiyi bənzərsiz bir ünvanı var. Cihazın ünvanı pasportda (məlumat səhifəsi) göstərilir. Bir neçə magistr daxil olmaqla bir I2C avtobusuna 127-ə qədər cihaz qoşula bilər. Cihazlar iş zamanı avtobusa qoşula bilər, yəni. isti takmağı dəstəkləyir.

I2C əlaqə diaqramı
I2C əlaqə diaqramı

Addım 2

Arduino, I2C interfeysi üzərində işləmək üçün iki limandan istifadə edir. Məsələn, Arduino UNO və Arduino Nano'da A4 analog portu SDA'ya, A5 analog portu SCL'ye uyğundur.

Digər taxta modelləri üçün:

Arduino Pro və 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 sancaqlarının SDA və SCL avtobuslarına uyğunlaşdırılması
Arduino sancaqlarının SDA və SCL avtobuslarına uyğunlaşdırılması

Addım 3

I2C avtobusu vasitəsilə cihazlarla məlumat mübadiləsini asanlaşdırmaq üçün Arduino üçün standart "Tel" kitabxanası yazılmışdır. Aşağıdakı funksiyalara malikdir:

başlayın (ünvan) - kitabxananın işə salınması və I2C avtobusuna qoşulma; bir ünvan göstərilməyibsə, bağlı cihaz əsas hesab olunur; 7 bit ünvanlama istifadə olunur;

requestFrom () - kölədən müəyyən sayda bayt tələb etmək üçün usta tərəfindən istifadə olunur;

beginTransmission (adres) - müəyyən bir ünvanda qul cihazına məlumat ötürülməsinin başlanğıcı;

endTransmission () - qula məlumat ötürülməsinin dayandırılması;

write () - sorğuya cavab olaraq kölədən məlumatlar yazmaq;

mövcuddur () - kölədən almaq üçün mövcud məlumatların sayını qaytarır;

oxu () - köldən ağaya və ya ağadan köləyə köçürülmüş bir bayt oxuyun;

onReceive () - kölə ağadan ötürmə alanda çağırılacaq funksiyanı göstərir;

onRequest () - Master quldan bir ötürmə aldıqda çağırılacaq bir funksiyanı göstərir.

Addım 4

Arduino istifadə edərək I2C avtobusu ilə necə işləyəcəyimizi görək.

Əvvəlcə şəkildə göstərildiyi kimi dövrəni yığacağıq. I2C avtobusuna qoşulan AD5171 64 mövqeli rəqəmsal potensiometrdən istifadə edərək LED-in parlaqlığını idarə edəcəyik. Potansiyometrə müraciət edəcəyimiz ünvan 0x2c (ondalık olaraq 44) -dir.

Rəqəmsal potansiyometr və Arduino istifadə edərək LED nəzarət dövrəsi
Rəqəmsal potansiyometr və Arduino istifadə edərək LED nəzarət dövrəsi

Addım 5

İndi "Tel" kitabxana nümunələrindən bir eskiz açaq:

Fayl -> Nümunələr -> Tel -> rəqəmsal_potansiyometr. Arduino yaddaşına yükləyək. Gəlin açaq.

Görürsən ki, LED-in parlaqlığı dövri olaraq yüksəlir və birdən sönür. Bu vəziyyətdə, I2C avtobusu vasitəsilə Arduinodan istifadə edərək potansiyometreyi idarə edirik.

Tövsiyə: