Stromversorgung des ads1115 i2c-Moduls

Ich habe große Probleme, einen Prototypen auszuführen, der aus zwei I2C-Modulen besteht, von denen eines zu Beginn deaktiviert ist.

Hier ist die Liste der Komponenten:

  • Arduino Uno
  • LCD-I2C-Modul
  • Feuchtigkeitssensormodul (ads1115 + Feuchtigkeitssensor)

Das Feuchtigkeitssensormodul ist standardmäßig ausgeschaltet, um eine Oxidation der Sensorelektrode zu verhindern.

Wenn das Arduino startet, erzeugt der Strom, der in den SDA/SCL-Pins des Feuchtigkeitssensormoduls fließt, eine Schleife und kollidiert mit dem LCD-Modul.

Ich kann es zum Laufen bringen, wenn ich den Transistor entferne und den Vin-Pin des Feuchtigkeitssensors direkt mit dem Arduino Vout verbinde

Wie kann ich sie dazu bringen, zusammenzuarbeiten? Ich denke, ich sollte irgendwo eine Diode verwenden oder einen oder zwei weitere Transistoren verwenden, um zu verhindern, dass Strom in SDDA / SCL-Pins eintritt ...

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Bitte zeigen Sie in Ihrem Schaltplan, wo sich die beiden Pull-up-Widerstände auf den SDA- und SCL-Leitungen befinden und an welche Spannungsquelle diese Widerstände gehen. Ich würde hoffen, dass sie zur Arduino Vdd-Versorgung gehen. Der Schaltplan-Editor erlaubt die Bearbeitung von Komponentenwerten. Wir brauchen wirklich einen korrekten Schaltplan, um zu helfen.
Und zeige deine Erdung und Kraft, wenn du schon dabei bist.
Schema korrigiert! Die beiden Pull-up-Widerstände befinden sich im Arduino Uno
Bei großen Entfernungen spielt die Kabelkapazität eine wichtige Rolle und bildet mit Pull-up-Widerständen einen Tiefpassfilter.
Ich habe ein abgeschirmtes Kabel verwendet. Das löste das Problem des zufällig arbeitenden LCD-Moduls. Aber ich kann die Aktivierung des Feuchtigkeitssensors immer noch nicht steuern
Ihr ADS1115 verfügt über ESD-Schutzdioden und klemmt den i2c-Bus, wenn er ausgeschaltet ist.

Antworten (1)

I2C wurde nie entwickelt, um über große Entfernungen zu funktionieren, es ist nur zum Verbinden von Geräten auf derselben Leiterplatte oder benachbarten Leiterplatten gedacht. Die Kapazität langer Drähte tötet die Signalflanken. Es gibt jedoch Möglichkeiten, diese Arbeit zu erhalten. Dieser Hackaday-Artikel beschreibt einige Optionen. Von diesen Optionen sollten Sie wahrscheinlich einen differentiellen Buspuffer ( PCA9615 ) wählen. Der Differentialpuffer löst zwei Probleme für Sie: Er treibt Ihr langes Kabel an und löst das Kapazitätsproblem; und es schützt Sie vor Rauschen, das auf das Kabel induziert wird.

Ich habe ein abgeschirmtes Kabel verwendet. Das löste das Problem des zufällig arbeitenden LCD-Moduls. Aber ich kann die Aktivierung des Feuchtigkeitssensors immer noch nicht steuern