motorimicro:
...SetPoint = map(analogRead(ThresholdPin),0,1023,0,300);...
Quella riga ti dice questo:
Il pin di arduino legge il valore analogico della tensione (0-5V) e lo "trasforma" in un valore che va da 0 (0V) a 1023 (5V).
Considera queste scale equivalenti:
Applicando questa tensione al pin di arduino
0V 0,49 0,98 1,47 1,96 2,44 2,93 3,42 3,91 4,40 5,00
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+--
Si ottengono questi valori
0 100 200 300 400 500 600 700 800 900 1023
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+--
L'istruzione "map" cambia il MIN e MAX della scala inferiore e "ridistribuisce" i valori intermedi. Nel caso dell'istruzione
SetPoint = map(analogRead(ThresholdPin),0,1023,0,300);
Le scale diventano
0V 0,49 0,98 1,47 1,96 2,44 2,93 3,42 3,91 4,40 5,00
+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+--
0 58 117 176 235 300
Si ottengono questi valori
Penso che tu abbia capito come funziona map. Puoi dare il MIN e il MAX entro i quali saranno compresi i tuoi valori.
Ciao,
P.
P.S. Ottimo il suggerimento di fabpolli!