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 - Inter-Integral Circuits гэж нэрлэдэг) нь өгөгдөл дамжуулахад хоёр чиглэлтэй холбооны шугамыг ашигладаг бөгөөд SDA (Serial Data) bus ба SCL (Serial Clock) автобус гэж нэрлэдэг. Мөн хоёр цахилгаан шугам байна. SDA ба SCL автобусыг резистороор дамжуулж тэжээлийн автобус руу татдаг.

Сүлжээнд өгөгдөл дамжуулах ажлыг эхлүүлж, синхрончлолын дохио үүсгэдэг дор хаяж нэг Мастер байдаг. Сүлжээ нь мастерийн хүсэлтээр өгөгдөл дамжуулдаг боолуудтай. Боолын төхөөрөмж тус бүрт мастер хаягласан өвөрмөц хаяг байдаг. Төхөөрөмжийн хаягийг паспорт дээр (мэдээллийн хуудас) зааж өгсөн болно. Нэг I2C автобусанд 127 хүртэлх төхөөрөмжийг холбож болно, үүнд хэд хэдэн мастерууд багтана. Ажиллаж байх үед төхөөрөмжүүдийг автобусанд холбож болно, i.e. энэ нь халуун залгуурыг дэмждэг.

I2C холболтын диаграмм
I2C холболтын диаграмм

Алхам 2

Arduino нь I2C интерфэйс дээр ажиллахын тулд хоёр порт ашигладаг. Жишээлбэл, Arduino UNO ба Arduino Nano-д аналог порт A4 нь 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

Arduino тээглүүрүүдийг SDA ба SCL автобусанд буулгах
Arduino тээглүүрүүдийг SDA ба SCL автобусанд буулгах

Алхам 3

I2C автобусаар төхөөрөмжүүдтэй өгөгдөл солилцох ажлыг хөнгөвчлөх үүднээс Arduino-д зориулж стандарт "Wire" номын санг бичсэн болно. Энэ нь дараахь функцуудтай:

эхлэх (хаяг) - номын санг эхлүүлэх, I2C автобусанд холбогдох; хэрэв хаяг заагаагүй бол холбогдсон төхөөрөмжийг мастер гэж үзнэ; 7 битийн хаягийг ашигладаг;

requestFrom () - мастер боолоос тодорхой тооны байт шаардахад ашигладаг;

beginTransmission (хаяг) - тодорхой хаяг дээр боол төхөөрөмж рүү өгөгдөл дамжуулах эхлэл;

endTransmission () - боол руу өгөгдөл дамжуулахыг зогсоох;

бичих () - хүсэлтийн дагуу боолоос өгөгдөл бичих;

available () - боолоос авах боломжтой байтын тоог буцаана;

унших () - боолоос эзэнд эсвэл эзнээс боол руу шилжүүлсэн байтыг унших;

onReceive () - боол нь мастераас дамжуулалт хүлээн авахад дуудах функцийг заана;

onRequest () - Эзэн боолоос дамжуулалт хүлээн авахад дуудах функцийг заана.

Алхам 4

Arduino ашиглан I2C автобустай хэрхэн ажиллахыг үзье.

Нэгдүгээрт, бид зураг дээр харуулсны дагуу хэлхээг угсарна. Бид I2C автобусанд холбогддог AD5171 64 байрлалтай дижитал потенциометр ашиглан LED гэрлийг хянах болно. Потенциометрийн талаархи хаяг нь 0x2c (аравтын бутархайгаар 44) байна.

Дижитал потенциометр ба Arduino ашиглан LED хяналтын хэлхээ
Дижитал потенциометр ба Arduino ашиглан LED хяналтын хэлхээ

Алхам 5

Одоо "Утас" номын сангийн жишээнүүдээс ноорог нээе.

Файл -> Дээж -> Утас -> дижитал_потенциометр. Үүнийг Arduino санах ойд оруулъя. Үүнийг асаацгаая.

LED-ийн тод байдал нь мөчлөгөөр нэмэгдэж, гэнэт унтрах болно. Энэ тохиолдолд бид Arduino ашиглан I2C автобусаар потенциометрийг удирддаг.

Зөвлөмж болгож буй: