Les Variables
Les variables permettent de stocker des informations dont vous aurez l'usage ultérieurement.
Définition : Déclaration et Typage
Déclaration
Les variables utilisées dans un programme doivent être déclarées avant leur première utilisation.
Elles doivent être typées. En effet, pour des raisons de taille de stockage le programme doit connaitre le contenu de la variable (entier, nombre à virgule, caractère...)
Elles sont sensibles à la casse. C'est à dire que les noms bonjour et Bonjour, font référence à deux variables différentes.
Restrictions sur l'écriture des variables :
elles ne doivent pas contenir d'espace
elles ne doivent comporter que des lettres, des chiffres ou le caractère de soulignement "_".
le premier caractère ne peut pas être un chiffre.
Typage
Le langage contient plusieurs types standards et permet de créer ses propres types.
Voici quelques exemples :
char : entier (-127 à 127). affiche un caractère de la table des ASCII
unsigned char : entier (0 à 255)
byte : entier(0 à 255)
int : entier standard signé (-32768 à 32767)
unsigned int : entier standard non signé (0 à 65535)
long : entier long (-231 à 231 - 1)
unsigned long : entier long (0 à 232 - 1)
float : nombre à virgule (-3,4.1038 à -3,4.10-38 et 0 et 3,4.10-38 à 3,4.1038)
double : nombre à virgule (-1,7.10308 à -1,7.10-308 et 0 et 1,7.10-308 à 1,7.10308)
bool : booléen
int nombre = -10;
char caractere1 = "A";
char caractere2 = 65;
bool reponse = true;
Const
Le mot clé const permet de rendre non modifiable une variable.
const int nombre = 10;
nombre = 5; // erreur
pour plus d'informations, voir la documentation officielle.
const int led = 4;
const int dureeAllumee = 2000;
const int dureeEteinte = 1000;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(dureeAllumee);
digitalWrite(led, LOW);
delay(dureeEteinte);
}
Définition : Tableau
Les tableaux permettent de stocker plusieurs valeurs de même type
int tab1[3] = {7, 12, 15}; // on peut déclarer le nombre de cases 3
int tab[] = {8, 12, 43, 7}; // le nombre de cases est calculé automatiquement
char tab2[8] = "Bonjour"; // une chaine de caractères peut être considérée comme un tableau de caractères. La première case contient un caractère null (7 caractères + 1 null = 8).
Exemple
Tapez dans la console le numéro de la LED à allumer (0,1,2,3).
const int LEDs[] = {2, 3, 5, 7};
void setup(){
Serial.begin(9600);
pinMode(LEDs[0], OUTPUT);
pinMode(LEDs[1], OUTPUT);
pinMode(LEDs[2], OUTPUT);
pinMode(LEDs[3], OUTPUT);
}
void loop(){
int nb=0;
if (Serial.available() > 0) {
nb = Serial.parseInt();
digitalWrite(LEDs[0], LOW);
digitalWrite(LEDs[1], LOW);
digitalWrite(LEDs[2], LOW);
digitalWrite(LEDs[3], LOW);
digitalWrite(LEDs[nb], HIGH);
Serial.println(nb);
}
}
Définition : Scope
En fonction de l'endroit où elles ont été déclarées, les variables sont visibles ou pas. On parle de la portée (scope) d'une variable.
Portée Globale
Sur Arduino les variables déclarée en dehors des fonctions ont une portée globale. C'est à dire que l'on peut utiliser ces variables partout dans le programme.
Portée Locale
Une variable déclarée dans une fonction à une portée locale. C'est à dire qu'elle ne peut être utilisée qu'à l'intérieur de la fonction.
Portée de Bloc
Une variable peut être déclarée entre les accolades d'une structure de contrôle ou dans les parenthèses d'un for. Elle a une portée de Bloc.
Dans ce cas seule la structure peut utiliser la variable.
int a = 3; // utilisable dans tout le programme
void setup() {
int b = 5; // utilisable que dans la fonction setup
}
void loop() {
int c = 7; // utilisable que dans la fonction loop
for( int i = 0; i < 5 ; i++) { // utilisable que dans le for
// ...
}
while(c < 10) {
int d = 9; // utilisable que dans le while
c++;
}
}