Comment écrire un programme sous Arduino ?

Comment écrire un programme sous Arduino ? Cet article va vous permettre de découvrir l’environnement Arduino et sa programmation.

Le matériel nécessaire

Pour ce premier tutoriel, une carte Arduino et son câble USB suffisent.

Carte Arduino UNO Rev 3 Cordon USB de type A/B
Carte Arduino UNO Câble USB 2.0 Type A/B

Concernant la carte Arduino, il existe plusieurs types. Dans cette Article nous utiliseront la carte Arduino UNO basée sur le Microcontrôleur ATmega328P (datasheet).

Le câble USB fournit l’alimentation électrique de la carte Arduino et permet également la communication entre le PC et la carte Arduino. Il s’agit d’un cordon avec un connecteur USB mâle de type A (plat) et un connecteur USB mâle de type B (carré), identique à celui utilisé pour connecter une imprimante ou un scanner à un PC.

Préparation de l’éditeur Arduino

Tout d’abord, si vous n’avez pas encore installé l’Arduino IDE, c’est le moment. Pour plus de détail sur l’installation et son premier lancement, veuillez vous rapporter à l’article Installer l’Arduino IDE.

Une fois lancé, l’Arduino IDE va afficher la fenêtre ci-dessous. La zone d’écriture du programme est entourée d’un cadre rouge sur cette image.

Pour faciliter la désignation des lignes de programme, nous allons commencer par activer le numéro de ligne. Pour cela, dans le menu « Fichier », choisir « Préferences ».

… puis cocher la ligne « Afficher les numéros de ligne« .

Activer les numéros de ligne sur l'Arduino IDE

Vous avez maintenant l’affichage du programme suivant qui constitue l’ossature du code Arduino :

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

Ossature du code Arduino

Afin de faciliter la compréhension du code, je vous propose de modifier l’ossature par défaut du code logiciel Arduino pour obtenir le résultat suivant:

// Fonction de démarrage, s'exécute une seule fois:
void setup()
{

}

// Fonction principale du programme, s'exécute en boucle:
void loop()
{

}

Il est temps de fournir quelques explications:

  • Les lignes 1 et 7 qui commencent par deux barres obliques « // », ce sont des lignes de commentaires: les caractères suivants de la ligne seront ignorés par le programme.
  • La ligne 2, « void setup() » permet de déclarer une fonction de nom « setup » . Les futures instructions de cette fonction seront situées entre
    l’accolade gauche « {«  de la ligne 3
    et l’accolade droite « } » de la ligne 5.
  • La ligne 8, « void loop() » permet de déclarer une fonction de nom « loop » . Les futures instructions de cette fonction seront situées entre
    l’accolade gauche « {«  de la ligne 9
    et l’accolade droite « } » de la ligne 10.

Enregistrer un programme Arduino

Nous allons maintenant enregistrer ce programme contenant l’ossature du code Arduino sur le disque dur. Pour accéder à la fenêtre d’enregistrement, dans le menu « Fichier » sélectionner « Enregistre sous… ».

Menu de l'Arduino pour enregistrer le programme

Vous verrez alors s’afficher la fenêtre suivante:

Fenêtre pour l'enregistrement de l'ossature du code Arduino

Comme l’indique le titre de la fenêtre, un fichier contenant du code logiciel est appelé un croquis dans le monde d’Arduino.

Je vous invite à nommer ce programme de base « Ossature » et à l’enregistrer. Vous retrouvez ensuite la fenêtre principale de l’Arduino IDE qui comporte maintenant le nom choisi:

Le croquis Arduino de nom "Ossature" chargé

Faire clignoter la LED embarquée

Pour ce premier programme, nous allons de faire clignoter la LED embarquée de la carte Arduino UNO. Cette LED embarquée est connecté à une entrée/sortie numérique de la carte, il s’agite de la sortie 13 pour l’Arduino UNO.

Vous allez tout d’abord ajouter une ligne à votre ossature de programme pour indiquer au microcontrôleur que vous souhaitez utilisée l’entrée/sortie 13 en sortie (« OUTPUT »). Cette configuration n’ayant besoin d’être exécutée qu’une seule fois au démarrage du programme, vous l’insérez dans la fonction « setup »:

pinMode(13, OUTPUT);

Pour faire le clignotement de la LED, vous demandez tout d’abord au microcontrôleur de l’allumer… d’attendre un peu… de l’éteindre… d’attendre un peu… et ainsi de suite.

L’allumage de la LED s’effectue par une demande de positionnement de la sortie 13 à « HIGH » et son extinction par une demande de positionnement de la sortie 13 à « LOW » en utilisant la fonction « digitalWrite« . Vous effectuez ces demandes par ajout des lignes de codes suivantes dans la fonction « loop »:

