Ist dieser Projektaufbau mit Raspberry Pi und ADS1115 richtig durchdacht?
Hallo,
ich Versuche per I2C-Bus das Gerät "ADS1115" mit meinem Raspberry 1B zu verbinden.
Ich habe vieles schon versucht, darunter:
- Einen Raspberry 3B anstelle des 1B zu benutzen
- Via "lsmod" überprüfen, ob das i2c-Kernelmodul aktiviert ist (ja es ist aktiviert)
- Die Baudrate auf 1 kHz, 10 kHz, 15 kHz, 100 kHz umzustellen
- Verschiedene Python-Module anstelle des CLI-Tool "i2ctools" verwenden
Aber alles hilft nichts, denn der Befehl "i2cdetect -y 1", welcher die erkannten Geräte vom I2C-Bus 1 anhand ihrer Adressen in einer Tabelle ausgeben soll, gibt nur eine leere Tabelle aus.
Ich verstehe nicht, was ich falsch gemacht habe, weil bisher alle Quellen im Internet darauf hindeuten, dass ich alles richtig mache. Ich vermute mittlerweile, dass der ADS1115 vielleicht kaputt ist und bereits kaputt geliefert wurde. Normalerweise soll er nicht so leicht kaputt zu machen sein, und ich war vorsichtig damit. Lieferant Amazon, also wer weiß.
Hier seht ihr jedenfalls meinen Projektaufbau / Wie alles miteinander verkabelt ist. Ich würde mich hier sehr über Feedback freuen:
Die Schnittstellen des ADS1115 sind wie folgt verbunden:
- VDD -> 3.3V Pin (lila)
- GND -> Masse Pin (schwarz)
- SCL -> I2C SCL (weiß)
- SDA -> I2C SDA (hellgrau)
- ADDR -> nichts
- ALRT -> nichts
- A0 -> ...
- A1
- A2
- A3
Nach Vorschlag von @jort93 habe ich einen zweiten Masse-Pin an die Schnittstelle ADDR angeschlossen. Hier der aktualisierte Aufbau mit
- ADDR -> Masse Pin (schwarz)
1 Antwort
Du musst den addr Pin verbinden um die i2c addresse auszuwählen. Mit gnd verbunden ist Default, 0x48, mit vdd verbunden ist 0x49 usw.., 4 Adressen kann man auswählen.
Einfach floating ist keine gültige Konfiguration.
Vielleicht ist ein pulldown widerstand verbaut. Aber Versuch mal vielleicht mit vcc verbinden.
Wenn du das schon versucht hast, dann ist das wahrscheinlich nicht das Problem
Ja leider sehe ich das auch so.
Pull-Widerstand ist im RPi übrigens laut Internet bei den Pins SDA und SCL verbaut.
Was meinst du mit "mit vcc verbinden"? Muss das erstmal googlen.
Theoretisch könnten die Kabel kaputt sein, hast du sie mal gemessen?
Hast du irgendwelche anderen i2c Geräte? Vielleicht ist ja die library auch irgendwie kaputt.
Vcc sind in deinem Fall die 3.3v. dann hat er eine andere Addresse
Die Kabel sind neu gekauft und mein Multimeter hat eigentlich an verschiedenen Stellen auch schon Spannung gemessen (3.3V wie ich erwartet hatte).
Andere i2c-Geräte habe ich leider keine.
Ist nicht unmöglich dass es kaputt ist. Dieses 2€ China Zeug kommt schonmal kaputt an.
Habe ich jetzt auch noch mal versucht, und leider wieder eine leere Tabelle bei i2cdetect erhalten. (Addr an den zweiten 3V3-Pin des Raspberry)
Für die anderen Adressen kann man dann ja noch SDA bzw. SCL bei ADDR anschließen, was ich mit etwas Aufwand noch versuchen könnte. (Habe kein Board, muss irgendwie einen Knotenpunkt für die Kabel basteln) Kommt mir zwar auch nicht zielführend vor, aber mir fällt langsam nichts mehr ein.. 🫠
Die header könnten schlecht festgelötet sein. Die Löcher scheinen kein plating zu haben, sind damit etwas anfälliger. Das sieht man in der der Regel auf der Rückseite wenn die Lötstellen entweder ungleichmäßig sind, oder Risse aufweisen.
Danke für die Antwort, werde ich direkt nochmal versuchen.
Allerdings hatte ich daran auch schonmal bedacht, einen anderen Masse-Pin entsprechend angeschlossen, und das selbe Ergebnis. Melde mich gleich nochmal.