map — mapování hodnoty z jednoho rozsahu do jiného
long map( | value, | |
fromLow, | ||
fromHigh, | ||
toLow, | ||
toHigh) ; |
long | value; |
long | fromLow; |
long | fromHigh; |
long | toLow; |
long | toHigh; |
value
— hodnota k převednífromLow
, fromHigh
— dolní a horní hodnota intervalu z kterého se převádítoLow
, tohigh
— dolní a horní hodnota intervalu do kterého se převádíFunkce mapuje číslo z jednoho rozsahu na druhý. Ppkud potřebujeme převést hodnotu v jedné soustvě do jiné soustavy, musíme si napsat příslušné rovnice a z nich odvodi převodní funkci. Pro usnadnění tohoto úkolu máme k dispozici funkci map
.
Tento příklad ukazuje použití funkce map
při převodu analogové hodnoty. Čtená hodnota je v rozsahu <0, 1023> a potřebujeme ji převést (namapovat) na rozsah <0, 255>.
void setup() { } void loop() { int val = analogRead(0); val = map(val, 0, 1023, 0, 255); analogWrite(9, val); }
Zajímavou možností je otočit intervaly. Tím myslím zápis:
int val = analogRead(0);
val = map(val, 0, 1023, 255, 0);
analogWrite(9, val);
Tedy nejnižší hodnou ze vstupního intervalu mapujeme na nejvyšší hodnotu výstupního intervalu. To znamená že když se vstupní hodnota zvetěšuje, výstupní hodnota klesá.