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á.
