You are currently viewing Comment écrire un programme sous Arduino ?
Carte générique Arduino UNO Rev 3 vue de face

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

Comment écrire un programme sous Arduino ?

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 utiliserons 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.

Zone d'écriture du programme sur l'Arduino IDE
Zone d’écriture du programme sur l’Arduino IDE

Vous avez par défaut 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 11.

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
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
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:

Arduino IDE avec le croquis de nom "Ossature" chargé
Arduino IDE avec le croquis de nom “Ossature” chargé

Faire clignoter la LED embarquée:

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

Emplacement de la sortie 13 et de la LED embarquée sur la carte Arduino Uno.

Vous allez tout d’abord ajouter une ligne à votre ossature de programme pour indiquer au microcontrôleur que vous souhaitez utiliser 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 “Carte” puis “Arduino AVR Boards” et enfin “Arduino UNO”:

Sélection de la carte "Arduino UNO" au travers des menus de l'Arduino IDE
Sélection de la carte “Arduino UNO” au travers des menus de l’Arduino IDE

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 IDE pour vérifier/compiler le code logiciel
Menu de l’Arduino IDE pour vérifier/compiler le code logiciel

L’Aduino IDE affiche le message “Compilation du programme…” et une barre de progression indique l’avancement de la compilation de votre code source:

Affichage par l'Arduino IDE de l'avancement de la compilation du programme
Affichage par l’Arduino IDE de l’avancement de la compilation du programme

Si une erreur a été rencontrée au cours de la compilation, du texte en rouge s’affiche dans la zone de sortie sous la zone d’écriture du programme avec un bouton “Copier 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 échoué
La vérification/compilation du code logiciel a échoué

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éussi
La vérification/compilation du code logiciel a réussi

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”:

Sélection du port USB dans l'Arduino IDE pour le transfert du programme dans la carte.
Sélection du port USB dans l’Arduino IDE pour le transfert du programme dans la carte.

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

Menu pour téléverser le code logiciel dans la carte Arduino
Menu pour téléverser le code logiciel dans 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é
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.

Pour continuer:

Pour continuer dans l’apprentissage d’Arduino avec un programme ludique,  je vous invite à vous reporter à l’article suivant: Au clair de la lune avec Arduino


S’abonner
Notification pour
guest
5 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
saunier
saunier
3 années il y a

magnifique clair et complet

Ouams
Ouams
3 années il y a

TOP

oue
oue
2 années il y a

nickel

oue
oue
2 années il y a

de ouf

Metis15
Metis15
2 années il y a

J’ai toujours été dégoutté par le code que j’appelais “du chinois”…
Là, je dois avouer que c’est un vrai plaisir de voir ma LED clignoter sans aucun problème et sans faire du copier/coller de bête.
Et même, j’ai modifié le script et ça fait autre chose.
Bon maintenant, il reste à apprendre toutes ces fonctions, tout ces attributs et là, j’ai pas fini…!