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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ ΠΈ модулями Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ SCL ΠΈ SDA. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎ физичСских особСнностях ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… рСзисторах ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ПониманиС этих ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² критичСски Π²Π°ΠΆΠ½ΠΎ для создания ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΈΠ»ΠΈ Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠΈ.

МногиС Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС, ΠΊΠΎΠ³Π΄Π° устройство просто Π½Π΅ откликаСтся Π½Π° запросы. Часто ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° кроСтся Π² банальном ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Ρ‹Π²Π°Π½ΠΈΠΈ ΠΏΠΈΠ½ΠΎΠ² ΠΈΠ»ΠΈ отсутствии ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… рСзисторов, ΠΎ Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½ΠΈΠΆΠ΅. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ части сэкономит Π²Π°ΠΌ часы ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ поиска нСисправностСй Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ схСмы.

ЀизичСская основа ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° I2C

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Inter-Integrated Circuit, ΠΈΠ»ΠΈ сокращСнно I2C, Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Philips Π² 1982 Π³ΠΎΠ΄Ρƒ для связи ΠΌΠ΅ΠΆΠ΄Ρƒ микросхСмами Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Ρ‹Ρ‚ΠΎΠ²ΠΎΠΉ элСктроники. Π•Π³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании Π΄Π²ΡƒΡ…ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ ΡˆΠΈΠ½Ρ‹, Π³Π΄Π΅ ΠΎΠ΄Π½Π° линия ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π° вторая β€” Π·Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Вакая ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄ΠΎ 127 устройств Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ Π² слоТных систСмах.

Линия SCL (Serial Clock) Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ сигнал, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ синхронизируСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π±ΠΈΡ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ мастСром ΠΈ Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌΠΈ устройствами. ИмСнно мастСр, Π² нашСм случаС Arduino Nano, управляСт ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, задавая частоту слСдования ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ². Π‘Π΅Π· этого сигнала ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ Π½Π΅ смоТСт ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ состояниС Π»ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Вторая линия, SDA (Serial Data), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нСпосрСдствСнно для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π΅ Π»ΠΈΠ½ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² ΠΎΠ±Π΅ стороны, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. АрбитраТ ΡˆΠΈΠ½Ρ‹ позволяСт нСскольким мастСрам Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ систСмС, прСдотвращая ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΏΡ€ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ΡˆΠΈΠ½Ρƒ.

  • πŸ”Œ Двухпроводная топология Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΎΠ΄ΠΊΡƒ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈ ΠΌΠΎΠ½Ρ‚Π°ΠΆ.
  • ⚑ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° мноТСствСнных мастСров ΠΈ слСйвов Π² ΠΎΠ΄Π½ΠΎΠΉ сСти Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ².
  • πŸ“‰ ВстроСнная систСма адрСсации позволяСт uniquely ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ устройство.

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

Распиновка ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π½Π° Arduino Nano

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ»Π°Ρ‚ΠΎΠΉ Arduino Nano Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ располоТСниС Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ сСмСйства. На классичСской вСрсии с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ ATmega328P ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с I2C ТСстко Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΈΠ½Π°ΠΌΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Ошибка Π² Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΠΈΠ½ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Wire Π½Π΅ смоТСт физичСски ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ линиями.

Линия SDA Π½Π° Arduino Nano находится Π½Π° ΠΏΠΈΠ½Π΅ A4, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΌ Π²Ρ…ΠΎΠ΄ΠΎΠΌ. Линия SCL располоТСна Π½Π° сосСднСм ΠΏΠΈΠ½Π΅ A5. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ прСфикс "A", Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ I2C ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠ°ΠΊ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΡ€Ρ‚Ρ‹, управляСмыС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ TWI (Two Wire Interface).

πŸ“Š Какой ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ стоит Π½Π° вашСй ΠΏΠ»Π°Ρ‚Π΅ Arduino Nano?
  • ATmega328P (классичСский)
  • ATmega328P (старый Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ)
  • CH340G (ΠΊΠ»ΠΎΠ½)
  • НС знаю / Π”Ρ€ΡƒΠ³ΠΎΠΉ

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… соврСмСнных ΠΊΠ»ΠΎΠ½Π°Ρ… ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Π°Ρ… с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ATmega32U4, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΈΠ½ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. ВсСгда провСряйтС Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Ρ‡ΠΈΠΏΡƒ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π½Π΅ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ‹. Для стандартного Nano v3.0 схСма остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠΉ Π³ΠΎΠ΄Π°ΠΌΠΈ.

