Le compilateur de l’IDE Arduino compile par défaut du code écrit en C et en C++ simplifié pour microcontrôleur. Le code est par ailleurs enrichit des bibliothèques natives au monde Arduino pour communiquer directement avec l’électronique. Au travers des programmes Arduino, on retrouve des types de données différents selon les variables déclarées. Dans cet article, nous allons faire un tour d’horizon de tous ces types de données.
Le tableau ci-dessous montre l’ensemble des données que l’on peut rencontrer et utiliser en programmation Arduino :
void | Boolean | char | Unsigned char | byte | int | Unigned int | word |
long | Unsigned long | short | float | double | array | String-char array | String-object |
Table des matières
Void
Le mot-clé « void » est uniquement utilisé pour déclarer des fonctions. La spécificité du « void » c’est que la fonction ne retourne aucun résultat lorsque celle-ci est appelée.
Boolean ou bool
Un « boolean » est un booléen. Il s’agit d’une donnée ne pouvant prendre que 2 valeurs : true (vrai) ou false (faux). Il est également possible de remplacer true par 1 et false par 0 pour un booléen. Chaque variable booléenne occupe un byte de mémoire.
Char
Les données Char sont des données pouvant contenir un caractère. C’est un type de donnée qui occupe un octet de mémoire. caractère s’écrit dans une variable char entre guillemets simples comme ceci : ‘A’. Pour écrire plusieurs caractères, ce qu’on appelle aussi une chaîne de caractères (string), on utilisera les guillemets doubles comme ceci : « ABC ».
Mais derrière chaque caractère se cache un nombre.Vous pouvez voir l’encodage spécifique dans le tableau ASCII. Cela signifie qu’il est possible d’effectuer des opérations arithmétiques sur des caractères, dans lesquels la valeur ASCII du caractère est utilisée. Par exemple, ‘A’ + 1 a la valeur 66, car la valeur ASCII du caractère ‘A’ est 65.
Unsigned Char
La donnée unsigned char se comporte exactement comme une variable char, sauf que celle ci prends en compte la table ASCII étendue qui va de 0 à 255. Voici la liste des codes restants (128-255) :
Byte
Une donnée byte peut stocker un nombre non signé sur 8 bits, de 0 à 255.
Int
Les données int représentent les données de stockage des nombres entiers. Il s’agit du type de donnée principal pour le stockage des nombres. Int stocke une valeur sur 16 bits, soit 2 octets. Cela donne une fourchette de -32 768 à 32 767 (soit une valeur minimale de -215 et une valeur maximale de 215-1).
Attention : la taille de la donnée Int varie d’une carte à l’autre. Sur Arduino Due, MKR100 et Zero par exemple, un int sotcke une valeur sur 32 bits, soit 4 octets. La plage de valeur est donc bien plus grande : de -2 147 483 648 à 2 147 483 647 (soit une valeur minimale de -231 et une valeur maximale de 231-1).
Unsigned Int
Les Unsigned Int fonctionnent de la même manière que les Int. La différence ici, c’est que les nombres négatifs ne sont plus pris en compte. Le nombre est toujours encodé sur 2 bytes, soit 16 bits, soit 2 octets. La plage positive est donc plus grande : de 0 à 65 535 (216-1). Les Arduino Due, MKR1000, Zero étant sur des nombres en 32 bits, la plage de ce type de données se situe entre 0 et 4 294 967 295 (232-1).
Word
Sur l’Arduino UNO et les autres cartes ATMEGA, un Word peut stocker un nombre non signé sur 16 bits. Sur l’Arduino Due, MKR1000 et Zero, le Word peut stocker une nombre sur 32 bits non signé. Le fonctionnement d’une variable Word est exactement le même qu’un Unsigned Int.
Long
Les variables Long peuvent stocker des nombres entiers sur 4 bytes, soit 32 bits : de -2 147 483 648 (-231) à 2 147 483 647 (231+1).
Unsigned long
Les variables Unsigned long peuvent stocker des nombres non signés entiers sur 32 bits : de 0 à 4 294 967 295 (232-1).
Short
Une donnée de type short peut stocker un nombre entier sur 16 bits quel que soit la carte Arduino utilisée : de -32 768 à 32 767 (soit une valeur minimale de -215 et une valeur maximale de 215-1).
Float
Le type de données float permet de stocker un nombre à virgule flottante. Les variables float sont souvent utilisées pour approcher les valeurs analogiques et continues car la donnée float possède une plus grande résolution que les nombres entiers.
La plage d’un nombre float est la plus grande : de -3,4028235 E+38 à 3,4028235 E+38. Ce nombre est stocké sur 32 bits, soit 4 octets.
Double
Sur Arduino UNO et autres cartes munies de processeur ATMEGA, une donnée double fonctionne exactement de la même manière qu’une donnée float. Elle occupe également 32 bits, sans gain de précision supplémentaire. Par contre sur Arduino Due, MKR1000 ou Zero, la donnée double occupe 64 bits, ce qui offre plus de précision.
<– [4] Structure d’un programme Arduino | [6] Variables et constantes –> |
Retour au sommaire « Apprendre Arduino » |
0 commentaires