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);
}
Bild zum Beitrag
Arduino, I2C, ESP8266
Controllno MAXI Pure I2C Display?

Hallo zusammen,

ich bastel mir gerade eine kleine Steuerung, für die ich unter anderem ein Display brauche. Da ich noch einen Controllino MAXI Pure herumliegen habe, wollte ich das mit dem realisieren.
Als Display habe ich mir ein LCD-Display mit I2C Schnittstelle dazu gekauft.

Die I2C-Schnittstelle kann man beim normalen Arduino ja über die Pins A4 und A5 ansteuern. Genauso habe ich das beim Controllino auch gemacht. Also +5V auf VCC, GND auf GND, A4 auf SDA und A5 auf SCL.

Als Programm habe ich in den Controllino das Beispielprogramm mit der NewLiquidCrystal Bibliothek geladen, das sollte einfach 2 Zeilen auf das Display schreiben und dann die Hintergrundbeleuchtung jede Sekunde Ein und Ausschalten. Allerdings passiert nach dem Hochladen nichts.

Was mir jetzt aufgefallen ist, der Controllino MAXI hat anscheinend auf den PIN Headern eine extra I2C-Schnittstelle. Der Pure hat diese Pins ja nicht. Allerdings sollte es ja trotzdem über die A4/A5 Kontakte funktionieren, genauso wie beim Arduino oder nicht?

Controllino: https://www.controllino.biz/product/controllino-maxi-pure/

Display: https://www.amazon.de/gp/product/B07DDGNPX1

Code:

#include <Wire.h>

#include <LCD.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);

void setup(){

 lcd.begin(24, 4);

 lcd.clear();

 lcd.setCursor(0,0);

 lcd.print("AZ-Delivery.de");

 lcd.setCursor(0,1);

 lcd.print("20x4 & FC-113!");

}

void loop() {

 lcd.setBacklight(HIGH);

 delay(1000);

 lcd.setBacklight(LOW);

 delay(1000);

}

Computer, Display, Technik, Elektronik, Arduino, Technologie, I2C, SPS-Programmierung, Spiele und Gaming
Kann man echte I2C-Sensoren an den EV3 anschließen?
  • Das I2C-Protokoll läuft wie im Bild "I2C-Protokoll" ab.
  • LEGO's US-Sensor stellt sich jedoch wie im Bild Startsequenz bzw. Zyklus dar.

Nun stell ich mir die Frage, warum alle beim NXT/EV3 vom I2C-Protokoll sprechen? Auch ist die Übertragungsgeschwindigkeit von 58 Baud nicht geeignet für 1000 Messwerte / Sekunde. Das aber verspricht LEGO selbst. Ein Zyklus benötigt 0,1 Sekunde. Das ist ganz sicher keine SCL-Leitung. Gibt es vielleicht nur eine "ein Draht Verbindung" also nur SDA? Warum aber werden von LEGO in ihren eigenen Schaltplänen die Leitungen am Controller für SDA und SCL verwendet?

Viel zu viele Fragen.

Also jetzt mal von Anfang an. Ich habe inzwischen an vielen Stellen gelesen, das der EV3 Sensoren über das I2C-Protokoll einlesen kann. Nun wollte ich "meinen" Kindern aus dem Jugendzentrum der Gruppe "LEGO-Robotik" zeigen, dass man auch eigene Sensoren herstellen und anschließen kann. So versuchte ich den mir bekannten und bereits an anderer Stelle erfolgreich eingesetzten DS1721 (Temperatursensor) an den EV3 anzuschließen und auszulesen. Nach einigen Fehlschlägen habe ich die oben erwähnten Messungen vorgenommen und stehe jetzt vor mehr Fragen als Antworten.

  1. Kann mir jemand helfen?
  2. Wie kann ich ohne fremde Hardware/Schnittstellen von Drittanbietern z.B. den DS1721 an den EV3 anschließen?
  3. Hat jemand über das serielle Protokoll bereits einen Sensor im Eigenbau erfolgreich zum laufen bekommen? Und wenn ja, wie?
  4. Ist es richtig, dass man für das serielle Protokoll von LEGO PIN1 u. PIN3 brücken muss, damit der EV3 das Protokoll nutzt? Alle Sensoren mit dem LEGO-I2C-Protokoll haben diese Brücke. (Analoge Sensoren benötigen eine Brücke von PIN2 u. PIN3. Erfolgreich getestet.)

Schon einmal vielen Dank für jede Antwort. Für hilfreiche Antworten noch mehr Dank. Für Lösungen zusätzlich eine liebevolle Umarmung. :-)

citkid

Bild zum Beitrag
Computer, I2C, ev3

Meistgelesene Fragen zum Thema I2C