min(x,y)
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); }
Si faccia riferimento alla lezione: Appunti di programmazione su Arduino: ingressi e uscite analogiche
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)
Per le lezioni precedenti consultare la sezione Appunti di programmazione che trovate nella pagina Arduino di questo sito.