
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> Hallo Ihr Fachleute! > > Ich habe den digitalen Feuchtesensor SHT 71 an mein Applikation Board angeschlossen. > Den Quelltext habe ich von diesem Forum bekommen! Ich Entwickle zwar Software unter C++. Dies aber eher im Datenbankbereich. > Nun das Problem. > > Ich bekomme immer die gleichen Werte zurück? > > > 0:1:38 -42,56 99,9 > > > Quelltext: > > '================= Sensirion SHT11 / 71 steuerung. > ' > 'Fred Stevens, Niederlanden. > 'homepage: [url=http://www.fredstevens.nl]www.fredstevens.nl[/url] > ' > 'Statinon Sensor über ports 7 und 8 verbunden. > > 'define Temp1 ad[4] 'Tempsensor 1 > 'define Temp2 ad[6] 'Tempsensor 2 > > define sck port[8] > define dataout port[7] > define Power port [5] > define f1 word > define ts word > define shtvalue word > define xy word > define cmd byte > define i byte > define j byte > > #loop > power = on > pause 1*50 > gosub sht11 > goto loop > > #sht11 > Cmd = &B00000011 'temp > gosub Getit > shtvalue=shtvalue-4000 > Print Hour;":";Minute;":";Second, > print (temp1*5-250)/10 ;","; > print (temp1*5-250) mod 10, > print (temp2*5-250)/10 ;","; > print (temp2*5-250) mod 10, > print shtvalue/100;","; > print shtvalue mod 100, > Cmd = &B00000101 'hyg > gosub Getit > ts = shtvalue / 16 > i = shtvalue Mod 16 > looktab shtab,ts,xy > ts=ts-1 > looktab shtab,ts,f1 > xy = (xy - f1) * i /16 > shtvalue=f1 + xy > if shtvalue>=1000 then shtvalue=999 > print shtvalue/10;","; > print shtvalue mod 10 > return > #getit > 'first reset comm. > sck=0 > Dataout=1 > For i = 1 To 12 > Sck=1 > gosub wait > Sck=0 > gosub wait > Next > 'start sequence > sck=1 > gosub wait > Dataout=0 > gosub wait > Sck=0 > gosub wait > Sck=1 > gosub wait > Dataout=1 > gosub wait > Sck=0 > gosub wait > 'Shiftout command > for i=0 to 7 > if (cmd and 128)=0 then dataout=0 else dataout=1 > sck=1 > gosub wait > sck=0 > gosub wait > cmd=cmd shl 1 > next > deact dataout > sck=1 > gosub wait > Sck=0 > gosub wait > #bitwait > if dataout<>0 then goto bitwait > 'Shiftin data MSB > gosub shiftin > shtvalue = xy > Dataout=0 > 'ack > Sck=1 > gosub wait > Sck=0 > gosub wait > deact dataout > 'Shiftin Data LSB > gosub shiftin > shtvalue=shtvalue shl 8 > shtvalue = shtvalue Or xy > return > #shiftin > xy=0 > for i=0 to 7 > sck=1 > gosub wait > j=abs(dataout) > sck=0 > gosub wait > xy=xy shl 1 > xy=xy or j > next > return > #wait > return > table shtab "sht11a.tab" > > > > Bin für jede Hilfe Dankbar. Ich denke ich habe nur etwas übersehen. Oder ich habe den SHT71 gekillt? > > lg > pierre Hallo Pierre, ich habe den SHT11 zwar auch noch hier liegen, aber noch nichts probiert. Aber folgendes fällt auf: Fred hat seinerzeit auf einer (langsamen) Mainunit 1 gearbeitet. Die notwendige Verzögerung bei der Ansprache des Sensor hat er durch ein gosub wait in ein leeres sub gelöst. Wenn Du jetzt das Progr.auf die (schnelle) munit2 portierst, stimmen die Zeiten nicht mehr. Vorschlag: nimmt erstmal 'ne alte mainunit zum testen oder probiere die Verzögerungzu verändern. 2.) hast Du die verkabelung zum Sensor richtig ausgeführt ?? Fred hatte seinerzeit ein Bild davon auf seiner Seite. in Clk und data jeweils am ende Widerstand 1k seriell, und je 1 100nF vor dem SHT11 von data und clk zu GND. Leider gibt es die Homepage nicht mehr. mfg gerhard |
| Antwort schreiben |