E-Donni
16.10.2006, 22:14
Temperaturen aus DS1621 mit PC-I2C-RN-Adapter auslesen
Hallo!
Bevor ich die dazugehörige Schaltung aufbaue, möchte ich gerne wissen, ob mit folgenden in Visual-Basic geschriebenen Programmzeilen der an dem PC-I2C-Roboternetz-Adapter angeschlossene Temperatursensor DS1621 ausgelesen werden kann. Falls in den Programmzeilen Fehler enthalten sind, wäre ich für Nachricht sehr dankbar!
Vielen Dank!
Gruß
E-Donni
Private Sub TempMessung(temperatur As Double)
Dim adresse As Byte
Dim MSByte As Byte
Dim LSByte As Byte
'Initialisierung des PC-I2C-RN-Adapters:
RS232_I2C_MSComm1.CommPort = 1
RS232_I2C_MSComm1.PortOpen = True
i2c_init
ZeigePegel
'Adresse des Interfaces:
adresse = 90
'I2C-Befehle an den Temperatursensor DS1621 senden:
i2c_start
i2c_SendByte (adresse) 'Adresse des Temperatursensors senden
i2c_SendByte I2cdaten(&HEE) 'Temperaturmessung anstoßen
delay
i2c_stop
i2c_start
i2c_SendByte (adresse) 'Adresse des Temperatursensors senden
i2c_SendByte I2cdaten(&HAA) 'Temperaturmessung Lesekommando
delay
i2c_stop
delay
i2c_start
i2c_SendByte (Adresse + &H1) 'Beim Lesen ist ID immer eins höher
'als beim Senden
delay
MSByte = i2c_EmpfangeByte '1. Byte empfangen, MS-Byte
delay
i2c_ack (True)
delay
LSByte = i2c_EmpfangeByte '2. Byte empfangen, LS-Byte
delay
i2c_ack (False)
delay
i2c_stop
ZeigePegel
'Aus den übergebenen Bytes die Temperatur des abgefragten
'Sensors ermitteln:
If Wert < 128 Then 'positive Temperatur, gleich oder höher als 0°C
temperatur = MSByte + (LSByte / 128) * 0.5
Else 'negative Temperatur, unter 0°C
temperatur = MSByte - 256 + (LSByte / 128) * 0.5
End If
'Terminalisierung:
set_sda (1)
set_scl (1)
End Sub
Hallo!
Bevor ich die dazugehörige Schaltung aufbaue, möchte ich gerne wissen, ob mit folgenden in Visual-Basic geschriebenen Programmzeilen der an dem PC-I2C-Roboternetz-Adapter angeschlossene Temperatursensor DS1621 ausgelesen werden kann. Falls in den Programmzeilen Fehler enthalten sind, wäre ich für Nachricht sehr dankbar!
Vielen Dank!
Gruß
E-Donni
Private Sub TempMessung(temperatur As Double)
Dim adresse As Byte
Dim MSByte As Byte
Dim LSByte As Byte
'Initialisierung des PC-I2C-RN-Adapters:
RS232_I2C_MSComm1.CommPort = 1
RS232_I2C_MSComm1.PortOpen = True
i2c_init
ZeigePegel
'Adresse des Interfaces:
adresse = 90
'I2C-Befehle an den Temperatursensor DS1621 senden:
i2c_start
i2c_SendByte (adresse) 'Adresse des Temperatursensors senden
i2c_SendByte I2cdaten(&HEE) 'Temperaturmessung anstoßen
delay
i2c_stop
i2c_start
i2c_SendByte (adresse) 'Adresse des Temperatursensors senden
i2c_SendByte I2cdaten(&HAA) 'Temperaturmessung Lesekommando
delay
i2c_stop
delay
i2c_start
i2c_SendByte (Adresse + &H1) 'Beim Lesen ist ID immer eins höher
'als beim Senden
delay
MSByte = i2c_EmpfangeByte '1. Byte empfangen, MS-Byte
delay
i2c_ack (True)
delay
LSByte = i2c_EmpfangeByte '2. Byte empfangen, LS-Byte
delay
i2c_ack (False)
delay
i2c_stop
ZeigePegel
'Aus den übergebenen Bytes die Temperatur des abgefragten
'Sensors ermitteln:
If Wert < 128 Then 'positive Temperatur, gleich oder höher als 0°C
temperatur = MSByte + (LSByte / 128) * 0.5
Else 'negative Temperatur, unter 0°C
temperatur = MSByte - 256 + (LSByte / 128) * 0.5
End If
'Terminalisierung:
set_sda (1)
set_scl (1)
End Sub