1. Beispiel


Ein einfaches Thermometer:

Programm „Thermo.bas“:


10 lcd1 : cls : locate 2,1 : print “Temperatur:“

20 do                                                                                                           ´Schleifenstart

30 let A = temp : locate 2, 13 : print “         “                                         ´6 x Leerzeichen

40 locate 2, 13 : print A; : print “  “ : print chr 223; : print “C“

50 loop                                                                                                   ´Schleifenende

Eine kurze Besprechung:


Zeile 10:

lcd1 stellt auf LCD-Ausgabe um, cls löscht den Displayinhalt, locate 2,1 positioniert den Cursor auf Zeile 2, Spalte 1, dort wird „Temperatur:“ ausgedruckt.

Zeile 20:

do startet eine Programmschleife.

Zeile 30:

let A=temp läd die aktuelle Temperatur des DS18S20 Temperatursensors in die Variable A. Warum nicht direkt print temp? Die Abfrage des Temperatursensors dauert fast 1 Sekunde (850ms). print temp daher auch. Mit print “       “ wird das Displayfeld für die Temperaturausgabe vorher gelöscht. Das bedeutet, es ist für fast 1 Sekunde nur das gelöschte Feld zu sehen, dann kurz die Temperatur. Durch den Trick mit der Variablen A und der Wartezeit auf die Temperatur dreht sich das Zeitverhältnis um: während der Temperatursensor abgefragt wird, steht der Temperaturwert der vorherigen Messung stabil im Display, dann nach der neuen Messung wird kurz gelöscht und der neue Wert ins Display geschrieben. Ergebnis ist eine ruhige, flackerfreie Anzeige der Temperatur.

Zeile 40 hier wird die gespeicherte Temperatur angezeigt (print A), ein Leerzeichen ausgegeben (print “  “), das Zeichen für Grad (chr 223) und „C“ für Celsius ausgegeben.

Zeile 50 loop beendet die Programmschleife. Da kein zusätzliches Argument mit until angegeben wurde, werden die Zeilen 30....40 ständig wiederholt. (Bis in alle Ewigkeit oder bis Ctrl-c am Terminal gedrückt wird.)

zurück