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.
Der Sensor wird hier sehr gut beschrieben: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
http://www.goblack.de/desy/digitalt/i2c/lm75.html







Zitieren
obwohl ich mir mit der pinbelegung sicher war


Lesezeichen