Home

operazioni matematiche

Indice
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);
}

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)