Ѐункция I2C Пин Π½Π° Arduino Nano НомСр ΠΏΠΈΠ½Π° ATmega328P Π¦Π²Π΅Ρ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° (Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ)
ЗСмля (GND) GND 8, 22 Π§Π΅Ρ€Π½Ρ‹ΠΉ
ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ (VCC) 5V ΠΈΠ»ΠΈ 3.3V 7, 20 ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ
Π”Π°Π½Π½Ρ‹Π΅ (SDA) A4 27 Π—Π΅Π»Π΅Π½Ρ‹ΠΉ
Π’Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (SCL) A5 28 Π–Π΅Π»Ρ‚Ρ‹ΠΉ

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΡ€ΠΎΠ²Π½ΠΈ напряТСния совмСстимы. Если ваш Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚ 3.3Π’, Π° Arduino Π·Π°ΠΏΠΈΡ‚Π°Π½ ΠΎΡ‚ 5Π’, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, хотя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ соврСмСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ встроСнныС стабилизаторы. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ питания β€” Π·Π°Π»ΠΎΠ³ Π΄ΠΎΠ»Π³ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ рСзисторы

Одним ΠΈΠ· самых ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡˆΠΈΠ½Ρ‹ I2C являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… рСзисторов. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π»ΠΈΠ½ΠΈΠΈ SDA ΠΈ SCL ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² состояниС логичСской Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ внСшниС рСзисторы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‚ Π»ΠΈΠ½ΠΈΠΈ ΠΊ ΠΏΠ»ΡŽΡΡƒ питания.

МногиС Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ дисплСи OLED ΠΈΠ»ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ распаянныС Π½Π° ΠΏΠ»Π°Ρ‚Π΅ рСзисторы Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠΌ ΠΎΡ‚ 1.8 кОм Π΄ΠΎ 10 кОм. Если Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ "Π³ΠΎΠ»ΡƒΡŽ" микросхСму ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ, Π²Π°ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π²Π° рСзистора Π½ΠΎΠΌΠΈΠ½Π°Π»ΠΎΠΌ 4.7 кОм ΠΌΠ΅ΠΆΠ΄Ρƒ SDA ΠΈ VCC, Π° Ρ‚Π°ΠΊΠΆΠ΅ SCL ΠΈ VCC.

πŸ’‘

Если Π½Π° шинС I2C висит нСсколько устройств с встроСнными рСзисторами, ΠΎΠ±Ρ‰Π΅Π΅ сопротивлСниС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ слишком Π½ΠΈΠ·ΠΊΠΈΠΌ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС рСкомСндуСтся ΡƒΠ±Ρ€Π°Ρ‚ΡŒ лишниС рСзисторы ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ (10кОм), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ линию логичСского нуля.

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ подтяТки ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° осциллографС ΠΈΠ»ΠΈ Π² Π»ΠΎΠ³Π°Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠ»ΠΈ ΠΈΠ»ΠΈ Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½Ρ‹ΠΉ ΡˆΡƒΠΌ. Π‘ΠΈΠ³Π½Π°Π» просто Π½Π΅ смоТСт Π²Π·Π²Π΅ΡΡ‚ΠΈΡΡŒ Π² высокоС состояниС послС окончания ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π±Π°ΠΉΡ‚Π°. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия рСзисторов β€” ΠΏΠ΅Ρ€Π²ΠΎΠ΅ дСйствиС ΠΏΡ€ΠΈ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ шинС.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ линию SDA ΠΈΠ»ΠΈ SCL Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ источнику питания Π±Π΅Π· рСзистора, Ссли Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΌΡƒ Π·Π°ΠΌΡ‹ΠΊΠ°Π½ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° устройство попытаСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ логичСский ноль.

Π”Π»ΠΈΠ½Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Ρ€ΠΎΠ»ΡŒ: для стандартной скорости 100 ΠΊΠ“Ρ† ΠΎΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 20-30 см Π±Π΅Π· использования экранирования. ΠŸΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Ρ‹ растСт Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ искаТаСт Ρ„Ρ€ΠΎΠ½Ρ‚ сигнала ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. Для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ слСдуСт ΡΠ½ΠΈΠΆΠ°Ρ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΡˆΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация Ρ‡Π΅Ρ€Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Wire

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с интСрфСйсом I2C Π² срСдС Arduino IDE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Wire.h. Она Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя всю Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ стартовых условий, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ Π±Π°ΠΉΡ‚ΠΎΠ² адрСса ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ (ACK). Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСгистрами ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ начинаСтся с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡˆΠΈΠ½Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setup() с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Wire.begin(). Если Arduino выступаСт Π² Ρ€ΠΎΠ»ΠΈ мастСра, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ, Π½ΠΎ для настройки скорости ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ слСйва Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ опрос ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… устройств.


#include <Wire.h>

void setup() {

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

Serial.begin(9600);

Serial.println("Π‘ΠΊΠ°Π½Π΅Ρ€ I2C Π·Π°ΠΏΡƒΡ‰Π΅Π½");

}

void loop() {

// Основной Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

}

Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: Wire.beginTransmission(address) Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ с устройством, Wire.write(data) отправляСт Π΄Π°Π½Π½Ρ‹Π΅, Π° Wire.endTransmission() Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚. Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… происходит Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π½ΠΎ с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Wire.requestFrom() ΠΈ цикличСского считывания Π±Π°ΠΉΡ‚ΠΎΠ².

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

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

Ошибки ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΈΠ·-Π·Π° ΠΏΠΎΠΌΠ΅Ρ…, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ адрСса ΠΈΠ»ΠΈ нСисправности самого модуля. Грамотная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ устойчивым ΠΊ сбоям.

Поиск адрСса ΠΈ диагностика ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΅Π³ΠΎ адрСс Π½Π° шинС. КаТдоС устройство ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ 7-Π±ΠΈΡ‚Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ 10-Π±ΠΈΡ‚Π½Ρ‹ΠΉ адрСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прописан Π² Π΅Π³ΠΎ рСгистрС. НС зная этого адрСса, ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС запросы.

БущСствуСт мноТСство сканСров I2C, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‚ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ адрСса ΠΎΡ‚ 1 Π΄ΠΎ 127 ΠΈ выводят Π² консоль Ρ‚Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΎΡ‚Π²Π΅Ρ‚. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΠ² Ρ‚Π°ΠΊΠΎΠΉ скСтч, Π²Ρ‹ сразу ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ список ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… устройств. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ любой Π½ΠΎΠ²ΠΎΠΉ сборки.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ адрСс ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ?

АдрСс ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ, Ссли устройство нСисправно, ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π½Ρ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° SDA/SCL, отсутствуСт ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ адрСс устройства ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ устройством Π½Π° шинС. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΈΠ½ для Π²Ρ‹Π±ΠΎΡ€Π° адрСса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° зСмлю ΠΈΠ»ΠΈ плюс.

Если сканСр ΠΌΠΎΠ»Ρ‡ΠΈΡ‚, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ соСдинСний ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ питания Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅. Часто ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π² ΠΏΠ»ΠΎΡ…ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Ρ‹Π²Π΅ Ρ‚ΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Ρ‚Ρ€ для ΠΏΡ€ΠΎΠ·Π²ΠΎΠ½ΠΊΠΈ Ρ†Π΅ΠΏΠ΅ΠΉ ΠΎΡ‚ ΠΏΠΈΠ½Π° Arduino Π΄ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°.

  • πŸ” Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ адрСс Π² ΠΊΠΎΠ΄Π΅ совпадаСт с Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ сканировании (часто указываСтся Π² hex, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 0x3C).
  • πŸ”Œ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π½Ρ‹ Π»ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° SDA ΠΈ SCL мСстами (хотя физичСски это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Π²Ρ€Π΅Π΄ΠΈΡ‚, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚).
  • ⚑ Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠΊΠ°, особСнно Ссли ΠΎΠ½ энСргоСмкий (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ GPS ΠΈΠ»ΠΈ GSM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ).

Иногда устройства ΠΌΠΎΠ³ΡƒΡ‚ "Π·Π°Π²ΠΈΡΠ°Ρ‚ΡŒ", удСрТивая линию SDA Π² Π½ΠΈΠ·ΠΊΠΎΠΌ состоянии. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ сброс ΡˆΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ» ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ‚Π°ΠΊΡ‚ΠΎΠ² SCL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти слСйв ΠΈΠ· состояния оТидания. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Wire ΠΈΠ½ΠΎΠ³Π΄Π° прСдоставляСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ сброса, Π½ΠΎ Ρ‡Π°Ρ‰Π΅ это Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ питания.

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Бтандартная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ I2C составляСт 100 ΠΊΠ“Ρ†, Ρ‡Ρ‚ΠΎ достаточно для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ аксСлСромСтров. Однако для дисплССв ΠΈΠ»ΠΈ быстрых АЦП ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π΅ΠΆΠΈΠΌ Fast Mode (400 ΠΊΠ“Ρ†) ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ High Speed Mode (3.4 ΠœΠ“Ρ†). Arduino Nano ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ скорости Ρ‡Π΅Ρ€Π΅Π· установку рСгистра TWBR ΠΈΠ»ΠΈ использованиС сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ скорости ΡˆΠΈΠ½Ρ‹ Π²Ρ‹ΡˆΠ΅ 400 ΠΊΠ“Ρ† ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ качСства ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ устройства ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎ возмоТности использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ эмуляции I2C (SoftI2C), Ссли Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΏΠΈΠ½Ρ‹ A4/A5 заняты Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²Ρ€ΠΎΠ΄Π΅ SoftWire ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ ΠΏΠΈΠ½Ρ‹, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ большС рСсурсов процСссора.

πŸ’‘

Аппаратный I2C Π½Π° Arduino Nano Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π΅Π΅ ΠΈ быстрСС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ, поэтому для ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π°Π΄Π°Ρ‡ Π²ΡΠ΅Π³Π΄Π°δΌ˜ε…ˆ (Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС ΠΏΠΈΠ½Ρ‹ A4 ΠΈ A5.

ПониманиС тонкостСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡˆΠΈΠ½Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΄Π²Π΅Ρ€ΠΈ ΠΊ созданию слоТных ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ΅Π½ΡΠΎΡ€Π½Ρ‹Ρ… систСм. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с гироскопа, ΠΌΠ°Π³Π½ΠΈΡ‚ΠΎΠΌΠ΅Ρ‚Ρ€Π° ΠΈ Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ систСму Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. ВсС это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ благодаря простотС ΠΈ надСТности ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ остаСтся стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ 40 Π»Π΅Ρ‚.

Какой ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½ΡΡ‚ΡŒ с ΠΏΠΈΠ½Π° 5V Π½Π° Arduino Nano?

Π‘ΡƒΠΌΠΌΠ°Ρ€Π½Ρ‹ΠΉ Ρ‚ΠΎΠΊ, потрСбляСмый всСми устройствами ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄Π° 5V Π½Π° Arduino Nano, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠΊ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рассчитан USB-ΠΏΠΎΡ€Ρ‚ ΠΈΠ»ΠΈ внСшний источник питания, минус Ρ‚ΠΎΠΊ потрСблСния самой ΠΏΠ»Π°Ρ‚Ρ‹. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ рСкомСндуСтся Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 200-300 мА, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€Π΅Ρ‚ΡŒ стабилизатор ΠΈΠ»ΠΈ Π½Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ напряТСния. Для ΠΌΠΎΡ‰Π½Ρ‹Ρ… устройств ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ внСшнСС ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅.

МоТно Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ I2C устройства, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚ 3.3Π’, ΠΊ Arduino Nano (5Π’)?

МногиС соврСмСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ встроСнный стабилизатор ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 3.3-5Π’, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ строго 3.3Π’, прямоС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΉ SDA/SCL ΠΊ 5-Π²ΠΎΠ»ΡŒΡ‚ΠΎΠ²ΠΎΠΉ Arduino ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΈΠ»ΠΈ использованиС Arduino с ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ 3.3Π’.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли адрСса Π΄Π²ΡƒΡ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚?

НСкоторыС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, MPU6050) ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΈΠ½ (AD0), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ младший Π±ΠΈΡ‚ адрСса. Π—Π°ΠΌΠΊΠ½ΡƒΠ² Π΅Π³ΠΎ Π½Π° зСмлю ΠΈΠ»ΠΈ плюс, Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ адрСс устройства. Если ΠΏΠΈΠ½Π° Π½Π΅Ρ‚, придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ I2C (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, TCA9548A), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с устройствами ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹.