Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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
Ich nutze:
eigenes Board
> 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: