Мазмұны:

Zio модульдері мен Qwiic көмегімен I2C енгізу: 6 қадам
Zio модульдері мен Qwiic көмегімен I2C енгізу: 6 қадам

Бейне: Zio модульдері мен Qwiic көмегімен I2C енгізу: 6 қадам

Бейне: Zio модульдері мен Qwiic көмегімен I2C енгізу: 6 қадам
Бейне: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Шілде
Anonim
Zio Modules және Qwiic көмегімен I2C енгізу
Zio Modules және Qwiic көмегімен I2C енгізу

Робин Шарма: «Уақыт өте келе күнделікті күнделікті жақсартулар таңғажайып нәтижеге әкеледі», - деді. Сіз: «Уа, басқа I2C жазбасы?» Деп ойлауыңыз мүмкін. Әрине, I2C туралы мыңдаған ақпарат бар. Бірақ сақ болыңыз, бұл I2C туралы тағы бір мақала емес. Qwiic Connect жүйесі мен Zio перифериялық ажырату тақталары міндетті түрде I²C ойындарын өзгертеді!

Кіріспе

Егер сіз электронды жобалар құрып, керемет нәрселер жасап жатсаңыз, сіздің жобаларыңыз ұлғайған сайын сіздің тақтайшаңыз жылан шұңқырына ұқсайтынын түсінген боларсыз (дұрыс емес пе?).

Сонымен қатар, егер сізде бірнеше жоба бар болса, сіз сымдарды жобадан жобаға ауыстыруға көп уақыт жұмсайсыз.

Біз жасаушылармыз, сондықтан біз күресті түсінеміз. OHS қауымдастығына қосқан соңғы үлесіміз - Qwiic қосылу жүйесін қабылдайтын ZIO деп аталатын модульдік прототиптеу жүйесі. Qwiic - бұл I²C арқылы датчиктерге, жетектерге және ажыратқыш тақталарға бағдарламаланатын платаны хабарлаудың өте ыңғайлы әдісі.

1 -қадам: I²C деген не және бізге не ұнайды

I²C деген не және ол бізге не үшін ұнайды
I²C деген не және ол бізге не үшін ұнайды

I²C-ең көп қолданылатын көпмастерлі автобус, яғни бір автобусқа әр түрлі чиптерді қосуға болады. Ол шебер мен қосалқы немесе бірнеше негізгі және қосалқы құрылғылар арасындағы көптеген қосымшаларда қолданылады. Микроконтроллерлерден, смартфондарға, өнеркәсіптік қосымшаларға, әсіресе компьютер мониторлары сияқты бейне құрылғыларға. Ол көптеген электронды конструкцияларда оңай енгізілуі мүмкін (және соңғы уақытта Qwiic коннекторы арқылы тіпті оңай).

Егер I²C екі сөзбен сипаттау керек болса, біз қарапайымдылық пен икемділікті қолданар едік.

I²C -тің басқа байланыс протоколдарынан ең үлкен артықшылықтарының бірі - бұл екі сымды интерфейс, бұл тек екі сигналдық сымды қажет етеді, бұл SDA (Serial Data Line) және SCL (Serial Clock Line). Бұл ең жылдам хаттама болмауы мүмкін, бірақ ол автобус кернеуінің икемділігіне мүмкіндік беретін өте икемділігімен танымал.

Бұл автобусты тартымды ететін тағы бір маңызды қасиет - қожайын мен құл арасындағы қарым -қатынас. Бір автобусқа бірнеше құрылғыны қосуға болады және құрылғылар арасындағы сымды өзгертудің қажеті жоқ, себебі әрбір құрылғыда бірегей адрес бар (байланыс үшін құрылғыны шебер таңдайды).

2 -қадам: жақынырақ қарастырайық

Жақынырақ қарайық
Жақынырақ қарайық
Жақынырақ қарайық
Жақынырақ қарайық
Жақынырақ қарайық
Жақынырақ қарайық
Жақынырақ қарайық
Жақынырақ қарайық

Сонымен, I²C қалай жұмыс істейді? Бұрын біз ең маңызды ерекшеліктердің бірі кернеудің рұқсаты екенін айттық, себебі бұл I²C SDA және SCL байланыс желілері үшін ашық коллекторды (ашық ағызу деп те аталады) қолданады.

SCL - бұл сағаттық сигнал, I²C шинасындағы құрылғылар арасындағы деректерді беруді синхрондайды және оны шебер жасайды. SDA деректерді автобусқа қосылған сенсорлардан немесе басқа құрылғылардан жіберуге немесе алуға арналған.

Сигналдың шығысы жерге қосылады, яғни әрбір құрылғы төмен деңгейге қойылады. Сигналды жоғары қалпына келтіру үшін екі желі де тоқтатылатын резистор арқылы оң кернеуге қосылады.

ZIO модульдерінің көмегімен біз сізді қамтыдық, біздің барлық тақталар қажетті тартқыш резисторды қамтиды.

