13. Temperatursensor


Der Temperatursensor wird an einen Sensorport des EV3-Bricks angeschlossen. Mit der Methode getTemperature() gibt er Temperaturwerte im Bereich -20° bis 128°C zurück. Mit der wasserdichten Sonde können auch die Temperaturen in den Flüssigkeiten gemessen werden. Für die Messung der Lufttemperatur können auch andere Sensoren verwendet werden (siehe unter Hochpräzise Sensoren).
 

Beispiel 1: Temperatur messen und die Werte anzeigen (nur Realmodus)

   

# Ro13a.py

from ev3robot import *

robot = LegoRobot()
temp = TemperatureSensor(SensorPort.S1)
robot.addPart(temp)
while not robot.isEscapeHit():
    T = temp.getTemperature()
    robot.drawString("T = " + str(T) + " deg.", 0, 1)
    print "T =", T, "degrees"
    Tools.delay(1000)
robot.exit()    
Programmcode markieren (Ctrl+C kopieren)

Erklärungen zum Programmcode:

TemperatureSensor(SensorPort.S1): erzeugt ein Temeratursensorobjekt
.getTemperature(): liefert die Temperatrur in Grad Celsius

 

Beispiel 2: Temperatur-Logger (nur Remote-Modus)
Mit einem Logger kann die Temperatur über eine längere Zeit gemessen werden. Der Temperaturverlauf wird im Koordinatensystem dargestellt.

   

# Ro13b.py 

from ev3robot import *
from gpanel import *

def init(tstart):
    tend = tstart  + 1000
    window(tstart - 100, tend + 100, -5, 55)
    clear()
    setColor("gray")
    drawGrid(tstart, tend, 0, 50)
    text(tstart - 100, 52,  "deg")
    text(tend, -4,  "sec")
    setColor("black")
    lineWidth(2)

robot = LegoRobot()
temp = TemperatureSensor(SensorPort.S1)
robot.addPart(temp)
makeGPanel()
title("Temperature Logger")
addStatusBar(20)
t = 0
while robot.isConnected() and not isDisposed():
    T = temp.getTemperature()
    if t % 1000 == 0:
        init(t)
        move(t, T)
    else:
        draw(t, T)
    setStatusText("Time: %5d s.  Temperature: %5.2f °C" %(t, T))
    Tools.delay(1000)
    t = t + 1
dispose()    
robot.exit()    
Programmcode markieren (Ctrl+C kopieren)

Erklärungen zum Programmcode:

window(tstart - 100, tend + 100, -5, 55): erzeugt ein GPanel-Fenster
drawGrid(tstart, tend, 0, 50): zeichnet ein Koordinatengitter
while robot.isConnected() and not isDisposed(): misst so lange bis das Programm beendet oder das Grafikfenster geschlossen wird
if t % 1000 == 0: wenn das Ende der Zeitachse erreicht wird, beginnt die Darstellung wieder bei Zeit 0
draw(t, T): zeichnet die Verbindungslinie zum neu gemessenenen Temperaturwert