INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Stefan, schön wäre ja gewesen wenn du geschrieben hättest, welche Programmiersprache und welche Station du hast. Ich weis aus eigener Erfahrung, das der Beispielcode nicht funktioniert, jedenfalls bei mir (auch) nicht. Es funktionierte nur das alte CCBasic-Beispiel. Ich gehe mal davon aus, du hast Basic++ und die SHT.tab. Hatte damals dieses einzeln auseinandergenommen und in Basic++ nachempfunden. Probiere mal diese als STH.bibl oder natürlich auch als eigenständiges Programm. Die benutzten Ports sind 7 und 8, die kannst du anpassen. Ich hoffe habe keine Variablendeklaration vergessen, da ich den Code für mein Programm optimiert habe (Variablenplatz sparen :-) ) Was soll der 10k von Masse nach Vdd, das bringt NIX? Wenn überhaubt dann je 10k von Clock und Data nach Vdd. ' ---------- Benutzung ------- ' SHTgetT() ' lcd.print tword/100 & "," & abs((tword/10))mod 10 & abs(tword mod 10) &"°C " ' SHTgetH() ' lcd.print tword/10 & "," & tword mod 10 & "%rH" DEFINE SHTclock PORT[7] DEFINE SHTdata PORT[8] ' Variablen define Tword as word define TFword as word define TFbyteLO ref TFword at Byte[1] define TFbyteHI ref TFword at Byte[2] define TByte as byte define TFword2 as word define i as Byte '-------------------------------------------------------------------------------- Sub SHTgetT() 'Temperatur-Wert des Sensors abfragen. SHTstart() SHTwrite(00011b) SHTreadInt() TWord=TFword-4000 end sub '-------------------------------------------------------------------------------- sub SHTgetH() 'Feuchtigkeits-Wert des Sensors abfragen. SHTstart() SHTwrite(00101b) SHTreadInt() TWord=TFword IF (Tword AND 8000h) <> 0 THEN return -1 TFWord = Tword SHR 4 Tbyte = Tword MOD 16 LOOKTAB SHTAB, TFWord, TFword2 dec TFWord LOOKTAB SHTAB, TFWord, TFWord TFword2 = ((TFWord2 - TFWord) * Tbyte) SHR 4 TWord = TFWord + TFWord2 end Sub '-------------------------------------------------------------------------------- sub SHTinit() 'Initialisiere DEACT SHTdata SHTclock = 0 FOR i = 0 TO 10 PULSE SHTclock NEXT i end sub '-------------------------------------------------------------------------------- sub SHTstart() 'Start-Sequenz SHTclock = -1 SHTdata = 0 SHTclock = 0 SHTclock = -1 DEACT SHTdata SHTclock = 0 end sub '-------------------------------------------------------------------------------- sub SHTwrite(TH as byte) 'Sende Daten an Sensor FOR i = 0 TO 7 IF ((TH SHL i) AND 80h)<>0 THEN DEACT SHTdata ELSE SHTdata = 0 END IF PULSE SHTclock NEXT i DEACT SHTdata SHTclock = -1 TByte = (SHTdata = 0) SHTclock = 0 RETURN TByte end sub '-------------------------------------------------------------------------------- sub SHTreadInt() TWord = TIMER TFWord=F000h #SHTloop IF (TIMER - TWord) >= 50 THEN goto SHTloopEnde IF SHTdata<>0 THEN GOTO SHTloop TFbyteLo=SHTread(1) TFbyteHi=SHTread(0) #SHTloopEnde end sub '-------------------------------------------------------------------------------- Sub SHTread(ACK as byte) Tbyte = 0 FOR i = 0 TO 7 SHTclock = -1 Tbyte = ((Tbyte SHL 1) OR (SHTdata AND 1)) SHTclock = 0 NEXT i IF ACK<>0 THEN SHTdata = 0 ELSE DEACT SHTdata END iF PULSE SHTclock DEACT SHTdata RETURN Tbyte end sub TABLE SHTAB ' hier die SHT.tab Werte oder per Import einbinden end table > Hallo > > Ich hoffe, mir kann jemand helfen. > > Für eine neues Projekt habe ich meine alte C-Control-Station mit I/O Terminal ausgegraben. > > Ich habe mir dazu einen SHT75 gekauft und diesen an Port 1 (Clock) und Port 2 (Data) gehängt. Für die Versorgung habe ich Pin 6 der DCF angezapft. Zwischen Vdd und Gnd habe ich einen 10KOhm Pullup gelötet. Alle Leitungen sind getestet, die Spannung auf der Versorgung ist 5V. So weit so gut. > > Leider gibt der SHT75 keinen Mucks von sich. Zum Testen verwende ich den Beispiel-Programmcode von cctools. Die Rückgabewerte sind immer -80,96 und Fehler für die Feuchte. Das gleiche Resultat erziele ich auch, wenn kein Sensor dranhängt ;-) > > Wo könnte noch ein Fehler übersehen haben? > > Ich hoffe, ich den SHT beim Löten nicht verbrutzelt! Eigentlich bin ich aber der Meinung alles richtig gemacht zu haben. Nur kurze Lötkontakte usw. > > Weiss jemand Rat? > > Grüsse, Stefan |
Antwort schreiben |