I²C шебермен қосалқы құрылғылармен байланысу үшін хабарлама хаттамасын ұстанады. Екі жол (SCL және SDA) барлық I²C құлдарында жиі кездеседі, автобустағы барлық құлдар хабарламаны тыңдайды.

Хабарлама протоколы бекітілген суретте көрсетілген форматқа сәйкес келеді:

Бұл бір қарағанда күрделі болып көрінуі мүмкін, бірақ бізде жақсы жаңалық бар. Arduino IDE қолданған кезде I²C хабарлама хаттамасын орнатуды жеңілдету үшін Wire.h кітапханасы бар.

Деректер желісі (SDA) төмен түссе, сағат сызығы (SCL) жоғары болса, іске қосу шарты жасалады. Arduino интерфейсінде жобаны орнатқанда, біз бастапқы шартты жасау туралы алаңдамаймыз, ол белгілі бір функциямен басталады (Wire.beginTransmission (slaveAddress)).

Сонымен қатар, бұл функция белгілі бір қосалқы адреспен жіберуді де бастайды. Ортақ автобуста сөйлесетін құлды таңдау үшін, қожайын сөйлесу үшін қызметшіге мекенжайды береді. Адрес сәйкес қызметшіге хабарласу үшін орнатылғаннан кейін, таңдалған режимге байланысты хабарлама оқу немесе жазу битімен бірге жүреді.

Сауалнама растау арқылы жауап береді (ACK немесе NACK), ал автобустағы басқа қосалқы құрылғылар хабарлама аяқталғанша және автобус бос болғанша қалған деректерді төмендетеді. ACK -дан кейін құлдардың ішкі адрестеу реестрінің тізбегі беруді жалғастырады.

Деректер жіберілген кезде, тасымалдау хабары тоқтату шартымен аяқталады. Таратуды аяқтау үшін деректер желісі жоғары деңгейге өзгереді және сағат сызығы жоғары болып қалады.

3 -қадам: I²C және ZIO

I²C және ZIO
I²C және ZIO

Біз жоғарыда айтылған барлық мәліметтерді шебер (auk Zuino, біздің микро) мен құлдар (aka ZIO бренді тақталары) арасындағы әңгімеде ең жақсы түрде жоспарлау керек екенін түсіндік.

Бұл негізгі мысалда біз ZIO TOF қашықтық сенсоры мен ZIO OLED дисплейін қолданамыз. TOF қашықтық туралы ақпаратты береді, ал ZIO Oled деректерді көрсетеді. Қолданылатын компоненттер мен құрылғылар:

  • ZUINO M UNO - Шебер
  • ZIO OLED дисплейі - Slave_01
  • ZIO TOF қашықтық сенсоры - Slave_02
  • Qwiic кабелі - I²C құрылғыларына оңай қосылу

Тақталарды Qwiic көмегімен бір -бірімен қосу қаншалықты оңай, нанды қажет етпейді, қосымша кабельдер немесе ZUINO түйреуіштері. ZUINO сериялық Clock and Data желісі Qwiic коннекторы арқылы автоматты түрде Distance сенсорына және OLED -ге қосылады. Басқа екі кабель - 3V3 және GND.

Алдымен, қажет ақпаратты қарастырайық, қожайынмен құлдармен сөйлесу үшін біз бірегей мекенжайларды білуіміз керек.

Құрылғы: ZIO қашықтық сенсоры

  • Бөлшек нөмірі: RFD77402
  • I2C мекенжайы: 0x4C
  • Мәліметтер парағына сілтеме

Құрылғы: ZIO OLED дисплейі

  • Бөлік нөмірі: SSD1306
  • Мекен -жайы: 0x3C
  • Мәліметтер парағына сілтеме

Қосымша құрылғылардың бірегей мекенжайын табу үшін берілген мәліметтер кестесін ашыңыз. Қашықтық сенсоры үшін адрес модуль интерфейсі бөлімінде берілген. Әр сенсорда немесе компонентте әр түрлі мәліметтер бар әр түрлі мәліметтер кестесі бар. Кейде оны 30 беттік мәліметтер кестесінен табу қиын болуы мүмкін (кеңес: PDF қарау құралында іздеу құралын ашып, жылдам іздеу үшін «адрес» немесе «құрылғы идентификаторы» теріңіз).

Енді әр құрылғы үшін бірегей адрес белгілі болғандықтан, деректерді оқу/ жазу үшін ішкі регистр адресін анықтау қажет (сонымен қатар деректер кестесінен). ZIO Distance сенсорының деректер кестесін қарап, қашықтықты алу үшін мекенжай 0x7FF сәйкес келеді.

Бұл жағдайда сенсорды пайдалану үшін бізге бұл ақпарат қажет емес, өйткені кітапхана қазірдің өзінде бар.

