Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° элСктронных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Atmel часто Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ дисплССв, ΠΈ здСсь Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ». Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ I2C (Inter-Integrated Circuit) являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых популярных способов связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ ΠΈ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌΠΈ устройствами благодаря своСй простотС ΠΈ способности ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ мноТСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² всСго Π½Π° Π΄Π²ΡƒΡ… ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°Ρ…. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° эта шина Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Arduino Nano, критичСски Π²Π°ΠΆΠ½ΠΎ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ сборки схСм, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ мСтСостанция, ΡƒΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ интСрфСйса UART, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ устройства, шина I2C позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄ΠΎ 127 устройств ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€Π΅ Π»ΠΈΠ½ΠΈΠΉ связи. На ΠΏΠ»Π°Ρ‚Π΅ Arduino Nano, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉΡΡ Π½Π° Ρ‡ΠΈΠΏΠ΅ ATmega328P, эти Π»ΠΈΠ½ΠΈΠΈ ТСстко привязаны ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ограничСния Π½Π° физичСскоС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Ошибки Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠΈΠ½ΠΎΠ² SDA ΠΈ SCL ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых частых ΠΏΡ€ΠΈΡ‡ΠΈΠ½ нСработоспособности ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ².

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ², ΠΈΡ… располоТСниС Π½Π° ΠΏΠ»Π°Ρ‚Π΅, особСнности Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Wire ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ диагностики ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚ распиновка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ связь ΠΌΠ΅ΠΆΠ΄Ρƒ мастСром ΠΈ слСйвом Π² вашСй схСмС. Π“Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ этих процСссов ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ элСктронныС систСмы.

ЀизичСскоС располоТСниС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² SDA ΠΈ SCL Π½Π° ΠΏΠ»Π°Ρ‚Π΅

ΠŸΠ»Π°Ρ‚Π° Arduino Nano ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌ-Ρ„Π°ΠΊΡ‚ΠΎΡ€, ΠΈ поиск Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΏΠΈΠ½ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ затруднСния Ρƒ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π±Π΅Ρ€Π΅Ρ‚ эту ΠΏΠ»Π°Ρ‚Ρƒ Π² Ρ€ΡƒΠΊΠΈ. На Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ вСрсий, особСнно Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‡ΠΈΠΏ FT232R ΠΈΠ»ΠΈ CH340 для USB-ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ SDA ΠΈ SCL Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° стандартный Ρ€Π°Π·ΡŠΠ΅ΠΌ с Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ стороны ΠΏΠ»Π°Ρ‚Ρ‹.

РасполоТСниС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ ΠΏΠ»Π°Ρ‚Ρ‹, поэтому Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ идСнтификация ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ΄Π°Ρ‡Π΅ΠΉ питания. На старых вСрсиях Nano (v2.0 ΠΈ v3.0) эти ΠΏΠΈΠ½Ρ‹ часто находятся рядом с ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ A4 ΠΈ A5, Π½ΠΎ Π½Π΅ всСгда ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ I2C. Π’ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Arduino Nano Every ΠΈΠ»ΠΈ Nano 33 IoT, Π»ΠΎΠ³ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΈΠ·-Π·Π° использования Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ATmega4809 ΠΈΠ»ΠΈ SAMD21.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ Π»ΠΈΠ½ΠΈΠΈ I2C ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ ΠΏΠΈΠ½Π°ΠΌ Π±Π΅Π· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ эмуляции, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ аппаратная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄Π°Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

Для стандартной Arduino Nano Π½Π° Π±Π°Π·Π΅ ATmega328P Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°: ΠΏΠΈΠ½ A4 выполняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SDA (линия Π΄Π°Π½Π½Ρ‹Ρ…), Π° ΠΏΠΈΠ½ A5 β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SCL (линия тактирования). Π­Ρ‚ΠΈ ΠΆΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Ρ‹, Ссли ΠΎΠ½ΠΈ Π½Π΅ задСйствованы Π² ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎ шинС I2C. Π”Π²ΠΎΠΉΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° рСсурсов.

