Operatori e funzioni matematiche Arduino

Il microcontrollore Arduino può manipolare costanti e variabili, di cui abbiamo parlato in precedenza sul nostro sito. In questa recensione vedremo semplici esempi di come utilizzare operazioni matematiche ed eseguire calcoli in un programma con diversi tipi di variabili. L’IDE Arduino, come tutti i linguaggi di programmazione, dispone di operatori e funzioni che consentono di eseguire varie operazioni matematiche e logiche.




Per questa attività sono necessari:

  • Arduino Uno / Arduino Nano / Arduino Mega

L’ordine dei calcoli nel linguaggio di programmazione Arduino IDE segue le consuete regole dell’aritmetica: prima viene eseguita l’espressione tra parentesi, poi le operazioni di moltiplicazione e divisione e infine le operazioni di addizione e sottrazione. Nota: non confondere il simbolo di assegnazione = nel linguaggio di programmazione Arduino IDE con il simbolo di confronto ==, utilizzato nelle istruzioni logiche if else Arduino.

Tabella: Operazioni aritmetiche in Arduino

La tabella seguente elenca i simboli degli operatori matematici di addizione e sottrazione e degli operatori di moltiplicazione e divisione spesso utilizzati nella programmazione.

nome della funzione simbolo della funzione esempio
affectation = int x = 5; // risultato 5
addizione + int x = 5 + 2; // risultato 7
sottrazione int x = 5 - 2; // risultato 3
moltoplicazione * int x = 5 * 2; // risultato 10
divisione / int x = 5 / 2; // risultato 2
modulo % int x = 5 / 2; // risultato 1

Esempio di programma con operazioni matematiche Arduino:




int x = 5;
int y = 2;
int z;
float a = 5.00;
float b = 2.00;
float c;

void setup() {
  Serial.begin(9600);

  // l'operazione di addizione, la risposta è 7
  z = x + y;
  Serial.println("z = " + String(z));
  delay(1000);

  // l'operazione di divisione, la risposta è 2
  z = x / y;
  Serial.println("z = " + String(z));
  delay(1000);

  // l'operazione di divisione, la risposta è 2,50
  c = a / b;
  Serial.println("c = " + String(c));
  delay(1000);
}

void loop() {

}

Spiegazione del codice con operazioni matematiche Arduino:



  1. Si noti che quando si dividono valori interi, il resto non viene preso in considerazione e la risposta viene arrotondata. Tenetene conto quando elaborate le equazioni.

Tabella: Operatori aritmetici composti Arduino

La tabella seguente mostra i simboli degli operatori composti, ovvero operatori formati da combinazioni di operatori aritmetici. Questi operatori rendono il programma più conciso.

nom de fonction symbole exemple
incremento di un’unità ++ x++ // equivalente x = x + 1
decremento di un’unità – – x-- // equivalente x = x - 1
operatore unario di addizione += x += 2; // equivalente x = x + 2
operatore unario di sottrazione -= x -= 2; // equivalente x = x - 2
operatore unario di multiplier *= x *= 2; // equivalente x = x * 2
operatore unario di diviser /= x /= 2; // equivalente x = x / 2
resto della divisione %= x %= 2; // equivalente x = x % 2

Esempio di programma con operatori matematiche composti:

byte x = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  // monitorare gli overflow delle variabili
  x += 20;
  Serial.println("x = " + String(x));
  delay(500);
}

Spiegazione del codice con operatori matematiche composti:

  1. Durante il calcolo, è importante considerare anche il possibile intervallo del risultato. In questo esempio, si verifica un overflow della variabile byte in uno dei passaggi dell’addizione.

Funzioni matematiche di Arduino IDE

La funzione abs() Arduino prende un parametro numerico e restituisce un numero positivo:

int x = abs(-5); // ritorni 5
int x = abs(0);  // ritorni 0
int x = abs(5);  // ritorni 5

La funzione max() Arduino prende due numeri come parametro e restituisce il più grande:

int x = max(23, 2); // ritorni 23

La funzione min() Arduino prend deux nombres en paramètre et renvoie le plus petit nombre:

int x = min(23, 2) ; // ritorni 2

La funzione sqrt() Arduino consente di ottenere la radice quadrata di un numero come doppio:

float x = sqrt(25); // ritorni 5.00

Trigonometria di Arduino: cos(), sin() e tan()

La funzione cos() prende un parametro angolare in radianti e restituisce il valore del coseno compreso tra 1 e -1:

float x = cos(90); // ritorni -0,45

La funzione sin() Arduino prende un parametro angolare in radianti e restituisce un valore del seno compreso tra 1 e -1:

float x = sin(90); // ritorni 0,89

La funzione tan() Arduino prende come parametro un angolo in radianti e restituisce un valore compreso tra meno infinito e più infinito:

float x = tan(0); // ritorni 0,00

Conclusione. Ricordate che le costanti intere sono percepite dal compilatore come tipo int, assicuratevi che il risultato rientri nell’intervallo di valori consentiti. Le operazioni aritmetiche sono spesso utilizzate nella programmazione quando si accende in modo regolare un LED utilizzando un ciclo for Arduino o while Arduino, così come quando si calcola la temperatura dell’aria collegando un termistore a un microcontrollore.

5/5 - (1 vote)


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.