ESP8266-12F mit MPU6050?
Hallo, ich versuche gerade mit einem ESP-12F einen MPU6050 auszulesen. Der Sensor ist über IO04 und IO05 angeschlossen. Mit einem i2c Scanner wurde dieser auch erkannt mit der Adresse 0x68. Wenn ich den Sensor nun auslesen möchte, bekomme ich nur 0en oder -1en ausgegeben für Lage und Beschleunigung. Anderen Sensor und esp habe ich bereits ausprobiert.
Auf dem Bild der Aufbau. Ich benutze einen Programmiersockel für die ESPs.
Hier der Code:
#include <Wire.h>
const int MPU_addr = 0x68;
int16_t Acc_rawX, Acc_rawY, Acc_rawZ, Tmp, Gyr_rawX, Gyr_rawY, Gyr_rawZ;
void setup() {
delay(1000);
Wire.begin();
Wire.beginTransmission(MPU_addr);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
Serial.begin(115200);
}
void loop() {
Wire.beginTransmission(MPU_addr);
Wire.write(0x3B);
Wire.endTransmission(false);
Wire.requestFrom(MPU_addr, 14, true);
Acc_rawX = Wire.read() << 8 | Wire.read();
Acc_rawY = Wire.read() << 8 | Wire.read();
Acc_rawZ = Wire.read() << 8 | Wire.read();
Tmp = Wire.read() << 8 | Wire.read();
Gyr_rawX = Wire.read() << 8 | Wire.read();
Gyr_rawY = Wire.read() << 8 | Wire.read();
Gyr_rawZ = Wire.read() << 8 | Wire.read();
Serial.print (Acc_rawX);
Serial.print (" ");
Serial.print (Acc_rawY);
Serial.print (" ");
Serial.print (Acc_rawZ);
Serial.print (" ");
Serial.print (Gyr_rawX);
Serial.print (" ");
Serial.print (Gyr_rawY);
Serial.print (" ");
Serial.println (Gyr_rawZ);
}
Hat jemand eine Idee, warum ich nicht die richtigen Werte ausgegeben bekomme? Ganz vielen Dank im Voraus!
1 Antwort
Hallo,
soweit ich sehen kann, sind 4 drähte zu wenig..der INT-Pin (Interrupt) brauchts dazu.
schuamal ob dieser sketch / lib besser funktioniert:
https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050
Hallo, erstmal vielen Dank für die Antwort!
Kannst du mir vielleicht kurz erläutern, wozu die Benutzung des INT-Pins gut wäre? Ich habe den Pin in früheren Projekten nie benutzt und es hat trotzdem immer funktioniert. Ich kenne es nur, dass man über den Pin den Arduino/Esp bei Erschütterung/Bewegung des MPU aus dem sleep-mode aufwecken kann.