Beschleunigungssensor MMA7455 über I2C auslesen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich hänge jetzt schon länger fest an dem Versuch den MMA7455 über I2C auszulesen!

    Handelt sich dabei um Folgenden: MMA7455

    Habe den soweit(meiner Meinung nach) korrekt verbunden. VCC an 3,3V, GND an Masse, SDA an Pin 3 und SCL an Pin 5!

    Da ich das erste Mal mit I2C arbeite, habe ich Moment so meine Probleme.

    Über i2cdetect -y 1 wird Folgendes ausgegeben

    Code
    pi@raspberrypi ~ $ sudo i2cdetect -y 1
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- 3b 3c 3d -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --


    Das ist schon mein erstes Problem. Ist das normal, dass ein Gerät, als drei Geräte ausgegeben werden kann? (edit: Ok gerade ist mir in den Sinn gekommen, dass evtl. für jede Achse ein Gerät angezeigt wird)

    Habe dann Folgendes Skript im Internet gefunden und versucht auszuprobieren:

    Originalcode hier: Klick!


    Allerdings erhalte ich immer diese Fehlermeldung:

    Code
    pi@raspberrypi ~ $ sudo python MMA7455.py
    Traceback (most recent call last):
      File "MMA7455.py", line 30, in <module>
        MMA7455.setUp()
      File "MMA7455.py", line 11, in setUp
        self.b.write_byte_data(0x3B ,0x16 ,0x55)
    IOError: [Errno 5] Input/output error

    Das Gerät scheint also nicht zu existieren!
    Kann mir vllt. jemand helfen, was ich genau anders machen muss?

    Vielen Dank!

    Einmal editiert, zuletzt von infinit3 (29. Januar 2014 um 11:13)

  • Hallo infinit3,

    ich habe exakt den gleichen Beschleunigungssensor und auch genau so verbunden.
    Der Fehler ist bei der Ausgabe von i2cdetect zu sehen.

    Zitat


    Ist das normal, dass ein Gerät, als drei Geräte ausgegeben werden kann?

    Zu deiner Frage:
    Es ist nicht normal, dass 3 Geräte angezeigt werden, das hat auch nichts mit den Achsen zu tun.
    Zum Vergleich einmal hier meine Ausgabe mit i2cdetect:

    Code
    pi@raspberrypi ~ $ sudo i2cdetect -y 1
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- 1d -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --

    Tausche einmal die Jumper-Kabel oder überprüfe die Löstellen, je nachdem wie du den Sensor an den Raspi angeschlossen hast. Schreib bitte auch einmal, wie du i2c aktiviert hast bzw. den Inhalt von "/etc/modules" bzw. "/etc/modprobe.d/raspi-blacklist.conf".

    Ich habe übrigens auch erst den Code aus dem PDF-Dokument genommen und der funtionierte bei mir ebenfalls nicht, deswegen hier einmal das Script, das bei mir einwandfrei läuft:

    Gruß
    bl4ckOut

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!