Arduino-Neuling, Sensoren geschrottet?

Hallo,

mache meine ersten Gehversuche mit einem Arduino Mega 2560 und habe mit dem Feuchtigkeitssensor HH10D und dem Beschleunigungssensor ADXL345 experimentiert. Habe u.A. mit diesen Ressourcen gearbeitet.
http://www.sparkfun.com/tutorials/240
http://bildr.org/2011/03/adxl345-arduino/
http://tushev.org/articles/electronics/46-interfacing-hh10d-with-arduino
http://www.patrikhermansson.se/?q=node/437

Mit der Ardunio v101 Software komme ich so weit klar und die Programme sind so weit lauffähig, die Libraries sind richtig eingebunden, habe auch entsprechende Anpassungen für die neuen Arduino Versionen getätigt (Arduino.h statt WProgram.h, Serial.read statt receive).

Aber keines der Experimente funktioniert wie es soll (Keine Ausgabe oder nur unsinnige, bzw. 0-Werte), daher wollte ich mal fragen, ob ich vielleicht ein paar Gedankenfehler habe. Die empfindlichen Sensoren sollen ja maximal mit 3,3V gespeist werden, wenn ich am Steckbrett aber ein Spannungmesser betreibe, messe ich ohne Sensoren die entsprechenden 3,3V. Stecke ich aber die Sensoren auf, steigt die Spannung je nach Sensor auf 4V oder 4,3V.

Scheint das die Sensoren gekillt zu haben? Und hat vielleicht jemand eine Idee, wie ich überprüfen kann, ob die Sensoren noch intakt sind? (einfache Testprogramme, etc?).

Würde mich sehr freuen wenn ihr ein paar hilfreiche Anregungen habt!

Jack512

Ich habe nicht verstanden wie Du die Sensoren angeschlossen hast.

Die I2C Schnittstelle arbeitet mit Open Collektor Ausgängen die die Signalleitungen nur auf Masse ziehen können. Für den HIGH-Pegel werden 2 Widerstände verwendet. Wenn Du wie bei tushev.org // Simon Tushev vorgeschlagen zwei 4.7kOhm Widerstände von SCL bzw SDA auf 3,3V.

grüße Uwe

Hatte zum Glück noch einen DFRduino Romeo zuhause, und mit dem läuft der Luftfeuchtesensor schonmal!
http://tushev.org/articles/electronics/46-interfacing-hh10d-with-arduino

Warum läufts auf meinem 2560 nicht??? Das Board und den Serial Port habe ich in der Arduino Software natürlich entsprechend geändert. Doch statt der kontinuierlichen Messwertausgabe habe ich keine Ausgabe damit. An den zu verwendenden Pins sollte sich doch nichts ändern oder?

Und noch ne Frage: Wieso der Hinweis mit dem level-shifter auf dieser Page vom Link oben? Klar, der Sensor darf nur 3,3V bekommen, aber die Arduinos haben doch dafür einen 3,3V Ausgang.

  1. Schau auf der Seite des Arduino Megas nach, welche Pins die SCL und SDA Pins sind.

  2. beachte, auf einem 5V Arduino (was deiner ist) hast du zwar einen 3V3 Ausgang, aber die SCL und SDA sind auch 5V! Deine Sensoren wollen aber nur 3V3, da musst du einen logic level shifter einbauen. Da bin ich aber nicht so bewandert, es gibt verschiedene Möglichkeiten.

Am besten zeigst du deinen Aufbau und dein Sketch, so ist das nur Raten.

Ich selber benutze folgenden I2C Logic Level Shifter:
http://www.ebay.de/itm/IIC-I2C-level-conversion-module-5-3v-system-for-arduino-sensor-module-772-/180881703478?pt=LH_DefaultDomain_0&hash=item2a1d63c236

Funktioniert ausgezeichnet !

Das clock und data weiterhin 5V bekommen habe ich tatsächlich nicht bedacht :blush:
Dann werde ich mir lieber erst einmal so einen level shifter besorgen, bevor ich meine Sensoren weiter betreibe.

Und beim Mega scheinen SDL und SCA auf den digital pins 20 und 21 zu liegen. Irgendwie machte mir die Arduino Serie so einen genormten Eindruck, wo ich jeden Pin bei jedem Board gleich erwartet hätte.

Super das hat mich schon ein bisschen weiter gebracht :slight_smile:

Den Level Shifter brauchst Du nicht unbedingt, ich würde es erst mal mit Pull-Ups nach 3V3 probieren. Wenn Du ganz sicher gehen willst, kannst Du das Aktivieren der internen Pull-Ups in der Wire-Bibliothek noch deaktivieren, aber die internen Wiederstände sind so gross, dass sie wahrscheinlich irrelevant sein werden (bei 4k7 oder kleineren Pull-Ups).

Irgendwie machte mir die Arduino Serie so einen genormten Eindruck, wo ich jeden Pin bei jedem Board gleich erwartet hätte.

Die Ungleichheiten werden von der Software nach Möglichkeit korrigiert, aber da die verschiedenen Mikrokontroller die Pins unterschiedlich gemultiplexed haben, kann eine vollständige Übereinstimmung gar nicht erreicht werden.

Irgendwie machte mir die Arduino Serie so einen genormten Eindruck, wo ich jeden Pin bei jedem Board gleich erwartet hätte.

Nichts als gegeben vorrausetzen, sondern immer überprüfen !

Schützt einigermassen vor dummen Überraschungen und vor vermeidbaren Fehlern !