Подключите MPU6050 к контактам, отличным от A4 и A5.
Мне нужно использовать гироскоп MPU6050 и ультразвуковой датчик для моего проекта. В моем Arduino Uno не было отдельных контактов SDA и SCL, поэтому для этой цели мне пришлось использовать контакты A4 и A5, и я подключил к ним ультразвуковой датчик. \Если контакты SDA и SCL недоступны, а A4 и A5 уже заняты, можно ли использовать другие контакты, такие как A0 и A1, для соединений SDA и SCL?
@SQLinjector, 👍-1
Обсуждение2 ответа
A4/A5 — это шина I2C. Вы подключите несколько устройств I2C параллельно к контактам. Я бы предложил подключить их Uno к устройству к устройству с подтягивающими резисторами 3,3K или 4,7K подтягивающие резисторы к Vcc на последнем устройстве.
У вашего Uno нет отдельных выводов SDA и SCL, потому что в микроконтроллере, который используется в Uno (Atmega328p), эти выводы также являются общими. Это обычная практика, потому что не всем нужен I2C, но может понадобиться больше аналоговых контактов.
У вас есть два основных способа добраться сюда:
Вы можете оставить ультразвуковой датчик там, где он сейчас подключен, и попробовать его с программной библиотекой I2C, такой как эта one, который можно использовать практически с любой другой парой контактов. Обратите внимание, что в этом случае протокол I2C будет полностью обрабатываться программно, что создает большую нагрузку на микроконтроллер и может потребовать других ресурсов, которые вы захотите использовать позже (например, он может использовать аппаратный таймер).
Вы можете поставить ультразвуковой датчик на другие контакты, потому что он все равно не ограничен. Вы можете использовать любую пару цифровых контактов. Затем MPU можно подключить к A4 и A5, так как они являются выводами аппаратного интерфейса I2C. IMO, это более чистое решение, поскольку ядро протокола I2C будет обрабатываться аппаратно, а код ничего для этого не делает. Код просто помещает данные в буфер, не более того. Также он не будет использовать никакое другое оборудование внутри микроконтроллера.
Какой из этих вариантов лучше, решать вам. Возможно, у вас есть веская причина не перемещать ультразвуковой датчик на другие контакты.
Упс: ЖК-дисплей с I2C подключен к A4 и A5, а не к ультразвуковому датчику. Так что, я думаю, мне придется пойти с первым?, @SQLinjector
Вы можете подключить несколько устройств к одной и той же шине I2C. Это шина, и каждое устройство имеет адрес., @chrisl
- Как очистить буфер FIFO на MPU6050?
- Как сгенерировать аппаратное прерывание в mpu6050 для пробуждения Arduino из режима SLEEP_MODE_PWR_DOWN?
- Понимание того, почему следует избегать «String» и альтернативных решений
- Объяснение кода MPU6050
- Изменение адреса I2C MPU-6050
- Снять гравитацию с акселерометра MPU-6050
- Скорость передачи данных акселерометра mpu6050 в Arduino Uno и частота дискретизации mpu6050
- Как соединить L293D и MPU6050 для совместной работы?
Вы видели программную библиотеку I2C [здесь](https://playground.arduino.cc/Main/SoftwareI2CLibrary/)?, @chrisl
Почему бы не перенести ультразвук на другие контакты? Кстати: SCL/SDA и A4/A5 физически являются одними и теми же контактами — вы не можете использовать оба сразу., @Majenko