Lorsqu'on ouvre un nouveau programme avec l'IDE Arduino, deux blocs sont déjà en place : setup() et loop(). Ces blocs sont nécessaires au fonctionnement d'un programme Arduino. Le premier bloc contiendra les instructions d'initialisation et ne sera joué qu'une fois au démarrage du montage, tandis que le second sera lu et relu en boucle par le programme pour animer le montage.
Le mot-clé void précise que ces fonctions ne renvoient rien au programme. Il est possible de créer des fonctions qui renvoient un certain type de variable.
Pour déjouer le caractère continu du loop on pourra créer des fonctions, boucles et conditions logiques.
void setup() { // le code ici ne sera interprété qu'une seule fois // initialisation } void loop() { // ici les instructions seront jouées en boucle // c'est le cœur du programme }
Comme des mots-valises dans lesquels où on peut ranger/stocker les infos utiles,
pour les appeler plus facilement (on choisit le nom) et pour pouvoir utiliser des données dont on ne connait pas encore la valeur. (variables calculées par le programme).
On type les variables pour qu'elles soient lisibles par le programme et que le compilateur sache quel espace leur réserver dans la mémoire du calculateur.
Les variables binaires boolean occupent un octet (et pas un byte).
Les float ne peuvent dépasser une précision de 6 à 7 chiffes en tout (avant et après la virgule). Les double proviennent d'autres langages et, en Arduino ils ont la même taille et la même précision que les float.
Type | Nb Octets | Valeurs |
---|---|---|
boolean | 1 | 0 ou 1, true ou false, high ou low |
char | 1 | pour stocker des caractères |
byte | 1 | de 0 à 255 |
int | 2 en 8 bits | de -32768 à 32767 |
word | 2 | de 0 à 65535 (entier non signé) |
long | 4 | de -2 147 483 648 à 2 147 483 647 |
unsigned long | 4 | de 0 à 4 294 967 295 |
float | 4 | de - 3.4 x10 puissance 38 à 3.4 x10 puissance 38 |
Selon l'endroit et la manière dont elles sont déclarées :
Au delà de cette portée on peut caractériser certaines variables selon 2 mots clés :
// exemples de déclaration const byte PinLed = 3; // pinLed est globale // elle sera utilisable partout dans le pgm void loop(){ int Compteur = 0; // Compteur appartient au loop // elle ne peut pas être utilisé dans le setup for (i=0; i++; i<100){ // i est une variable utile seulement à cette boucle for } }
On déclare deux genres de variables:
// exemples de déclaration const byte PinLed = 3; // la broche de ma LED, reste identique boolean EtatLed = 0; // l'etat de ma LED, changera int Compteur = 0; // changera au cours du programme
Parfois les constantes sont déclarées en amont du code avec le mot-clé #define. Dans ce cas le traitement se fait avant le compilateur, qui ne connaîtra jamais le nom de la variable : il sera remplacé partout par sa valeur avant d'être compilé.
On ne pourra pas faire de test sur la variable au cours du programme !
Apriori c'est pratique pour stocker et jouer avec des variables type string et/ou pour vérifier / debugger certains scripts, mais il me semble qu'il vaut mieux éviter cette syntaxe quand on débute.