Calcola il minimo tra due numeri dati di qualsiasi tipo (nel senso di campo di appartenenza) e restituisce il più piccolo.
Parametri
x è il primo numero
y è il secondo numero
Risultato
il più piccolo tra x e y
value = min(value, 100); // imposta 'value' al valore più // piccolo tra i due valori dati, // 'value' o 100, // assicurando che il valore // non superi 100
max(x,y)
Calcola il massimo tra due numeri dati di qualsiasi tipo (nel senso di campo di appartenenza) e restituisce il più grande.
Parametri
x è il primo numero
y è il secondo numero
Risultato
il più grande tra x e y
value = max(value, 100); // imposta 'value' al valore più // grande tra i due valori dati, // 'value' e 100, // assicurando che il valore // non superi 100
abs(x)
Restituisce il valore assoluto di x, che trasforma un numero negativo in un numero positivo.
Parametri
x: il numero
Risultato
x: se x è uguale o maggiore di 0
x: se x è minore di 0
Se x è uguale a 100 allora abs(100) restuiterà 100. Se x è uguale a -100 allora abs(-100) restituisce 100.
value = abs(-100); // alla variabile 'value' // viene assegnato il valore 100
constrain(x, a, b)
Vincola un numero all'interno di un intervallo.
Parametri
x: il numero che deve essere vincolato (può essere di qualsiasi tipo)
a: il numero più piccolo dell'intervallo (può essere di qualsiasi tipo)
b: il numero più grande dell'intervallo (può essere di qualsiasi tipo)
Risultato
x: se x e tra a e b (ma diverso sia da a che da b)
a: se x è minore di a
b: se x è maggiore di b
sensVal = constrain(sensVal, 10, 150); // limita il range del valore del sensore tra 10 e 150
map(value, fromLow, fromHigh, toLow, toHigh)
Rimappa un numero da un intervallo ad un altro intervallo
Parametri
value: valore da rimappare
fromLow: valore minimo dell'intervallo di partenza
fromHigh: valore massimo dell'intervallo di partenza
toLow: valore minimo dell'intervallo di arrivo
toHigh: valore massimo dell'intervallo di arrivo
Risultato
valore rimappato nell'intervallo toLow, toHigh
/* rimappa un valore analogico utilizzando 8 bit (da 0 a 255) */ void setup() {} void loop() { int val = analogRead(0); val = map(val, 0, 1023, 0, 255); analogWrite(9, val); }
Analizziamo il codice
int val = analogRead(0);
viene dichiarata val come variabile intera a cui viene assegnato il valore restituito da analogRead(0) che legge un valore di tensione applicato al piedino analogico 0 (la risoluzione è di 10 bit e quindi da 0 a 1023)
Il valore memorizzato in val viene rimappato dall'intervallo [0, 1023] all'intervallo [0, 255].
analogWrite(9, val);
Scrive sul piedino digitale 9 (piedino su cui è abilitato il PWM) il valore assunto dalla variabile val.
pow(base, exponent)
Calcola la potenza di un numero.
Parametri
base: numero (tipo float)
exponent: la potenza a cui è elevata la base (tipo float)
Risultato
Il risultato dell' elevamento a potenza (tipo double)
sqrt(x)
Calcola la radice quadrata di un numero.
Parametri
x: il numero che può essere di un qualsiasi tipo
Risultato
la radice quadrata del numero (tipo double)