πŸ“Š Какая вСрсия Arduino Nano Ρƒ вас?
  • ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠ°Ρ (ATmega328P)
  • Nano Every (ATmega4809)
  • Nano 33 IoT (SAMD21)
  • Nano RP2040 Connect
  • Другая

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡˆΠΈΠ½Ρ‹ I2C ΠΈ Ρ€ΠΎΠ»ΡŒ Π»ΠΈΠ½ΠΈΠΉ SDA/SCL

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» I2C Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Philips (Π½Ρ‹Π½Π΅ NXP Semiconductors) Π² 1982 Π³ΠΎΠ΄Ρƒ для связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π΅Π²ΠΈΠ·ΠΎΡ€ΠΎΠ², Π½ΠΎ быстро стал стандартом в塌ε…₯式 систСмах. Π‘ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании Π΄Π²ΡƒΡ… Π»ΠΈΠ½ΠΈΠΉ: SDA (Serial Data) для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ SCL (Serial Clock) для синхронизации. ВсС устройства Π² сСти ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΊ этим Π΄Π²ΡƒΠΌ линиям, образуя Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡŽ "мастСр-слСйв".

Линия SCL Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΠ°ΡΡ‚Π΅Ρ€-устройство, Π² нашСм случаС Arduino Nano, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ эти ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹, задавая Ρ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСй систСмы. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ стандартных 100 ΠΊΠ“Ρ† Π΄ΠΎ 400 ΠΊΠ“Ρ† (Fast Mode) ΠΈ Π΄Π°ΠΆΠ΅ Π²Ρ‹ΡˆΠ΅ Π² спСциализированных Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…. Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ сигнала Π½Π° этом ΠΏΠΈΠ½Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π° для цСлостности ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

Линия SDA ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π»ΡεŒε‘Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ UART, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, здСсь Π΄Π°Π½Π½Ρ‹Π΅ ходят ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Ρƒ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ устройство. АрбитраТ ΡˆΠΈΠ½Ρ‹ происходит динамичСски: Ссли мастСр Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ, Π° слСйв Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ пытаСтся ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ отдаСтся мастСру, Π° слСйв ΠΆΠ΄Π΅Ρ‚ освобоТдСния Π»ΠΈΠ½ΠΈΠΈ.

ВСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ формирования сигнала

ЛогичСский ноль Π½Π° шинС I2C формируСтся ΠΏΡƒΡ‚Π΅ΠΌ подтягивания Π»ΠΈΠ½ΠΈΠΈ ΠΊ Π·Π΅ΠΌΠ»Π΅ транзистором с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ стоком. ЛогичСская Π΅Π΄ΠΈΠ½ΠΈΡ†Π° формируСтся отпусканиСм Π»ΠΈΠ½ΠΈΠΈ, послС Ρ‡Π΅Π³ΠΎ ΠΎΠ½Π° подтягиваСтся ΠΊ ΠΏΠΈΡ‚Π°Π½ΠΈΡŽ внСшними рСзисторами. Π­Ρ‚ΠΎ позволяСт устройствам с Ρ€Π°Π·Π½Ρ‹ΠΌ напряТСниСм питания (ΠΏΡ€ΠΈ соблюдСнии условий) Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ совмСстно.

КаТдоС устройство Π½Π° шинС ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ 7-Π±ΠΈΡ‚Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ 10-Π±ΠΈΡ‚Π½Ρ‹ΠΉ адрСс. Когда Arduino Nano Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° дисплСй OLED, ΠΎΠ½ сначала посылаСт сигнал старта, Π·Π°Ρ‚Π΅ΠΌ адрСс устройства ΠΈ Π±ΠΈΡ‚ чтСния/записи. Волько послС подтвСрТдСния ΠΎΡ‚ адрСсата начинаСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Вакая строгая дисциплина ΠΎΠ±ΠΌΠ΅Π½Π° позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΊ Arduino Nano

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΊ Arduino Nano Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ соблюдСния полярности ΠΈ понимания нСобходимости ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… рСзисторов. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π»ΠΈΠ½ΠΈΠΈ SDA ΠΈ SCL ΡΠ²Π»ΡΡŽΡ‚ΡΡ линиями с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ стоком, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ подтянуты ΠΊ Π½Π°ΠΏΡ€ΡΠΆΠ΅Π½ΠΈΡŽ питания Ρ‡Π΅Ρ€Π΅Π· рСзисторы Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠΌ ΠΎΡ‚ 2.2 кОм Π΄ΠΎ 10 кОм. Π‘Π΅Π· этих рСзисторов сигнал Π½Π° осциллограммС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠ³ΠΈΠ΅ Ρ„Ρ€ΠΎΠ½Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкам связи.

