Hier ein kleines Beispielprogramm wie einfach man mit dem Sensor IC lm75 und einer RN-Control die Temperatur messen und anzeigen kann. Vielleicht braucht jemand mal sowas.


Der Sensor lm75 belegt dabei keinerlei Port da er einfach über 2 Drähte am I2C-Bus angeschlossen wird. Ansonsten benötigt das IC nur noch +5V und GND, sonst nix.

Dieses kleine Programm liest die Temperatur aus und zeigt diese über die RS232 Schnittstelle an.

Das Programm ist für RN-Control mit 16 Mhz und Mega 16 konfiguriert, kann jedoch auch durch andere Include-Datei für Mega 32 compiliert werden.
Die Unterroutine verwendet eine Integer-Variable Temperatur um auch das Vorzeichen bei negativen Temperaturen einfach mit Print ausgeben zu können. Man könnte natürlich auch eine Gleitkommazahl verwenden.

Code:
'###################################################
' rncontrol_lm75.BAS
'für
'RoboterNetz Board RN-Control ab Version 1.1
'Das neue preiswerte Controllerboard zum experimentieren
'
'Aufgabe:
' Temperatur messen mit IC LM75 über den I2C Bus
' Das Beispiel zeigt wie einfach es ist in Basic
' mit RN-Control die Temperatur zu messen
' Benötigt wird nur das IC LM75
' Das IC wird am I2C-Bus angeschlossen und belegt keinen Port

'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'Eigene Programmbeispiele sind im Roboternetz gerne willkommen!
'##############################################################


Declare Sub Showtemperatur()


$regfile = "m16def.dat"


Const Lm75slavewrite = &H90
Const Lm75slaveread = &H91
Dim Lm75high As Byte
Dim Lm75low As Byte
Dim Temperatur As Integer
Dim Nachkommastelle As String * 2

$crystal = 16000000                                         'Quarzfrequenz
$baud = 9600

     I2cinit
Start:
     Showtemperatur
     Wait 2
     Goto Start


 Sub Showtemperatur()
   I2cstart
   I2cwbyte Lm75slaveread
   I2crbyte Lm75high , Ack
   I2crbyte Lm75low , Nack
   I2cstop

   If Lm75high > 127 Then
      Temperatur = Lm75high And 127
      Temperatur = Not Temperatur
      Incr  Temperatur
   Else
      Temperatur = Lm75high
   End If

   Lm75low = Lm75low And 128
   If Lm75low > 0 Then
       Nachkommastelle = ",5"
   Else
      Nachkommastelle = ""
   End If

   Print "Die Temperatur beträgt: " ; Temperatur ; Nachkommastelle ; " Grad"
End Sub
Der Sensor wird hier sehr gut beschrieben:
http://www.goblack.de/desy/digitalt/i2c/lm75.html