Aus den Anfangsversuchen mit dem Neigungssensor haben wir gesehen, dass die angezeigten Werte zwischen 1875 und 3125 liegen. Für ein Messgerät wäre eine solche Messwertangabe ungeeignet. Besser wäre diesen Bereich auf einen neuen Bereich umzurechnen, der von 0 bis 100 oder von -100 bis + 100 geht. Eine solche Umrechnung ist nur durch Skalierung und ein Offset erreichbar. Wie das geht, werden wir hier zeigen.
Einen Messbereich mit einem Offset zu versehen bedeutet, durch Addition oder Subtraktion eines bestimmten Zahlenwertes den Messbereich zu verändern. Eine Skalierung verlangt mehr Arbeitsaufwand, besonders dann, wenn ein Prozessor wie die BASIC Stamp nur ganzzahlige Mathematik beherrscht.
In dieser Übung wird die Skalierung von einem größeren in einen kleineren Zahlenbereich mit einem PBASIC Programm gezeigt.
Ein Beispiel für Skalierung und Offset
Wir gehen von Messwerten zwischen 1875 und 3125 aus (Eingangsskala) und nehmen uns vor sie durch Skalierung und Offset auf -127 bis 127 (Ausgangsskala) umzurechnen (Abb. 1). Die Position der Werte in der Eingangs- und Ausgangsskala sollten zueinander proportional sein. Das heißt, dass einem Eingangswert von 2500 (Mitte zwischen 1875 und 3125) ein Wert 0 in der Ausgangsskala entsprechen muss (Mitte zwischen -127 und 127).
Die Schrittfolge für Skalierung und Offset mit der BASIC Stamp sieht drei Schritte vor:
In Abb. 2 wird dargestellt, wie sich diese drei Schritte in einem PBASIC Befehl umsetzen lassen.
PBASIC Berechnungen verlaufen immer von links nach rechts - mathematische Regeln, wie Punkt- vor Strichrechnung gelten hier nicht - außer, es wurden Klammern gesetzt. In Gleichung (1) wird zunächst vom Eingangswert ein Offset von 1875 subtrahiert und der Bereich auf 0 bis 1200 eingegrenzt. Mit dem Skalierungsfaktor ** 13369 wird der Wert auf einen Bereich zwischen 0 und 254 herunterskaliert und die anschließende Subtraktion von 127 ergibt dann einen Ausgabewert zwischen -127 und 127. Soweit die Theorie, jetzt kommt die Rechenpraxis.
Ermittelt wird dieser Wert unter Berücksichtigung der Eingangs- und Ausgangswerte der zugrundeliegenden Skalen. Es soll die Ausgangsskala von 0 bis 1200 auf 0 bis 254 herunterskaliert werden. Wir haben insgesamt 255 Ausgangswerte und 1201 Eingangswerte - die 0 wurde in beiden Fällen berücksichtigt.
Mit Hilfe der folgenden Formel lässt sich mit Hilfe deines Taschenrechners eine beliebige Eingangsskala mit dem ** Operator in eine beliebige Ausgangsskala herunterskalieren.
Der ermittelte Taschenrechnerwert wird immer abgerundet. Das geschieht auch, wenn das Ergebnis ganzzahlig ist! War doch gar nicht so schwer, oder?