МногиС Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ аксСлСромСтры MPU6050 ΠΈΠ»ΠΈ дисплСи SSD1306, ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ встроСнныС ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ рСзисторы Π½Π° ΠΏΠ»Π°Ρ‚Π΅. Однако, Ссли Π²Ρ‹ собираСтС схСму Π½Π° ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‡ΠΈΠΏΠ°ΠΌΠΈ, установка Π²Π½Π΅ΡˆΠ½ΠΈΡ… рСзисторов ΠΌΠ΅ΠΆΠ΄Ρƒ VCC ΠΈ SDA, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ VCC ΠΈ SCL, являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ шагом. ΠŸΡ€Π΅Π½Π΅Π±Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅ этим ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ β€” частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° "ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΡ…" ошибок.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ I2C

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Рассмотрим ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ схСму ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ BMP180 ΠΈΠ»ΠΈ BME280 ΠΊ ΠΏΠ»Π°Ρ‚Π΅ Nano. Π’Ρ‹Π²ΠΎΠ΄ VCC Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° соСдиняСтся с 5V (ΠΈΠ»ΠΈ 3.3V Π² зависимости ΠΎΡ‚ вСрсии Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°), GND с GND ΠΏΠ»Π°Ρ‚Ρ‹. Линия Π΄Π°Π½Π½Ρ‹Ρ… SDA Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΈΠ΄Π΅Ρ‚ Π½Π° ΠΏΠΈΠ½ A4 Arduino, Π° линия тактирования SCL β€” Π½Π° ΠΏΠΈΠ½ A5. Π’Π°ΠΆΠ½ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ‚ΡŒ эти Π»ΠΈΠ½ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π½Π΅ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΈΡ… пСрСстановкС.

ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ модуля ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ Arduino Nano Ѐункция Π¦Π²Π΅Ρ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ)
VCC 5V (ΠΈΠ»ΠΈ 3.3V) ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ
GND GND ЗСмля Π§Π΅Ρ€Π½Ρ‹ΠΉ
SDA A4 Линия Π΄Π°Π½Π½Ρ‹Ρ… Π—Π΅Π»Π΅Π½Ρ‹ΠΉ
SCL A5 Линия тактирования Π–Π΅Π»Ρ‚Ρ‹ΠΉ

ΠŸΡ€ΠΈ использовании Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… устройств Π½Π° ΠΎΠ΄Π½ΠΎΠΉ шинС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΈΡ… адрСса Π½Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‚. НСкоторыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ ΠΈΠ»ΠΈ рСзисторы для измСнСния адрСса, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° давлСния ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Arduino Nano. Π’ ΠΊΠΎΠ΄Π΅ это рСализуСтся созданиСм Π΄Π²ΡƒΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ адрСсами.

Π Π°Π±ΠΎΡ‚Π° с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Wire Π² срСдС Arduino IDE

Для взаимодСйствия с устройствами ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ I2C Π² экосистСмС Arduino ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Wire. Она Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя всю Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ стартовых условий ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ осущСствляСтся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ #include <Wire.h> Π² Π½Π°Ρ‡Π°Π»Π΅ скСтча.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΡˆΠΈΠ½Ρ‹ происходит Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setup() с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Wire.begin(). Для Arduino Nano (мастСр-Ρ€Π΅ΠΆΠΈΠΌ) Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ адрСса ΠΏΠΈΠ½ΠΎΠ² SDA ΠΈ SCL ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² ядрС. Если ΠΆΠ΅ Nano Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ слСйв (ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° запросы Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ мастСра), Ρ‚ΠΎ Π² скобках указываСтся Π΅Π³ΠΎ адрСс: Wire.begin(адрСс).

void setup() {

Wire.begin(); // Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΡˆΠΈΠ½Ρ‹ I2C ΠΊΠ°ΠΊ мастСр

Serial.begin(9600);

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия устройства ΠΏΠΎ адрСсу 0x3C

Wire.beginTransmission(0x3C);

if (Wire.endTransmission() == 0) {

Serial.println("Устройство Π½Π°ΠΉΠ΄Π΅Π½ΠΎ!");

} else {

Serial.println("Устройство Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ.");

}

}

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Π±ΡƒΡ„Π΅Ρ€. Π‘Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π±ΡƒΡ„Π΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Wire.write(), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Wire.endTransmission(). Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ указания количСства Π±Π°ΠΉΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ: Wire.read() ΠΈΠ»ΠΈ Wire.requestFrom(). Π’Π°ΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ порядок ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ "зависаниС" ΡˆΠΈΠ½Ρ‹.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Wire.setClock(ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ) послС Wire.begin(), Ссли стандартная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ 100 ΠΊΠ“Ρ† нСдостаточна для вашСго устройства. НапримСр, для быстрых Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ 400000 (400 ΠΊΠ“Ρ†).

Диагностика ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ поиск устройств Π½Π° шинС

