Locales et globales variables Arduino

Les variables globales et locales dans un programme Arduino ont une visibilité (durée de vie) différente. Nous verrons quelles sont les variables dans une fonction Arduino et quelles sont les variables à utiliser dans une boucle void ou une procédure void setup (sous-routine). Nous verrons également ce qu’il faut faire si une erreur se produit lors de la compilation du code – les variables globales utilisent beaucoup de mémoire Arduino Uno / Nano.


Ce dont vous aurez besoin

  • Arduino Uno / Arduino Nano / Arduino Mega

Matériel supplémentaire sur ce sujet:

  1. Type de données (variable) dans Arduino
  2. Arrays Arduino: tableaux de données
  3. Arduino EEPROM: exemples pour lire/écrire

Déclaration les variables Arduino

Il est important de se rappeler qu’une variable dans un programme doit être déclarée avant qu’on y accède, c’est-à-dire qu’elle doit être en amont. Sinon, vous obtiendrez une erreur à la compilation – Not declared in this scope. Notez également que lorsqu’une variable est initialisée à l’intérieur d’une boucle vide – chaque fois qu’une nouvelle boucle est lancée, la variable est mise à jour. La variable dans un programme est déclarée simplement:

« type de données » « nom » « point de virgule »
ou
« type de données » « nom » = « valeur » « point de virgule »

Domaine local

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

void loop() {
    for (int var = 0; var <= 100; var = var + 10) {
      Serial.println(var);
      delay(500);
    }
}

Une variable locale ne vit qu’à l’intérieur d’une fonction ou dans un bloc de code entre accolades. Si vous essayez d’accéder à une variable en dehors d’une fonction, vous obtiendrez une erreur. Dans de nombreux exemples de programmation Arduino, nous avons déclaré une variable à l’intérieur d’une boucle for. Comme dans l’exemple de programme suivant, où une variable locale ne peut pas être utilisée en dehors des accolades de la boucle for.

Domaine global

int var = 10;

void setup() {
    Serial.begin(9600);
    Serial.println(var);
    delay(1000);
}

void loop() {
    var = var + 10;
    Serial.println(var);
    delay(500);
}

Une globale variable Arduino IDE est accessible dans le programme depuis n’importe quel endroit d’un sous-programme ou d’une fonction. La durée de vie d’une telle variable va du début du programme à la fin du programme. Les variables locales sont accessibles dans les fonctions ou sous-routines dans lesquelles elles ont été déclarées. La variable globale var dans l’exemple suivant peut être utilisée à partir de n’importe quelle fonction du programme.

Formelles variables

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

void loop() {
    Func(10);
    delay(500);
}

void Func(int var) {
    var = var + 10;
    Serial.println(var);
}

Une variable formelle, c’est-à-dire un paramètre passé à une fonction, se comporte comme une variable locale, mais apparaît dans le programme dans des conditions différentes: lorsque la fonction est appelée. Cette variable peut être lue et écrite dans sa fonction. Chargez l’exemple de code suivant dans le microcontrôleur et ouvrez le moniteur de port. Lorsque la fonction se termine, la variable var est supprimée de la mémoire Arduino Uno.





Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.