I2C және Arduino интерфейсі

Мазмұны:

I2C және Arduino интерфейсі
I2C және Arduino интерфейсі

Бейне: I2C және Arduino интерфейсі

Бейне: I2C және Arduino интерфейсі
Бейне: Видеоуроки по Arduino. I2C и processing (7-я серия, ч1) 2024, Мамыр
Anonim

Бұл мақалада біз I2C интерфейсі (ay-tu-si, i-two-tse) дегеніміз не, оның қандай ерекшеліктері бар және онымен қалай жұмыс істеу керектігін қарастырамыз.

I2c интерфейсі
I2c интерфейсі

Бұл қажетті

  • - Ардуино;
  • - сандық потенциометр AD5171;
  • - жарық шығаратын диод;
  • - 220 ом резистор;
  • - 4,7 кОм үшін 2 резистор;
  • - сымдарды қосу.

Нұсқаулық

1-қадам

IIC сериялық байланыс протоколы (I2C - интегралды схемалар деп те аталады) SDA (Serial Data) шинасы және SCL (Serial Clock) шинасы деп аталатын деректерді беру үшін екі бағытты байланыс желісін қолданады. Екі электр желісі де бар. SDA және SCL автобустары резисторлар арқылы қуат шинасына тартылады.

Желіде деректерді жіберуді бастайтын және синхрондау сигналдарын шығаратын кем дегенде бір Мастер бар. Сондай-ақ, желіде шебердің сұрауы бойынша деректерді жіберетін құлдар бар. Әрбір құл құрылғысының басты мекен-жайы бар ерекше мекен-жайы болады. Құрылғының мекен-жайы төлқұжатта (деректер кестесінде) көрсетілген. Бір I2C шинасына 127-ге дейін құрылғыларды қосуға болады, олардың ішінде бірнеше шеберлер бар. Жұмыс кезінде құрылғыларды шинаға қосуға болады, яғни. ол ыстық жалғауды қолдайды.

I2C қосылу схемасы
I2C қосылу схемасы

2-қадам

Arduino I2C интерфейсінде жұмыс істеу үшін екі портты қолданады. Мысалы, Arduino UNO мен Arduino Nano-да А4 аналогтық порт SDA-ға, A5 аналогтық порт SCL-ке сәйкес келеді.

Басқа тақтай модельдері үшін:

Arduino Pro және Pro Mini - A4 (SDA), A5 (SCL)

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

Ардуино Леонардо - 2 (SDA), 3 (SCL)

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

SDU және SCL автобустарына Arduino түйреуіштерін картаға түсіру
SDU және SCL автобустарына Arduino түйреуіштерін картаға түсіру

3-қадам

I2C шинасы арқылы құрылғылармен деректер алмасуды жеңілдету үшін Arduino үшін стандартты «Wire» кітапханасы жазылды. Оның келесі функциялары бар:

begin (мекен-жайы) - кітапхананы инициализациялау және I2C шинасына қосу; егер мекен-жай көрсетілмеген болса, онда қосылған құрылғы негізгі болып саналады; 7-биттік адрестеу қолданылады;

requestFrom () - шебері құлдан белгілі бір байт санын сұрау үшін қолданады;

beginTransmission (мекен-жайы) - белгілі бір мекен-жай бойынша құл құрылғысына деректерді берудің басталуы;

endTransmission () - деректерді құлға беруді тоқтату;

write () - сұранымға жауап ретінде құлдан мәлімет жазу;

available () - құлдан алуға болатын байттардың санын қайтарады;

оқу () - құлдан қожайынға немесе қожайыннан құлға берілген байтты оқу;

onReceive () - құл иесінен беріліс қабылдағанда шақырылатын функцияны көрсетеді;

onRequest () - қожайын құлдан хабар алған кезде шақырылатын функцияны көрсетеді.

4-қадам

Arduino көмегімен I2C шинасымен қалай жұмыс жасау керектігін қарастырайық.

Алдымен суретте көрсетілгендей тізбекті жинаймыз. Біз I2C шинасына қосылатын AD5171 64 позициялы сандық потенциометр көмегімен жарық диодының жарықтығын бақылаймыз. Потенциометрге сілтеме жасайтын мекен-жай 0x2c (ондықта 44).

Сандық потенциометр мен Arduino қолданатын жарықдиодты басқару схемасы
Сандық потенциометр мен Arduino қолданатын жарықдиодты басқару схемасы

5-қадам

Енді «Сым» кітапханасының мысалдарынан эскиз ашайық:

Файл -> Үлгілер -> Сым -> сандық_потенциометр. Ардуино жадына жүктейік. Оны қосайық.

Көріп отырсыз ба, жарық диодының жарықтығы цикл бойынша жоғарылайды, содан кейін кенеттен сөніп қалады. Бұл жағдайда біз I2C шинасы арқылы Arduino көмегімен потенциометрді басқарамыз.

Ұсынылған: