2016-05-21 3 views
1

Ich verwende MPU6050 an Bord eines GY-86-Moduls. Ich habe auch ein DS3231 RTC-Modul. Als ich jedes Datenblatt durchforstete, fand ich, dass DS3231 und MPU6050 dieselbe i2c Adresse haben, die 0x68 ist. Ich habe im MPU-Datenblatt gelesen, dass, wenn ich den AD0-Pin an 3.3 anschließe, die Adresse 0x69 wird. aber ich kann keine AD0 auf meinem Modul finden. Ich habe nur vcc-3.3v-SCL-SDA-INTa-FSYNC-DROY Ich denke, ich muss i2c Adresse von mpu6050 oder ds3231 ändern. damit sie nicht in Konflikt geraten. Wie kann ich i2c Kleid von MPU oder DS-Modul ändern.i2c-Adressenkonflikt zwischen MPU6050 und DS3231

Antwort

1

Blick auf die GY-86 schematic Ich fand, der AD0-Pin ist hart auf der Platine geerdet. Dies bedeutet, dass es keine Möglichkeit gibt, die MPU6050-Slave-Adresse zu ändern, es sei denn, Sie können eine Spur auf der Platine zum Schneiden finden (unwahrscheinlich). Soweit ich sehen kann, kann der DS2321 seine Adresse auch nicht ändern.

Dies lässt Sie mit ein paar Möglichkeiten:

  1. ändern heraus der Geräte zu einem anderen Modell mit einer anderen Adresse. Ich nehme an, dass du das wirklich nicht willst.
  2. Wenn Ihr Master-Gerät (das Sie nicht angegeben haben) mehrere I2C-Bus-Controller hat, verbinden Sie jedes Gerät mit einem anderen Bus.
  3. Verwenden Sie einen I2C-Multiplexer, um die Geräte auf verschiedene "virtuelle" Busse zu setzen. Hier ist ein module mit einem 1-8 Multiplexer, der den Job erledigen sollte (obwohl nur ein 1-2 wirklich notwendig ist).
+0

Oh Pech :( Ich benutze Arduino Mega, die nur einmal I2C Bus hat. Ich werde zwischen Ihrer 1 und 3 Option entscheiden :) Danke für Ihre Hilfe. – alireza