Περιγραφή
Επαναθέτει έναν αριθμό από ένα εύρος σε ένα άλλο. Δηλαδή μια τιμή του fromLow θα αντιστοιχισθεί με το toLow, μια τιμή του fromHigh με το toHigh, οι ενδιάμεσες τιμές θα αντιστοιχισθούν με τις ενδιάμεσες τιμές κλπ.
Δεν περιορίζει τις τιμές εντός του εύρους, διότι οι εκτός εύρους τιμές είναι μερικές φορές επιθυμητές και χρήσιμες. Η συνάρτηση constrain(), μπορεί να χρησιμοποιηθεί είτε πριν είτε μετά από αυτή τη συνάρτηση, εάν είναι επιθυμητά τα όρια του εύρους.
Σημειώστε ότι τα “χαμηλότερα όρια” οποιουδήποτε εύρους μπορεί να είναι μεγαλύτερα ή μικρότερα από τα “ανώτερα όρια”. Έτσι η συνάρτηση map() μπορεί να χρησιμοποιηθεί για την αναστροφή ενός εύρους τιμών. Για παράδειγμα:
y = map(x, 1, 50, 50, 1);
Επίσης αυτή η συνάρτηση, χειρίζεται αρκετά καλά και τους αρνητικούς αριθμούς. Έτσι, το ακόλουθο παράδειγμα είναι επίσης έγκυρο και λειτουργεί καλά:
y = map(x, 1, 50, 50, -100);
Η συνάρτηση map() χρησιμοποιεί μαθηματικά με ακέραιους αριθμούς, έτσι δεν θα δημιουργήσει κλάσματα. Ενώ τα μαθηματικά μπορεί να υποδείξουν ότι αυτό θα πρέπει να γίνει. Συνεπώς, τα κλασματικά υπόλοιπα έχουν αποκοπεί και έτσι δεν είναι στρογγυλεμένα ή εκφρασμένα κατά μέσο όρο.
Παράμετροι
τιμή: ο αριθμός της αντιστοίχισης.
fromLow: το κατώτερο όριο της τρέχουσας τιμής του εύρους.
fromHigh: το άνω όριο της τρέχουσας τιμής του εύρους.
toLow: το κατώτερο όριο της τιμής – στόχου του εύρους.
toHigh: το άνω όριο της τιμής – στόχου του εύρους.
Επιστρέφει
Την τιμή της αντιστοίχισης.
Παράδειγμα
/* 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);
}
Παράρτημα
Για αυτούς που έχουν κλίση στα μαθηματικά, ακολουθεί ολόκληρη η συνάρτηση map():
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;
}
Επιστροφή στην σελίδα Παραπομπές Γλώσσας
