- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 6 von 6

Thema: I2C für Anfänger, Arduino - MMA7660 Beschleunigungssensor

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied Avatar von PlasmaTubeI²C
    Registriert seit
    19.03.2013
    Ort
    Nürnberg
    Alter
    29
    Beiträge
    78
    Hi,

    danke für die Antworten!
    Habs schonmal hinbekomen, es werden endlich Werte ausgegeben. Da ich ja mehrere Werte abfragen will, muss ich auch mehrere Variablen zum temporären Zwischenspeichern bereitstellen.

    Code:
    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, 7);
      //wait for response
      while(Wire.available() == 0);
      //get the value
      int a = Wire.read();
      int b = Wire.read();
      int c = Wire.read();
      int d = Wire.read();
      int e = Wire.read();
      int f = Wire.read();
      int g = Wire.read();
      //printout
      Serial.print(a);
      Serial.print(", ");
      Serial.print(b);
      Serial.print(", ");
      Serial.print(c);
      Serial.print(", ");
      Serial.print(d);
      Serial.print(", ");
      Serial.print(e);
      Serial.print(", ");
      Serial.print(f);
      Serial.print(", ");
      Serial.print(g);
      Serial.println(", ");
      delay(100);
    }
    Der Hauptteil bisschen verändert, mit Wire.write sage ich dass ich das erste Register auslesen möchte, so viel hab ich erstmal verstanden. Aber ich will ja nur das erste Register mit den
    X-Werten auslesen, welches aus 7 nutzbaren Bits besteht, soweit ich das richtig lese, also schreibe ich doch auch beim Wire.request dass ich 7 Bits erhalten möchte oder? Oder kann man
    die garned einzeln auslesen?
    Als Return kommen nur die int-Werte der Register von 0x00 - 0x06, nicht der Bit-Inhalt des ersten Registers.
    Heißt das die 7 gibt die Anzahl der auszulesenden Register inklusive dem ersten genannten an und man immer nur auf ein gesamtes Register Zugriff hat, nicht auf die einzelnen Bits?

    Das verwirrt mich grade etwas
    Gruß, Stefan. Rechtschreibfehler gefunden? Kannste behalten!

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.11.2004
    Beiträge
    156
    Zitat Zitat von PlasmaTubeI²C Beitrag anzeigen
    Heißt das die 7 gibt die Anzahl der auszulesenden Register inklusive dem ersten genannten an und man immer nur auf ein gesamtes Register Zugriff hat, nicht auf die einzelnen Bits?
    Genau so ist es. Du kannst immer nur ganze Register auslesen.
    Wenn du nur bestimmte Bits daraus brauchst musst du den ausgelesenen Wert noch maskieren. Um die ersten beiden Bits zu löschen, also auf 0 zu setzen, schreibst du zum Beispiel
    Code:
    x = x & 0b00111111;

  3. #3
    Benutzer Stammmitglied Avatar von PlasmaTubeI²C
    Registriert seit
    19.03.2013
    Ort
    Nürnberg
    Alter
    29
    Beiträge
    78
    Ahh ok, dann is das schonmal klar.
    Und um einzelne Bits zu ändern muss man immer das gesamte Register neu beschreiben. Was macht in deinem code das b nochmal?
    Wie würde das jetzt in meinem Beispiel ausschauen wenn ich das erste Register neu beschreibe?
    Wire.write(0x00) ruft das Register auf, was muss man dann noch schreiben, um alle Bits zu überschreiben?
    Gruß, Stefan. Rechtschreibfehler gefunden? Kannste behalten!

Ähnliche Themen

  1. I2C Gyroskop/Beschleunigungssensor
    Von Autchirion im Forum Sensoren / Sensorik
    Antworten: 9
    Letzter Beitrag: 03.04.2013, 12:01
  2. Arduino Anfänger hat frage
    Von der_tom im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 13.12.2012, 15:53
  3. I2C Arduino
    Von DanielSan im Forum Arduino -Plattform
    Antworten: 1
    Letzter Beitrag: 09.05.2012, 19:50
  4. Anfänger verzweifelt an der Arduino Software | atan
    Von Sim0n im Forum Software, Algorithmen und KI
    Antworten: 12
    Letzter Beitrag: 29.02.2012, 15:46
  5. Beschleunigungssensor BMA180 am Arduino
    Von Calmato im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 15.07.2011, 17:43

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test