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 | ||
| ||
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) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum