Mehrere I2C-Sensoren verwenden

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

    dies ist mein erster Beitrag hier im Forum, wenngleich ich des öfteren durch google bei Fragestellungen hier schon gelandet bin und mir geholfen wurde. Also, tolles Forum.

    Mein Problem: Ich möchte mehrere I2C-Sensoren auslesen, nun bin ich mir nicht sicher, ob meine Schaltung nicht passt oder 2 Sensoren einfach defekt sind. Bitte verzeiht etwaige Fehler auf der Schaltung, ich bin neu in der Materie und würde mich freuen, wenn alles korrigiert wird, sodass ich lernen kann.

    Hier der Aufbau:
    schaltungq9qjr.png


    Oben nur die Verbindungen eingezeichnet sind zum Feuchtigkeitssensor (https://www.tindie.com/products/miceu…oisture-sensor/), dahinter soll auf dem Bus ein BMP180 angeschlossen werden.

    Nun das Problem, zwar wird der Feuchtigkeitssensor mit

    i2cdetect -y 1


    gefunden, der BMP180 nicht. Auch ein probeweise andere angeschlossene I2C-Sensor (BH1750) wird nicht gefunden. Ich habe alles entsprechend dieser Anleitung (http://tutorials-raspberrypi.de/raspberry-pi-u…ksensor-bmp180/) installiert. Auch andere Anleitungen im Netz habe ich bereits versucht umzusetzen.

    Vielen Dank für die Unterstützung

    Stefan

    Einmal editiert, zuletzt von stefan_muc (6. November 2016 um 04:27)

  • Hallo,

    danke für die Antwort. Vorab noch eine Frage: Die Widerstände, die ich dort gesetzt habe, sind nach meiner Recherche nun wirklich fehlangebracht, sehe ich das richtig?

    Ansonsten gibt i2cdetect nur die Adresse des Feuchtigkeitssensors aus, der gibt auch augenscheinlich korrekte Werte aus.

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

    Sowohl auf SDA als auch SCL liegen 3,27 Volt (sowohbl beim Feuchtigkeits- als auch beim BMP180-Sensor).

  • Moin,
    bitte auch ein Foto des Sensor mit den Anschlüssen einstellen, manchmal sieht man vor lauter Bäumen den Wald nicht, so ist z.b. das Vertauschen von scl und sda ein beliebter Fehler

    Greetz

    Programmierer und Bastler mit der Lizenz zum Löten...........

  • Hi,

    danke für Deine Antwort. Ich hab das bereits mehrfach überprüft, daran dürfte es nicht liegen. Hier das Bild, damit man es besser erkennt, habe ich die Leitungen beschriftet (eben nochmals überprüft).

    sdasclrbswt.jpg

  • Die die Pullupwiderstände für den I2C Bus auf dem Steckboard sind nicht nötig, da auf dem Board des RPi schon 1,8K Pullupwiderstände für den I2C Bus vorhanden sind. Was mir noch so auf den ersten Blick auffällt ist, das Du recht viele Sensoren an den 3,3V des RPi betreibst. Normalerweise sollte man nicht mehr als ca. 50mA von dem 3,3V Pin des RPi für externe Verbraucher entnehmen. Vielleicht solltest Du die Verwendung eine externe 3,3V Spannungsquelle in Betracht ziehen.

  • die 50mA sind eigentlich eine Begrenzung der GPIO Ströme, für Verbraucher mit 3,3V aus der 3,3V Quelle kann man ruhig etwas nehmen, ich denke 50mA zus#tzlich gehen immer, beim alten PI mit RG2 heizte der nur mehr die Platine auf aber +50mA konnte der vermutlich noch verkraften, die neueren PI mit Schaltregler werden sich sogar an +50mA und bissl mehr nicht stören.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Tachchen ...


    Die die Pullupwiderstände für den I2C Bus auf dem Steckboard sind nicht nötig, ...


    ich behaupte jetzt mal, dass die gar nicht am I2C-Bus sind, sondern für den DHT und einen DS18B20 ;)
    Zumindest ist das laut Schalte im ersten Post so ...

    EDIT: Wackelkontakt, (Jumper-Wire) Kabel-Bruch ...

    cu,
    -ds-

  • ich behaupte jetzt mal, dass die gar nicht am I2C-Bus sind, sondern für den DHT und einen DS18B20 ;)
    Zumindest ist das laut Schalte im ersten Post so ...

    Dann schau Dir nochmal das Bild an, es sind 4 Widerstände verbaut, die oberen zwei werden durch Kabel teilweise verdeckt. Der max. Strom vom 3,3V Pin ist auch abhängig, was alles noch am RPi angeschlossen ist, wer kein HDMI o. LAN nutzt, wird sicher etwas mehr Strom, ohne Probleme entnehmen können.

  • Servus,
    hm ... also ich seh' nur zwei ... eventuell kann ich einen dritten erahnen - allerdings nur mit viel gutem Willen :shy:
    Dann wäre das ja sowieso nicht wie im Schaltplan beschrieben aufgebaut und damit wäre da schon eine mögliche Fehlerursache.
    Kann man m.E. wirklich nicht so richtig erkennen. Das ist z.B. einer der Gründe, warum wir auch bei einfachen Sachen einen Schaltplan und kein Foto einfordern sollten.

    Aber vielleicht klärt und der TO mal auf ...
    cu,
    -ds-

  • Servus,

    danke für die rege Diskussion. Ja, ursprünglich waren Widerstände am beiden Leitungen, die aber entfernt wurden. Tatsächlich lag das Problem aber daran, dass beide Sensoren defekt waren. Ich habe heute neue Sensoren erhalten und diese werden auch alle sofort erkannt.

    Vielen herzlichen Dank Euch,

    Stefan.

Jetzt mitmachen!

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