Reference   Language | Libraries | Comparison | Changes

map(value, fromLow, fromHigh, toLow, toHigh)

Beschreibung

Skaliert eine Zahl von einer Skala, auf eine andere. Ein Wert value der den Wert von fromLow besitzt, wird zu dem Wert toLow geändert. Ein Wert fromHigh wird zu dem Wert toHigh gewandelt. Alle Werte dazwischen werden entsprechend skaliert.

Dies beschneidet Werte nicht. Wenn ein Wert sich ausserhalbt von fromLow oder fromHigh befindet, so wird er den gleichen Wert behalten. Die constrain() Methode kann vor oder nach der Map Methode angewendet werden, um die Werte auf ein Intervall zu beschränken.

Die untere Grenze des Intervalls kann größer oder kleiner sein als die Obere Grenze, so dass die map() Funktion genutzt werden kann um eine Reihe von Zahlen zu invertieren. Zum Beispiel:

y = map(x, 1, 50, 50, 1);

Die Funktion kommt auch mit negativen Zahlen gut zurecht, so dass dieses Beispiel:

y = map(x, 1, 50, 50, -100);

gut funktioniert.

Die map() Funktion nutzt Integer Mathematik, wird also keine Brüche oder Nachkommastellen nutzen, wenn es eventuell vor kommen könnte. Nachkommastellen werden einfach abgeschnitten, also nicht gerundet.

Parameter

value: Der zu skalierende Wert

fromLow: Die untere Grenze der aktuellen Skala

fromHigh: Die obere Grenze der aktuellen Skala

toLow: Die untere Grenze der neuen Skala

toHigh: Die obere Grenze der neuen Skala

Rückgabewert

Der skalierte Wert

Beispiel

/* Map an analog value to 8 bits (0 to 255) */
void setup() {}

void loop()
{
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}

Appendix

Für mathematisch Interessierte hier die ganze Funktion:

long map(long x, long in_min, long in_max, long out_min, long out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

Weitere Informationen:

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.

Share