Hallo, ich steuer mit meinem ATmega1284p einen HIH6130 an. Ich bekomm allerdings für HumidityH, HumidityL, TempH und TempL immer den Wert 40 zurück oder hexadezimal 0x28. Die I2C Adresse ist 0x27. Angesteuert wird er wie in den appnotes beschrieben mit i2c_readAck und für das letzte Byte (TempL) mit i2c_readNack der P Fleury Library. Sind die Werte normal oder ist das eher die I2C Adresse, die da zurück kommt? Gruß Heinrich
hat niemand von euch je so einen Baustein benutzt? langsam glaub ich auch, dass es die i2c write adresse ist, ergibt aber eigentlich keinen Sinn
Hallo, der Sensor interessiert mich auch sehr, aber irgendwie sind die Informationen, die Honeywell auf der Website anbietet, sehr mager. Irgendwie finde ich da keine vollständige Kommando Referenz. Oder schaue ich nur nicht richtig? Mich würde da z.B. interessieren, wie man die I2C Adresse umprogrammiert, weil ich mehrere Sensoren am Bus brauche. Hast du eine vollständige Referenz? Das hier habe ich noch beim Stöbern im Internet gefunden: http://www.phanderson.com/arduino/I2CCommunications.pdf Abschnitt 2.2 sagt, dass der Sensor im Power Down bleibt, bis er ein Measurement Request Command bekommt. Also die Adresse und r/w = 0 (also ein WRITE) senden und Kommunikation mit STOP terminieren. Erst dann kann man gewisse Zeit später mit einen 4-Byte read (r/w = 1) die Daten holen. 0x28 kann übrigens nicht das Write Command sein, weil die Adresse um 1 nach rechts geschiftet + 1 für write gleich (0x27 << 1) | 0x01 = 0x4e | 0x01 = 0x4f sein müsste. Oder sehe ich da irgendwas falsch? Gruß, Stephan
Hallo, bei mir kommt immernoch als Ausgabe 0x28 zurück, auch nachdem ich ein write geschickt hab, was aber wohl nicht verwunderlich ist, weil ich wohl wie du sagst, die falsche Adresse benutzt hab. Die Referenz die du hier gepostet hast, hab ich auch, was besseres gibts nicht :-( wie kommst du auf (0x27 << 1) | 0x01 = 0x4e | 0x01 = 0x4f ?
hab die Bits geschoben wie dus gesagt hast, es funktioniert irgendwie immernoch nicht. Das Teil schläft und schläft
Ich hab auch das selbe Problem mit dem Sensor, man kann das Teil scheinbar einfach nicht wecken
Hallo, der letzte Post ist schon etwas her, aber es hat eine Weile gedauert, bis ich meine Sensoren erhalten habe. Sie funktionieren tadellos. Das oben beschriebene Problem kann ich bei mir nicht feststellen. Ob euch mein Code was nützt weiß ich nicht - ich verwende den Sensor in einem Embedded Linux System - aber hier mal die entscheidenden Zeilen (Fehlerbehandlung rausgekürzt):
1 | #include <fcntl.h> |
2 | #include <sys/ioctl.h> |
3 | #include "i2c-dev.h" |
4 | |
5 | ...
|
6 | |
7 | fd = open(i2c_dev, O_RDWR); |
8 | ioctl(fd, I2C_SLAVE, HIH6131ADDR); |
9 | write(fd, &dummy, 0); |
10 | usleep(100000); |
11 | read(fd, &data, 4); |
Das write mit Länge 0 ergibt den Measurement Request. Dann warte ich 100ms und hole mit read 4 Bytes ab. Nach dem Umformatieren von data erhalte ich sehr plausibele Werte für Temp. und Hum. und der Sensor reagiert auch richtig auf z.B. anhauchen oder auf die Hand legen. Habt ihr vielleicht Sensoren, die mit einer anderen Adresse programmiert wurden?
nein unsere Adressen sollten eigentlich die gleichen sein, ich probiers noch mal aus
Hallo, Ich bin neu in diesem Forum, habe aber schon viele nützliche Tips hier bekommen. Den Sensor HIH6130 verwende ich mit einen Atmega 328 und ebenfalls mit der Lib. von P Fleury. Ich hatte genau dasselbe Problem mit dem Sensor. Die Lösung ist man das man die Adresse um 1 nach rechts schiften muß damit es funktioniert. Das hängt damit zusammen wie die Adresse im Datenblatt angegeben ist. Wenn du die Adresse 0x4E verwendest kannst du die Lib. ganz normal verwenden und es funktioniert.
Hello Henry, can you please upload the code for this sensor, it will be more useful for my project since I am using this HIH6130-021-001 sensor with ATmega644pa controller
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.