Archivi tag: math

Appunti di programmazione su Arduino: operazioni matematiche

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.

Trucchi matematici: moltiplicare per potenze di 2

Gli studente che seguono corsi di elettronica e sistemi sanno che è essenziale conoscere il sistema binario e come conseguenza calcolare velocemente le potenze di 2 di un numero. Come più volte spiegato a lezione riassumo di seguito il metodo, che con un po’ di allenamento vi renderà velocissimi nel calcolo mentale.
Per moltiplicare un numero per 2, 4, 8, 16, 32 o qualsiasi altra potenza di 2 è sufficiente raddoppiare il prodotto tante volte quanto è necessario ad esempio se si vuole moltiplicare un numero per 16 è sufficiente ricordare che 16 è il prodotto di 4 x 4 o in altra forma:

16 = 2 x 2 x 2 x 2

Vediamo qualche esempio

Esempio 1

Eseguiamo il prodotto di 18 x 16

18 x 2 = 36
36 x 2 = 72
72 x 2 = 144
144 x 2 = 288

Esempio 2

Eseguiamo il prodotto di 27 x 8

27 x 2 = 54
54 x 2 = 108
108 x 2 = 216

Esempio 3

Eseguiamo il prodotto di 63 x 8

63 x 2 = 126
126 x 2 = 252
252 x 2 = 504

Trucchi matematici: moltiplicare per 11

Per moltiplicare un numero per 11 e sufficiente sommare le coppie di numeri partendo da destra all’interno del numero dato esclusi i numeri sui bordi che vanno ripetuti.

Vediamo un esempio:

consideriamo il seguente prodotto: 324 x 11

  • partendo da destra scrivere 4 (ultimo numero a destra di 324) prima cifra del prodotto;
  • fate la somma 4+2=6 (la somma della 1′ e 2′ cifra), ottenete la seconda cifra del prodotto;
  • fate la somma 3+2=5 (la somma della 2′ e 3′ cifra), ottenete la seconda cifra del prodotto;
  • ripetete 3, ultimo numero del prodotto.

Riassumendo (*):

(3)(3+2)(4+2)(4)=3564

(*) i gruppi di parentesi non sono da intendersi moltiplicati tra loro

Adesso vediamo cosa succede quando la somma di due cifre interne supera il dieci.

Si consideri il prodotto:

967 x 11

  • incominciamo a scrivere da destra a sinistra, la prima cifra del prodotto è il 7;
  • sommiamo 6+7=13 scriviamo 3 (2′ cifra del prodotto) e riportiamo 1;
  • sommiamo 9+6=15 sommiamo a 15 il riporto della somma precedente: 15+1=16 scriviamo 6 con riporto di 1;
  • all’ultima cifra 9 sommiamo il riporto della somma precedente 9+1=10 che è l’ultima cifra del prodotto;

e quindi:

967 x 11 = 10637

Semplice vero?
Con un po’ di allenamento potete diventare molto veloci e stupire i vostri compagni di classe 🙂

Trucchi matematici: moltiplicare un numero per 5, 25 o 125

Moltiplicare per 5

Moltiplicare un numero per 5 e come moltiplicarlo per 10 e poi dividerlo per 2.

Ricorda che (cosa ovvia ma meglio ricordarlo) che moltiplicare un numero per 10 vuol dire aggiungere uno zero al fondo del numero.

16×5 = (16×10)/2 = 160/2 = 80

Un altro esempio:

82×5 = (82×10)/2 = 820/2 = 410

ancora:

6840×5 = 68400/2 = 34200

Moltiplicare per 25

Moltiplicare un numero per 25 devi moltiplicare il numero per 100 (ricorda che devi aggiungere due zeri al fondo del numero) e poi dividere per 4 (deriva da 100 = 25×4).

Ricorda che dividere per 4 e come dire dividere due volte per 2 questo perché 2×2 = 4

84×25 = 8400/4 = 4200/2 = 2100

38×25 = 3800/4 = 1900/2 = 950

Moltiplicare per 125

Seguendo lo stesso metodo, moltiplicare per 125 vuol dire moltiplicare il numero per 1000 e dividere per 8 (deriva da 1000 = 125×8).

Nota che 8 = 2x2x2 e che moltiplicare per 1000 vuol dire aggiungere 3 zeri al fondo del numero.

24×125 = 24000/8 = 12000/4 = 6000/2 = 3000

58×125 = 58000/8 = 29000/4 = 14500/2 = 7250

Trucchi matematici: moltiplicare un numero per 9, 99 o 999

Molto spesso sento dire dagli studenti: “la matematica è una cosa da geni” e l’affermazione che odio di più: “non sono portato per la matematica ma solo per le materie letterarie” mi viene da pensare che se uno studente afferma questo è perché qualcuno gli ha fatto credere ciò. Secondo il mio parere siamo potenzialmente tutti bravi in matematica e nelle materie letterarie.

Se siamo tra gli ultimi nelle statistiche OCSE-PISA in matematica non è perché siamo tutti portati per la letteratura ma forse perché la matematica viene insegnata in maniera poco divertente.

Usare il cervello può essere più rapido che usare una calcolatrice è sufficiente fare un po’ di allenamento e usare qualche trucchetto.

Di seguito la regola per moltiplicare un numero per 9, 99 oppure 999

Moltiplicare un numero per 9 vuol dire moltiplicarlo per 10-1

quindi, 9×9 e come dire 9x(10-1) da cui 9×10-9 da cui 90-9 cioè 81

Ecco un’altro esempio: 78×9 = 780-78 = 702

Per moltiplicare un numero per 99 moltiplichiamo il numero per 100-1

quindi, 54×99 = 54x(100-1) = 5400-54 = 5346.

Moltiplicare per 999 si utilizza lo stesso metodo adottato per 9 e 99

42×999 = 42x(1000-1) = 42000-42 = 41958

Nei prossimi post altri trucchi.