Re: SHT 75 über I2C funktioniert einfach nicht Kategorie: Sensoren (von Johannes - 1.02.2007 17:45) | ||
Als Antwort auf SHT 75 über I2C funktioniert einfach nicht von Wolfram Müller - 26.01.2007 14:57 | ||
| ||
> Hallo, > vielen Dank für die vielen Beiträge, die mir in den letzten Jahren schon viel geholfen haben. > Aber dieses mal komme ich alleine einfach nicht weiter. > > Ich habe eine C-Control Station 2, OS 3.0, neuestes Servicepack, einen SHT 75 Feuchte/Temp Sensor, > und eine PCF-Ports-HS I²C-Porterweiterung von Andre. Verkabelt ist das ganze mit CAT5. > > Ich habe alle Forenbeiträge 2000 mal gelesen und die Sensirion Datenblätter intensiv studiert. > > Als Grundlage für die Abfrage des Sensors verwende ich das shtpcf.c2 modul aus einem posting von Krassos. > > Der I2C Bus funktioniert mit einem PCF/MAX-Rel8 Board seit Jahren perfekt, > die PCF-Ports-HS I²C-Porterweiterung kann ich perfekt auf Hi/Lo schalten. > Den SHT habe ich direkt mit SCl/SDA auf die Platine gelötet (P2+P3) > und die Stromversorgung nehme ich über kurze Kabel direkt vom Bus. > > Mein Problem: > Als Werte bekomme ich vom SHT immer -4000.00 °C und -424.00 % rH (bei 25 °C) egal was ich auch anstelle. > Wenn ich einen falschen Port angebe bekomme ich -8096.00 °C und -1.00 % rH (bei 25 °C). > Das bedeutet für mich, da� der Sensor korekt gefunden wird, aber einfach falsche Werte liefert oder....... > > Was kann ich noch versuchen ? Wer verwendet eine ähnliche Konfiguration ? > > Vielen Dank > > Wolfram > > Anbei noch der Beispielcode: > > > //Modul 2: first.c2 > > int rH; > int T; > > > > thread main > { > /**Initialisierungen****************************/ > > int a,b,c; > string sc,mn,hr,zeit,bs,ts,hs,s; > plm.beep(20); > system.TIME z; > > lcdext.init(); > pcf.init(); > //lcd.setpcf(8); // Display an Addr. 0 > > plm.beep(-1); > > > /************************************************/ > > loop > { > //erfassung der Uhrzeit und des dcf-status > system.gettime(z); > str.putintf(hr,z.hour,2); > str.putintf(mn,z.minute,2); > str.putintf(sc,z.second,2); > zeit=hr+":"+mn+":"+sc; > //lcdext.goto(0,0); > //lcdext.print(zeit); > bs=" "; > hr=""; > zeit = ""; > mn=""; > sc=""; > if system.dcferr() > 5 bs="nosync"; > //Anzeige von Uhrzeit und dcf-status auf dem internen Display > //lcdext.goto(1,0); > //lcdext.print(bs); > sleep 2000; > ///sht-anschluss: port 2 ist clock, port 3 ist data > shtpcf.init(1,2,3); > shtpcf.Reset(); > sleep 100; > T=shtpcf.getTemp(); > rH=shtpcf.getHyg(T); > lcdext.home(); > lcdext.goto(0,0); > s=""; > ts=""; > str.putint(ts,T); > s="t="+ts+" C"; > lcdext.print(s); > s=""; > ts=""; > str.putint(ts,rH); > s="rH="+ts+" %rH"; > lcdext.goto(2,0); > lcdext.print(s); > //lcd.zahl4n1(shtpcf.dew(T,rH));lcd.put(0xDF);lcd.put('C'); //Taupunktanzeige > sleep 2000; //Pause zwischen zwei Abfragen >800ms wegen Eignerwärmung > } > > } > > > > Hallo, ich hab gerade den SHT75 mit einem R8C13 zum laufen gebracht. Du musst bedenken, dass das Protokoll NICHT kompatibel mit dem i2c- Protokoll ist!!(Auch wenn es dem sehr ähnelt) Auf der Sensirion Homepage gibts unter "Products" ganz unten einen Sample - Code in C zum runterladen. Vielleicht hilft dir das weiter... mfg Johannes | ||
Antwort schreiben Antworten: |