Main

Référence : Langage Arduino : [ Mini | Standard | Etendue | Maxi ] Librairies : [ Vue d'ensemble | Synthèse ] Infos : [ Comparaison | Changements ]

Structure d'un programme Arduino


Comme indiqué sur la page d'installation du logiciel Arduino, ouvrez un programme dans l'éditeur, par exemple le programme Blink qui fait clignoter une LED (Files>Examples>Digital>Blink). Cette page va vous expliquer quelles sont les différentes parties du progrmme et comment elles fonctionnent.

Programme (ou séquence - "sketch" en anglais)

Un programme Arduino désigne un fichier de code écrit en langage Arduino que l'on peut transférer après compilation et exécuter sur une carte Arduino.

Les commentaires

Les premières lignes du programme Blink sont des commentaires :

/*
 * Blink
 *
 * The basic Arduino example.  Turns on an LED on for one second,
 * then off for one second, and so on...  We use pin 13 because,
 * depending on your Arduino board, it has either a built-in LED
 * or a built-in resistor so that you need only an LED.
 *
 * http://www.arduino.cc/en/Tutorial/Blink
 */

Tout ce qui est entre /* et */ (signes de début et de fin d'un commentaire sur plusieurs lignes) est ignoré par le compilateur Arduino quand il compile le programme (autrement dit, les commentaires ne sont pas programmés dans la carte Arduino). Noter que le * en début de chaque ligne est là uniquement pour faire joli et n'a pas de signification particulière). Les commentaires du début de programme sont là pour les personnes qui liront le code : pour expliquer ce que le programme fait, comment il fonctionne ou pourquoi il est écrit de cette façon. C'est une bonne habitude de commenter (abondamment...) vos programmes, et de mettre à jour vos commentaires quand vous modifiez le code. Cela aidera les autres (et parfois vous-même..) pour apprendre à partir de votre code ou le modifier.

Il y a une autre manière de faire des commentaires, plus courts, sur une seule ligne. Ceux-ci commencent par // et se terminent à la fin de la ligne. Par exemple, dans la ligne :

int brocheLED = 13;                // LED connectée à la broche numérique 13

le message "LED connectée à la broche numérique 13 est un commentaire.

Variables

Une variable est un emplacement mémoire utilisé pour stocker une donnée. Une variable a un nom, un type et une valeur. Par exemple la ligne du programme Blink ci-dessus déclare une variable appelée brocheLED, de type int et de valeur initiale 13. Cette variable est utilisée pour indiquer sur quelle broche de la carte Arduino la LED est connectée. A chaque fois que "brocheLED" apparaîtra dans le code du programme, sa valeur sera prise en compte. Dans notre cas, la personne qui a écrit le programme aurait pu choisir de ne pas déclarer la variable brocheLED et d'utiliser à la place simplement la valeur 13 à chaque fois qu'il est nécessaire de préciser le numéro de la broche utilisée. L'avantage de l'utilisation d'une variable est qu'il est ainsi beaucoup plus facile de changer la broche utilisée pour connecter la LED : vous aurez seulement besoin de modifier la ligne unique où la valeur est attribuée à la variable.

Souvent, cependant, la valeur de la variable changera durant l'exécution du programme. Par exemple, vous pourrez stocker la valeur lue depuis une entrée dans une variable.

Pour plus d'information, voir les pages :

Fonctions

Une fonction (également désigné sous le nom de procédure ou de sous-routine) est un morceau de code ayant un nom et que vous pouvez utiliser à un autre endroit dans un programme. Par exemple, voici la définition de la fonction setup dans le programme d'exemple Blink :


void setup()
{
  pinMode(brocheLED, OUTPUT);      // configure la broche numérique en sortie
}

La première ligne fournit des information sur la fonction, tel que son nom, setup. Le texte avant et après le nom spécifie le type de valeur renvoyée par la fonction et les paramètres qu'elle utilise : ceci est expliqué ailleurs. Le code entre les accolades {} est le corps de la fonction : le code qui définit ce que fait la fonction.

Vous pouvez appeler une fonction qui est déjà définie (soit dans votre programme, soit dans une librairie, soit une fonction qui est partie intégrante du langage Arduino). Par exemple, la ligne :

pinMode(brocheLED, OUTPUT); 

...appelle la fonction pinMode, lui faisant passer 2 paramètres : la variable brocheLED et la constante prédéfinie OUTPUT. Ces paramètres sont utilisés par la fonction pinMode pour savoir quelle broche et quel mode de fonctionnement utiliser.

Les fonctions pinMode(), digitalWrite(), et delay()

La fonction pinMode()

La fonction pinMode() configure une broche numérique de la carte Arduino soit en entrée soit en sortie. Pour l'utiliser, vous lui passez le numéro de la broche et la constante prédéfinie INPUT ou INPUT. Quand elle est configurée en entrée, une broche peut détecter l'état d'un capteur tel qu'un bouton poussoir; ceci est détaillé ailleurs sur ce site. En sortie, une broche peut commander un effecteur, tel qu'une LED.

Voir également : Les broches numériques d'entrée/sortie

La fonction digitalWrite()

La fonction digitalWrite() met une valeur (0 ou 1) sur une broche. Par exemple, la ligne :

digitalWrite(ledPin, HIGH);

... met la broche brocheLED (broche 13) à HIGH ou niveau HAUT à 5 volts. Ecrire LOW (niveau BAS) sur la broche la connecte à la masse ou 0V.

Voir également : Les broches numériques d'entrée/sortie

La fonction delay()

La fonction delay() oblige la carte Arduino à attendre (= ne rien faire) pendant un nombre spécifié de millisecondes avant de continuer à la lignes suivante. Il y a 1000 millisecondes dans 1 seconde, ainsi la ligne :

delay(1000);

... entraîne une pause de 1 seconde.

Les fonctions obligatoires setup() et loop()

Il y a deux fonctions spéciales, obligatoires, qui sont partie intégrante de tout programme en langage Arduino : les fonctions setup() et loop(). La fonction setup doit être appelée en premier, lorsque le programme commence. Cette fonction n'est exécutée qu'une seule fois au démarrage du programme. C'est le lieu privilégié pour réaliser les tâches d'intialisation des broches numériques ou des librairies.

La fonction loop() est appelée ensuite et est exécutée en boucle sans fin de façon indéfinie, et le code qu'elle contient est exécuté à chaque passage. C'est à ce niveau que sera écrit le coeur de votre programme.

Vous êtes obligé d'inclure ces deux fonctions dans votre programme, même si elles ne font rien. Pour plus de détails, voir : Ecrire votre premier programme : le programme minimum.

Exercices

1. Modifier le code de façon à ce que la LED soit allumée 100 millisecondes et éteinte 1000 milisecondes.

2. Modifier le code de façon à ce que la LED s'allume quand le programme démarre et reste allumée ensuite.

Voir également

Commentaires utilisateurs

Aucun commentaire


Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino ou à l'adresse suivante : support_at_mon-club-elec_point_fr

Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.

La présente traduction française commentée a été réalisée par Xavier HINAULT (2010-2012) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.

Traduction de la page originale : http://arduino.cc/en/Tutorial/Sketch