Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: DS18S20 ohne I2C to 1Wire Converter Kategorie: Sonstige Hardware (von Andreas - 26.02.2009 19:46)
Als Antwort auf DS18S20 ohne I2C to 1Wire Converter von AndreasK - 26.02.2009 19:15
Ich nutze:
C-Control Pro Mega32, C-Control Pro Mega128, CC-Pro 32 Application Board, CC-Pro 128 Application Board
Hallo,
es scheint mir so, als ob du keinen DS18S20 hast, sondern einen DS18B20.
Wenn es so ist, solltest du
    LCD_WriteFloat(temp*0.5,1)
in
    LCD_WriteFloat(temp*0.06255,1)
ändern

GruÃ? Andreas

> Hallo,
>
> ich benutze das Programm von Ulli zum Auslesen eines DS18S20 ohne I2C to 1Wire Converter.
> Leider sind die Anzeigewerte zu hoch ( bei Zimmertemperatur werden 149,5 Grad angezeigt).
> Hier der Original-Quelltext:
>
> '----------------------------------------------------------------------------------
> '----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO -----
> '----------------------------------------------------------------------------------
> 'Projektname:       DS18S20.cprj
> 'Benötigte Libs´s:  IntFunc_lib.cc
> 'Routinen:          DS18S20.cbas
> 'Autor:             Ulli Sommer
> 'Datum:             01.04.2008
> 'Funktion:          Auslesen eines Temperatursensors DS18S20
> 'Neue Funktionen:   Neue Befehle für One Wire nach Dallas Standart
> 'Notitz:            ID & Temperatur wird über das Ausgabefenster angezeigt
> '----------------------------------------------------------------------------------
>
> #define OneWirePin 38
>
> Dim text(40) As Char
> Dim ret,i As Integer
> Dim temp As Integer
> Dim rom_code(8) As Byte
> Dim scratch_pad(9) As Byte
>
> Sub main()
>
>     LCD_Init()
>     LCD_ClearLCD()
>     LCD_CursorOff()
>
>     ret = OneWire_Reset(OneWirePin)
>
>     If ret = 0 Then
>        text= "kein Device gefunden"
>        Msg_WriteText(text)
>        Goto Ende
>     End If
>
>     Do While True
>
>     OneWire_Write(0x33) 'read ROM
>     For i = 0 To 7
>         rom_code(i) = OneWire_Read()
>         'Msg_WriteHex(rom_code(i))
>     Next
>     'Msg_WriteChar(13)
>
>
>     OneWire_Reset(OneWirePin)
>     OneWire_Write(0xcc)   'skip ROM
>     OneWire_Write(0x44)   'start temperature measure
>
>     AbsDelay(2000)
>
>     OneWire_Reset(OneWirePin)
>     OneWire_Write(0xcc)   'skip ROM
>     OneWire_Write(0xbe)   'read scratch_pad
>
>     For i = 0 To 8
>         scratch_pad(i)= OneWire_Read()
>         'Msg_WriteHex(scratch_pad(i))
>     Next
>     Msg_WriteChar(13)
>
>     text = "Temp: "
>     'Msg_WriteText(text)
>
>     temp= scratch_pad(1) * 256 + scratch_pad(0)
>     'Msg_WriteFloat(temp * 0.5)
>     'Msg_WriteChar(67)
>     'Msg_WriteChar(13)
>
>     LCD_Locate(1,1)
>     LCD_WriteFloat(temp*0.5,1)
>
>     End While
>
>     Lab Ende
>
> End Sub
>
> Was ist falsch ?
>
> Grü�e aus Kiel
>
> Andreas Kunze
>


    Antwort schreiben


Antworten:

Re: DS18S20 ohne I2C to 1Wire Converter (von AndreasK - 27.02.2009 19:03)