Hi,

ich bräuchte ein bisschen Unterstützung beim Einstieg in die I2C-Welt

Bisher habe ich um Sensoren die per I2C kommunizieren auszulesen eine entsprechende Library für Arduino verwendet,
aber ich will jetzt auch mal die internen Register selbst ansprechen. Als Beispiel soll hier der Beschleunigungssensor
MMA7660 dienen. (Datenblatt gibt es hier: http://http://garden.seeedstudio.com.../MMA7660FC.pdf )
Ich hab zwar schon Google nach Infos durchforstet, aber mir fehlen halt die Grundlagen dazu. Wobei die Arduino-Befehle für I2C noch recht übersichtlich an der Zahl sind.

Code:
#include <Wire.h>
#define I2C_ADDRESS 0x4C

void setup(){
  Serial.begin(9600);
  Wire.begin(I2C_ADDRESS);
}
void loop(){  
  //start talking
  Wire.beginTransmission(I2C_ADDRESS);
  //ask for register
  Wire.write(0x00);
  //complete transmission
  Wire.endTransmission();
  //request 1 byte
  Wire.requestFrom(I2C_ADDRESS, 1);
  //wait for response
  while(Wire.available() == 0);
  //get the value
  int x = Wire.read();
  //printout
  Serial.print(x);
  Serial.println(", ");  
  delay(100);    
}
Der Code an sich funktioniert leider nicht, bekomme nur 0-Werte für x.

Klar erstmal die Wire library hinzufügen und die Adresse des Sensors angeben. Mit Wire.begin die I2C Verbindung initialisieren und mit Wire.beginTransmission den Datenverkehr
zwischen Arduino und dem MMA7660 beginnen. Das Wire.write(0x00) soll das erste Register ansprechen, was sagt dem Sensor dieser Befehl? Praktisch eine Anfrage
dass dieses Register ausgelesen werden möchte? Wie mache ich dann am besten weiter? Mein Ziel ist es, nur das erste Register auszulesen, so schwer
wird das doch wohl ned sein...

Hoffe auf Antworten!