SOMMAIRE ►
Le microcontrôleur Arduino peut fonctionner avec des constantes et des variables, dont nous avons parlé précédemment. Dans cette leçon, nous verrons comment utiliser des opérations mathématiques et effectuer des calculs dans une esquisse avec différents types de variables. Le langage Arduino IDE, comme tous les langages de programmation, possède des opérateurs qui vous permettent d’effectuer des opérations mathématiques et logiques.
Pour cette activité, nous aurons besoin:
- Arduino Uno / Arduino Nano / Arduino Mega
Matériel supplémentaire sur ce sujet:
L’ordre de calcul dans le langage de programmation Arduino IDE suit les règles habituelles de l’arithmétique: l’expression entre parenthèses est d’abord exécutée, puis les opérations de multiplication et de division, et enfin les opérations d’addition et de soustraction. Remarque : ne pas confondre le symbole d’affectation = dans le langage de programmation Arduino IDE avec le symbole de comparaison == qui est utilisé dans les instructions logiques if else.
Le tableau: Arduino opérateurs mathématiques
Le tableau suivant répertorie les symboles des opérateurs mathématiques d’addition et de soustraction, ainsi que les symboles des opérateurs de multiplication et de division, qui sont les symboles les plus couramment utilisés en programmation.
| nom de fonction | symbole | exemple |
| affectation | = | int x = 5; // retourne 5 |
| addition | + | int x = 5 + 2; // retourne 7 |
| soustraction | – | int x = 5 - 2; // retourne 3 |
| multiplication | * | int x = 5 * 2; // retourne 10 |
| division | / | int x = 5 / 2; // retourne 2 |
| reste de la division | % | int x = 5 / 2; // retourne 1 |
Exemple de programme avec des opérations mathématiques:
int x = 5; int y = 2; int z; float a = 5.00; float b = 2.00; float c; void setup() { Serial.begin(9600); // l'opération d'addition, la réponse est 7 z = x + y; Serial.println("z = " + String(z)); delay(1000); // l'opération de division, la réponse est 2 z = x / y; Serial.println("z = " + String(z)); delay(1000); // l'opération de division, la réponse est 2.50 c = a / b; Serial.println("c = " + String(c)); delay(1000); } void loop() { }
Explication du code avec des opérations mathématiques:
- notez que lors de la division de valeurs entières, le reste n’est pas pris en compte et la réponse est arrondie. En tenir compte lors de l’établissement des équations.
Le tableau: Arduino opérateurs composées
Le tableau suivant présente les symboles des opérateurs composés, qui comprennent les opérateurs formés à partir de combinaisons d’opérateurs arithmétiques et d’opérateurs de comparaison. Ces opérateurs rendent le programme plus concis.
| nom de fonction | symbole | exemple |
| soustraire de 1 | ++ | x++ // équivalent x = x + 1 |
| additionner de 1 | – – | x-- // équivalent x = x - 1 |
| additionner de … | += | x += 2; // équivalent x = x + 2 |
| soustraire de… | -= | x -= 2; // équivalent x = x - 2 |
| multiplier par… | *= | x *= 2; // équivalent x = x * 2 |
| diviser par … | /= | x /= 2; // équivalent x = x / 2 |
| reste de la division | %= | x %= 2; // équivalent x = x % 2 |
Exemple de programme avec des opérations mathématiques:
byte x = 0; void setup() { Serial.begin(9600); } void loop() { // surveiller les débordements de variables x += 20; Serial.println("x = " + String(x)); delay(500); }
Explication du code avec des opérations mathématiques:
- dans les calculs également, il est important de tenir compte de l’étendue possible du résultat. Dans cet exemple, à l’une des étapes de l’addition, il y a un débordement de la variable byte.
Les fonctions mathématiques Arduino
La fonction abs() Arduino prend un paramètre numérique et renvoie un nombre positif:
int x = abs(-5); // renvoie 5 int x = abs(0); // renvoie 0 int x = abs(5); // renvoie 5
La fonction max() Arduino prend deux nombres en paramètre et renvoie le plus grand:
int x = max(23, 2); // renvoie 23
La fonction min() Arduino prend deux nombres en paramètre et renvoie le plus petit:
int x = min(23, 2) ; // renvoie 2
La fonction sqrt() permet d’obtenir la racine carrée d’un nombre sous la forme d’un double:
float x = sqrt(25); // renvoie 5.00
Trigonométrie Arduino: cos(), sin() et tan()
La fonction cos() prend un paramètre d’angle et renvoie la valeur du cosinus entre 1 et -1:
float x = cos(90); // renvoie -0,45
La fonction sin() prend un paramètre d’angle et renvoie une valeur de sinus entre 1 et -1:
float x = sin(90); // renvoie 0,89
La fonction tan() Arduino prend en paramètre un angle en radians et renvoie une valeur comprise entre moins l’infini et plus l’infini:
float x = tan(0); // renvoie 0,00
Conclusion. Rappelez-vous que les constantes entières sont perçues par le compilateur comme étant de type int, assurez-vous que le résultat se situe dans la plage des valeurs autorisées. Les opérations arithmétiques sont souvent utilisées en programmation lors de l’allumage progressif d’une LED à l’aide d’une boucle for() ou while(), ainsi que lors du calcul de la température de l’air en connectant une thermistance à un microcontrôleur.








Cool
Je crois qu’il y a une erreur dans « opérateurs composées »
++ additionne
— soustrait