www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SHT11 falscher Rückgabewert


Autor: chrigu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich betreibe den SHT11 an einem AtMega16, leider gibt es ein Problem 
beim auslesen der Messwerte.
Nachdem der Sensor die Messung gemacht hat, zieht er die Data Leitung 
gegen GND. Danach lese ich die Werte aus.
Die ersten beiden Bits sind immer auf "0", die nachfolgenden alle auf 
"1". Da ich in der zwischenzeit nichts am Port des uC ändere(weder 
Zustand noch DDR) kann das Problem nur beim Sensor liegen.
Ich habe die Vermutung, dass der Sensor die Messung nicht durchführt. 
Was könnte der Grund sein? Ist er defekt? Hat vieleicht jemand die 
gleiche Erfahrung gemacht?
Der Befehl zur Messung der Temperatur hat der Sensor mit einem ACK 
quittiert!
Mit freundlichen Grüssen
chrigu

Autor: Joerg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Datenblatt steht, dass der µC die Daten vom Sensor nach jedem Byte 
mit ACK bestätigen muss, "[ ... ]the controller may terminate the 
communication after the measurement data LSB by keeping ack high."
und dass die ersten 2 Bytes 0 sind ist auch logisch: der sensor liefert 
max. 14Bit "right-aligned", d.h. zwei Mal 0 vor dem eigentlichen Wert. 
(Alle Informationen aus dem Datenblatt )

Autor: chrigu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Joerg,
danke für deine Antwort,
das mit den 2 Nullen am Anfang dachte ich mir. Und das ACK schicke ich, 
oder besser gesagt der Mikrocontroller auch schön brav nach jedem Byte. 
Trotzdem, die restlichen Bits, die der SENSOR schickt, sind auf High, 
egal ob Temperatur oder Feuchtigkeitsmessung.
Gibts noch andere Ideen, woran es liegen könnte?
Gruss & Danke

Autor: Joerg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du mal Sourcecode posten? wahrscheinlich ist da der Fehler.. ;)

Autor: chrigu (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Joerg,
hier poste ich mal den Sourcecode, den ich verwende. Das h-file befindet 
sich am Ende des humid.c Files.
im main rufe ich die Funktion
TemperatureSHT11Func()
auf.

Ich möchte nochmals die Frage in die Runde werfen:
wenn der Sensor ein ACK zurückschickt, nachdem der uC den Befehl 
gesendet hat, ist das eine Garantie, dass der Sensor den Befehl korrekt 
erhalten hat?

Ausserdem ist mir aufgefallen, dass das Data Signal nach dem ACK des 
Sensors langsam (innerhalb ca. 10ms) auf 2.5V sinkt.


Danke für eure Bemühungen
chrigu

Autor: chrigu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Joerg,
du musst dich nicht mehr weiter bemühen, den Fehler zu finden. Der 
Fehler war beim Sensor, respektive bei der Verkabelung. Die Speisung war 
nicht sauber gelötet, leider habe ich nie direkt am Pin gemessen, daher 
fand ich es nicht von Anfang an raus. Das erklährt dann auch den 
Spannungsabfall an der Data Leitung!
Trotzdem danke für deine Hilfe!
mit freundlichen Grüssen
chrigu

Autor: Joerg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.