Бамая распространСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с I2C β€” это отсутствиС ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° ΠΎΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ устройства. ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ провСсти Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ диагностику. Π‘ΠΊΠ°Π½Π΅Ρ€ ΡˆΠΈΠ½Ρ‹ I2C β€” это ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ адрСса ΠΎΡ‚ 1 Π΄ΠΎ 127 ΠΈ сообщаСт, ΠΊΠ°ΠΊΠΎΠ΅ устройство откликаСтся. Π­Ρ‚ΠΎ позволяСт быстро Π½Π°ΠΉΡ‚ΠΈ адрСс Π½ΠΎΠ²ΠΎΠ³ΠΎ модуля ΠΈΠ»ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ±Ρ€Ρ‹Π²Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°.

Если сканСр ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ пустой список, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ соСдинСний SDA ΠΈ SCL. Часто ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π² ΠΏΠ»ΠΎΡ…ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°Ρ…. Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ напряТСниС Π½Π° Π»ΠΈΠ½ΠΈΠΈ VCC: Ссли устройство Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 3.3Π’, Π° Π²Ρ‹ ΠΏΠΎΠ΄Π°Π΅Ρ‚Π΅ 5Π’ (ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚), ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· строя.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Если Π½Π° шинС висит устройство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ "Π·Π°Π±ΠΈΠ»ΠΎ" линию (Π΄Π΅Ρ€ΠΆΠΈΡ‚ логичСский ноль), вся шина встанСт. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ устройства ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠ°.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ сбоСв ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдостаточная Π΄Π»ΠΈΠ½Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ². ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» I2C Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ связи; ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ‹ Π² 20-30 см Π±Π΅Π· экранирования ΠΈ согласования ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ появлСнию ΡˆΡƒΠΌΠΎΠ² ΠΈ искаТСнию Ρ„ΠΎΡ€ΠΌΡ‹ сигнала. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ‚ΡƒΡŽ ΠΏΠ°Ρ€Ρƒ ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΡˆΠΈΠ½Ρ‹.

πŸ’‘

ИспользованиС сканСра I2C β€” ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ любого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Он экономит часы поиска ошибок Π² ΠΊΠΎΠ΄Π΅, подтвСрТдая Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ устройства.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠΈΠ½Ρ‹ Arduino Nano для SDA ΠΈ SCL?

Аппаратно ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» I2C Π½Π° классичСском ATmega328P завязан Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΏΠΈΠ½Ρ‹ A4 (SDA) ΠΈ A5 (SCL). ИспользованиС Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΈΠ½ΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ эмуляции, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ SoftwareWire, Π½ΠΎ это сниТаСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ связи.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠΎΠΉ дисплСй OLED Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, хотя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

Частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° β€” Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ адрСс Π² ΠΊΠΎΠ΄Π΅. ДисплСи Π½Π° Π±Π°Π·Π΅ SSD1306 ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ адрСс 0x3C ΠΈΠ»ΠΈ 0x3D. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ адрСс Π² настройках Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ дисплСя. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΏΠΎΠ΄Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ напряТСниС питания (Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дисплСи ΡΠ³ΠΎΡ€Π°ΡŽΡ‚ ΠΎΡ‚ 5Π’).

НуТны Π»ΠΈ внСшниС рСзисторы, Ссли Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ свои?

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСзисторы Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΈ Π΄Π°ΠΆΠ΅ Π²Ρ€Π΅Π΄Π½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ слишком сильно подтянут линию, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Ρ„ΠΎΡ€ΠΌΡƒ сигнала. Однако, Ссли Ρƒ вас длинная шина с мноТСством устройств, суммарная Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π±ΠΎΡ€Π° Π½ΠΎΠΌΠΈΠ½Π°Π»Π° рСзисторов (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ сопротивлСния).

МоТно Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Arduino Nano ΠΊ Raspberry Pi ΠΏΠΎ I2C?

Π”Π°, это популярная связка. Raspberry Pi выступаСт мастСром, Π° Arduino Nano β€” слСйвом. Π’Π°ΠΆΠ½ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π½ΠΈ напряТСния: Raspberry Pi Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° 3.3Π’, Π° Nano Π½Π° 5Π’. Для бСзопасности Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΈΠ»ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ конкрСтная модСль Nano ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ 3.3Π’ Π»ΠΎΠ³ΠΈΠΊΡƒ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли сканСр I2C ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ адрСс, Π½ΠΎ устройство Π½Π΅ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅?

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, устройство Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄) ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄Π°Ρ‚Π°ΡˆΠΈΡ‚ устройства. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² скорости: ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΡˆΠΈΠ½Ρ‹ Π² ΠΊΠΎΠ΄Π΅ Wire.setClock(10000) для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ связи.