digitalWrite(13, HIGH);
digitalWrite(13, LOW);

Il nous manque encore quelque-chose afin d’obtenir le clignotement voulu. En effet, si on laisse le code tel que nous venons de l’écrire, l’allumage et l’extinction de la diode vont se réaliser en quelques millisecondes, ce qui sera trop rapide pour que nous puissions le voir.

Il est donc nécessaire de demander au microcontrôleur de marquer une pause après avoir modifié l’état allumé/éteint de la LED. Pour cela nous appelons la fonction « delay »  qui demande au microcontrôleur d’attendre une durée exprimée en millisecondes. Pour attendre 1 seconde après chaque extinction ou allumage de la LED, vous ajoutez la ligne de code suivante:

delay(1000); 

Et donc, vous obtenez le code logiciel suivant:

// Fonction de démarrage, s'exécute une seule fois:
void setup()
{
  pinMode(13, OUTPUT);
}

// Fonction principale du programme, s'exécute en boucle:
void loop()
{
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

Compilation du code logiciel

Avant de transférer le code logiciel que nous venons d’écrire dans notre carte Arduino, nous demandons à l’Arduino IDE de le « compiler » c’est à dire le transformer en un fichier binaire (suite de 1 et de 0) compréhensible par le microcontrôleur. Commençons par indiquer à l’Arduino IDE le type de microcontrôleur auquel est destiné ce code logiciel. Dans le menu « Outils », choisissez l’élément commençant par « Type de carte » puis « Arduino/Genuino Uno »:

Lorsqu’on demande à l’Arduino IDE de « compiler » un programme, celui ci vérifie préalablement la syntaxe du code logiciel qui lui est fourni. Cette opération se lance par le menu « Croquis », en cliquant sur « Vérifier/Compiler »:

Menu de l'Arduino pour vérifier/compiler le code logiciel

L’Aduino IDE affiche le message « Compilation du croquis » et une barre de progression indique qu’il est occupé à compiler votre code source:

Si une erreur a été rencontrée au cours de la compilation, un bandeau orange s’affiche sous la zone d’écriture du programme avec un bouton « Recopier les messages d’erreur ». En exemple, la copie d’écran ci-dessous affiche le message d’erreur produit par un « ; »  oublié en fin de la ligne 12.

La vérification/compilation du code logiciel a echouée

Si vous rencontrez un message d’erreur, il est nécessaire de modifier le code logiciel que vous venez d’écrire pour corriger votre code avant de relancer la compilation  (menu « Croquis », puis « Vérifier/Compiler »).

Une fois la compilation terminée, si tout s’est bien déroulé vous avez le message « Compilation terminée » qui s’affiche sous la zone d’écriture du programme:

La vérification/compilation du code logiciel a réussie

Transfert du programme dans la carte Arduino

Pour le transfert du programme que vous venez de compiler, la première chose à faire est de brancher votre câble USB à la carte Arduino …

Branchement du cable USB à la carte Arduino

… et au PC.

Branchement du cable USB

Une fois le câble USB connecté, vous allez indiquer à l’Arduino IDE le port USB qu’il devra utiliser pour le transfert du programme. Dans le menu « Outils », cliquez sur « Port » puis dans les ports listés, cliquez sur celui se terminant par « Arduino/Genuino Uno »:

Selection du port USB pour le transfert du programme

Vous pouvez maintenant lancer le transfert de ce programme dans la carte Arduino par le menu « Croquis », en cliquant sur « Téléverser »:

Transférer le programme compilé sur la carte Arduino

Comme lors de l’étape de compilation, l’Aduino IDE affiche le message « Compilation du croquis » et une barre de progression puis procéder au transfert du logiciel dans votre carte Arduino. Une fois ce transfert terminé, si tout s’est bien déroulé, il va afficher le message « Téléversement terminé »:

Le transfert du programme dans la carte Arduino est terminé

Ça y est, le programme est chargé sur votre carte. Vous pouvez maintenant observer le clignotement de la LED embarquée.

Vous savez maintenant écrire un logiciel Arduino et le transférer sur votre carte.

Pour aller plus loin

Pour aller plus loin, je vous invite à modifier votre code logiciel. Vous pouvez par exemple accélérer le clignotement en diminuant la durée d’attente de la fonction « delay » à une valeur de 300ms:

  digitalWrite(13, HIGH);
  delay(300);
  digitalWrite(13, LOW);
  delay(300);

Une fois le code modifié, n’oubliez pas de relancer la procédure de compilation avant le transfert sur la carte.


Ce contenu a été publié dans Arduino. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

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