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
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 )
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
Kannst du mal Sourcecode posten? wahrscheinlich ist da der Fehler.. ;)
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.