Келесі қадам кодты береді. ZUINO M UNO Arduino IDE -мен үйлесімді, бұл орнатуды айтарлықтай жеңілдетеді. Бұл жобаға қажет кітапханалар:

  • Wire.h
  • Adafruit_GFX.h
  • Adafruit_SSD1306.h
  • SparkFun_RFD77402_Arduino_Library.h

Wire.h - бұл arduino кітапханасы, екі Adafruit кітапханасы OLED үшін, ал соңғылары Қашықтық сенсоры үшін қолданылады. *. Zip кітапханаларын Arduino IDE -ге қалай байланыстыру туралы осы оқулықты тексеріңіз.

Кодқа қарап, алдымен кітапханалар мен OLED мекенжайын жариялау керек.

Орнатуда () тасымалдау басталады және қашықтық сенсорының функциясы үшін мәтін көрсетіледі.

Цикл () қашықтықты өлшейді және OLED оны басып шығарады.

Github сілтемесіндегі мысал бастапқы кодты тексеріңіз.

Екі бөлу тақтасын қолдану барлық мағынада өте оңай. Аппараттық жағынан Qwiic коннекторы қондырғы мен секіргіш сымнан гөрі, жабдықты тезірек реттейді. Ал микробағдарлама үшін I2C байланысының сәйкес кітапханаларын қолдана отырып, сенсор мен дисплей кодты әлдеқайда жеңілдетеді.

4 -қадам: Кабельдің максималды ұзындығы қандай?

Максималды ұзындық SDA мен SCL үшін қолданылатын тартқыш резисторларға және кабель сыйымдылығына байланысты. Резисторлар сонымен қатар шинаның жылдамдығын анықтайды, шинаның жылдамдығы неғұрлым төмен болса, кабель шегі соғұрлым ұзақ болады. Кабель сыйымдылығы шинадағы құрылғылардың санын, сонымен қатар кабельдің ұзындығын шектейді. Әдеттегі қосымшалар сымның ұзындығын 2,5-3,5 м (9-12 фут) шектейді, бірақ қолданылатын кабельге байланысты өзгеріс бар. Анықтама үшін, қорғалған 22 AWG жұпталған жұп кабельдерді қолданатын I2C қосымшаларында максималды ұзындығы 100 кбаундта шамамен 1 м (3 фут), 10 кбада 10 м (30 фут).

Mogami немесе WolframAlpha сияқты кабель ұзындығын бағалауға мүмкіндік беретін сайттар бар.

5 -қадам: Бір автобуста бірнеше құрылғыны қалай қосуға болады?

Бір автобуста бірнеше құрылғыны қалай қосуға болады?
Бір автобуста бірнеше құрылғыны қалай қосуға болады?
Бір автобуста бірнеше құрылғыны қалай қосуға болады?
Бір автобуста бірнеше құрылғыны қалай қосуға болады?

I2C - бұл барлық құрылғылар ортақ шинаға қосылған сериялық автобус. Qwiic коннекторының көмегімен әр түрлі ажыратқыш тақталарды Qwiic коннекторы арқылы бірінен кейін бірі қосуға болады. Әр тақтада кемінде 2 Qwiic қосқышы бар.

Біз Qwiic және I2C шектеулерін шешу үшін әр түрлі тақталар жасадық. Zio Qwiic адаптер тақтасы Qwiic қондырғысы жоқ Qwiic құрылғылары арқылы қосылу үшін пайдаланылады, Qwiic -ті ерлердің үстіңгі кабеліне тарату үшін. Бұл қарапайым трюк шексіз мүмкіндіктер береді.

Автобуста немесе ағаш желісінде әр түрлі құрылғыларды қосу үшін біз Zio Qwiic хабын ойлап таптық.

Соңында, ең бастысы, Zio Qwiic MUX бір немесе екі адресті қолдана отырып бір құрылғыны қосуға мүмкіндік береді.

6 -қадам: I2C тоқтату дегеніміз не?

I2C тоқтату үшін қажет, сондықтан желіге басқа құрылғыларды қосу тегін. Бұл біршама шатасуы мүмкін, себебі тоқтату термині әдетте шинаның тартылатын резисторларын сипаттау үшін қолданылады (әдепкі күйді қамтамасыз ету үшін, бұл жағдайда тізбекке ток беру үшін). Zuino тақталары үшін резистордың мәні 4,7 кОм құрайды.

Егер тоқтату алынып тасталса, автобуста ешқандай байланыс болмайды- мастер бастапқы шартты жасай алмайды, сондықтан хабарлама құлдарға берілмейді.

Қосымша ақпарат пен Zio мүмкіндіктері үшін соңғы Zio өнімдерін тексеріңіз. Бұл мақаланың мақсаты - I²C байланыс негіздерін және оның Zio және Qwiic коннекторымен қалай жұмыс істейтінін түсіндіру. Қосымша жаңартуларды күтіңіз.

Ұсынылған: