Подключите MPU6050 к контактам, отличным от A4 и A5.

Мне нужно использовать гироскоп MPU6050 и ультразвуковой датчик для моего проекта. В моем Arduino Uno не было отдельных контактов SDA и SCL, поэтому для этой цели мне пришлось использовать контакты A4 и A5, и я подключил к ним ультразвуковой датчик. \Если контакты SDA и SCL недоступны, а A4 и A5 уже заняты, можно ли использовать другие контакты, такие как A0 и A1, для соединений SDA и SCL?

, 👍-1

Обсуждение

Вы видели программную библиотеку I2C [здесь](https://playground.arduino.cc/Main/SoftwareI2CLibrary/)?, @chrisl

Почему бы не перенести ультразвук на другие контакты? Кстати: SCL/SDA и A4/A5 физически являются одними и теми же контактами — вы не можете использовать оба сразу., @Majenko


2 ответа


0

A4/A5 — это шина I2C. Вы подключите несколько устройств I2C параллельно к контактам. Я бы предложил подключить их Uno к устройству к устройству с подтягивающими резисторами 3,3K или 4,7K подтягивающие резисторы к Vcc на последнем устройстве.

,

0

У вашего Uno нет отдельных выводов SDA и SCL, потому что в микроконтроллере, который используется в Uno (Atmega328p), эти выводы также являются общими. Это обычная практика, потому что не всем нужен I2C, но может понадобиться больше аналоговых контактов.

У вас есть два основных способа добраться сюда:

  • Вы можете оставить ультразвуковой датчик там, где он сейчас подключен, и попробовать его с программной библиотекой I2C, такой как эта one, который можно использовать практически с любой другой парой контактов. Обратите внимание, что в этом случае протокол I2C будет полностью обрабатываться программно, что создает большую нагрузку на микроконтроллер и может потребовать других ресурсов, которые вы захотите использовать позже (например, он может использовать аппаратный таймер).

  • Вы можете поставить ультразвуковой датчик на другие контакты, потому что он все равно не ограничен. Вы можете использовать любую пару цифровых контактов. Затем MPU можно подключить к A4 и A5, так как они являются выводами аппаратного интерфейса I2C. IMO, это более чистое решение, поскольку ядро протокола I2C будет обрабатываться аппаратно, а код ничего для этого не делает. Код просто помещает данные в буфер, не более того. Также он не будет использовать никакое другое оборудование внутри микроконтроллера.

Какой из этих вариантов лучше, решать вам. Возможно, у вас есть веская причина не перемещать ультразвуковой датчик на другие контакты.

,

Упс: ЖК-дисплей с I2C подключен к A4 и A5, а не к ультразвуковому датчику. Так что, я думаю, мне придется пойти с первым?, @SQLinjector

Вы можете подключить несколько устройств к одной и той же шине I2C. Это шина, и каждое устройство имеет адрес., @chrisl