Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: SHT75 schweigt Kategorie: Verschiedenes (von joergm6 - 20.11.2008 20:23)
 Als Antwort auf SHT75 schweigt von Stefan - 20.11.2008 18:07
joergm6 nutzt:  CC1-Station V2.0
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

Bisherige Antworten:

Re: SHT75 schweigt (von Stefan - 21.11.2008 8:54)
    Re: SHT75 schweigt (von joergm6 - 21.11.2008 10:48)
        Re: SHT75 schweigt (von Stefan - 21.11.2008 16:32)
            Re: SHT75 schweigt (von joergm6 - 21.11.2008 17:54)