Forum: Mikrocontroller und Digitale Elektronik HTU21D I2C Problem mit NodeMCU


von Ruphy .. (ruphy)


Lesenswert?

Hey,

habe da ein kleines Problem, und würde gerne mal euren Rat haben.
folgendes Setting:
- NodeMCU ESP 0.9
- Sensor HTU21D
- Software: Arduino SparkFun_HTU21D_demo
- Pullup 4,7 kOhm an SCL und SDA

Nachdem ich alles verbunden habe, kam über die Serielle Schnittstelle 
immer ein Error, dass der Sensor nicht gefunden wurde.
Habe hin und her probiert und kam dann darauf mit dem Multimeter 
nachzumessen. Siehe da... immer wenn ich SCL und VCC gemessen habe, 
kamen plötzlich Werte.
Wie kann das sein? Habe dann probiert ein 1 MOhm zu den Widerständen zu 
schalten (müsste in etwa der Innenwiderstand vom Multimeter sein). Aber 
kam da auch zu keiner Lösung.
... Hilfe?

Danke schonmal im vorraus.
Gruß
Ruphy

von Jim M. (turboj)


Lesenswert?

Könnte auch ein Wackelkontakt sein...

von Ruphy .. (ruphy)


Lesenswert?

Der Fehler ist reproduzierbar an drei Sensoren. Bei allen der gleich 
Effekt...
Interessanterweise tritt der Effekt immer auf, wenn ich mit dem 
Multimeter zwischen VCC/Ground und SDA/SCL messe.

von Pete K. (pete77)


Lesenswert?

Ruphy .. schrieb:
> Nachdem ich alles verbunden habe

Wie hast Du das denn verbunden?
Hast Du Dir mal die Schaltpläne Deiner Komponenten angeschaut? --> 
Pullups? 5V an den Ausgängen?

: Bearbeitet durch User
von Ruphy .. (ruphy)


Lesenswert?

okay. war ein Wackelkontakt... Habe das Massekabel noch nicht getauscht. 
Hier lag der Fehler.
DANKE!

von Pete K. (pete77)


Lesenswert?

Du hast trotzdem doppelte Pullups und gehst mit 5V von Deinem Sensor an 
die 3.3V Beinchen des ESP8266. Das kann gutgehen, muss aber nicht.

von Ruphy .. (ruphy)


Lesenswert?

Warum doppelte Pullups? Hat der ESP intern schon Pullups geschalten?! 
VCC ist 3,3 V.

von Ruphy .. (ruphy)


Lesenswert?

Nochmal ein kleinen Beitrag zu Arduino Pullups:
Wenn man die Standard Bibliothek von Arduino benutzt, dann sind die 
Internen Pullups aktiviert.
Zum deaktivieren muss man die Libs bearbeiten.
finde die twi.c unter \libraries\Wire\utility\ oder so ähnlich. Suche 
nach:
// activate internal pullups for twi.
 digitalWrite(SDA, 1);
 digitalWrite(SCL, 1);

und änder zu:
 digitalWrite(SDA, 0);
 digitalWrite(SCL, 0);

http://panasonic.mironto.sk/testing/pullups/

Achtung beim ESP8266 kann es zu Problemen führen mit dem Wlan, da der 
Wlan Treiber scheinbar auf D1 und D2 zugreift (und deshalb die Pullups 
Standard gesetzt sind). Hier einfach Pullups mit 4,7 kOhm einfügen, dann 
klappt das Verbinden wieder ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.