Programmer avec Arduino
Maintenant, pour que vous puissiez écrire votre premier programme dans l'univers Arduino, il est demandé de connaître les fonctions les plus standardisées fournies par le framework Arduino (C/C++). Toute programmation Arduino repose sur quelques fonctions fondamentales, auxquelles s'ajoutent des fonctions, appelées aussi bibliothèques propriétaires, pour piloter les entrées et les sorties dans une carte Arduino Uno, Nano, etc , les périphériques de communication et les autres périphériques disponibles sur cette famille de cartes.
Prenons l'exemple du montage présenté ci-dessous (photo ci-dessous par Vishnu Mohanan sur Unsplash) : la commande (allumer, éteindre, clignoter, ...) d'une diode LED de couleur bleue à l'aide d'une carte Arduino Uno nécessite l'écriture d'un petit programme pour contrôler son fonctionnement :

C'est quoi un framework ?
Un framework, dans le domaine de la programmation, est un ensemble de fonctions et de bibliothèques logicielles mis à disposition par un éditeur. Cet ensemble de composants, fonctions, bibliothèques, ... permet de créer, développer et compiler des applications informatiques plus rapidement, en toute simplicité et surtout efficacement.
Dans cette perspective, les fabricants et créateurs de solutions électroniques programmables ont mis en place des solutions frameworks pour leurs solutions électriques et/ou embarquées. Ainsi, Arduino propose aussi tout un framework pour leurs cartes Arduino pour nous garantir un environnement simple et pour programmer nos différentes cartes, que nous avons récemment acquises, pour nos nouveaux projets et nos nouvelles conceptions.
Ainsi, le framework fourni, il nous offre principalement des fonctions prêtes à l’emploi pour commander et interagir avec notre matériel :
- comme allumer une diode LED,
- commander un moteur pas à pas,
- lire la valeur binaire sur une entrée,
- écrire une valeur binaire sur une sortie,
- lire la valeur analogique sur un capteur, etc.
Mais pas que des fonctions basiques, le framework Arduino nous fournit aussi une structure standard de notre code Arduino avec les fonctions setup et loop, ce qui nous permet de créer rapidement des projets sans devoir gérer directement toute la complexité du matériel et des registres du microcontrôleur propre de notre carte.
Comment programmer sous Arduino ?
Avant de pouvoir commencer à programmer votre première carte Arduino, il vous est nécessaire de mettre en place votre environnement de travail. Cela implique:
- choisir la bonne carte adaptée à votre projet. Si vous êtes débutant et vous cherchez une carte à un prix raisonnable pour vous initier à la programmation des cartes embarquées et à la robotique, nous vous recommandons la carte Arduino Uno.
- connecter à votre ordinateur à l’aide d’un câble USB approprié,
- télécharger le logiciel Arduino IDE,
- installer la solution en mode Admin sur votre ordinateur.
Une fois que vous avez le matériel requis, et que vous avez télécharger et installer l'éditeur, vous pourrez commencer à écrire vos programmes, les compiler et les téléverser sur votre carte pour les exécuter.
Arduino IDE, c'est un éditeur ?
La solution Arduino IDE (IDE pour l'abréviation en anglais Integrated Development Environment), est la solution "logiciel" officiel qui permet de programmer ces cartes. Avec cette solution, environnement de travail, nous pouvons :
- coder : écrire notre code, appelé aussi “sketch”,
- vérifier et compiler notre code si notre code est correcte. Si une ou plusieurs erreurs sont présentes, la compilcation s'arrête et un message s'affiche,
- téléverser le programme compilé vers votre carte Arduino via l'interface USB,
- surveiller et débeuger les échanges avec la carte Arduino via le moniteur série.
La capture ci-dessous nous présente cette interface dans sa version 2.3 :

Apprendre à programmer, c'est difficile ?
Apprendre à programmer semble pour certains difficile au début, mais ce n’est pas réellement vrai ! Le principal obstacle est comment adapter notre raisonnement, comment traduire un algorithme en une suite de lignes compréhensibles par la machine. Autrement dit, on apprend à donner des instructions précises à un processeur ou un microcontrôleur, bloc par bloc, soit donc étape par étape.
Au début, certains concepts peuvent vous paraître compliqués, même si vous avez suivi nos cours portant sur la programmation, que vous avez bien compris ce que signifie une variable, une condition, une boucle, etc, mais cela devient vite plus naturel et plus facile avec la pratique. La seule difficulté avec les cartes Arduino est que le langage de programmation repose sur le C/C++, ce qui vous demande un peu de rigueur, mais il est très facile de comprendre les bases et de l'assimiler rapidement.
Pour cela, nous vous recommandons la régularité dans votre formation et la pratique sur de petits projets concrets tout au début. Ainsi, en avançant progressivement, on progresse rapidement et on gagne en autonomie.
Pour la suite de cette section, le langage que nous allons utiliser pour programmer nos cartes sous Arduino IDE sera du C/C++, mais dans sa version simplifiée afin qu'il soit plus accessible aux experts comme à nos petits débutants. Et pour vous confirmer que programmer une carte Arduino, est vraiment facile, nous vous proposons le code ci-dessous pour augmenter et diminuer la luminosité d'une mini lampe LED :
// Ce code utilise une broche PWM pour varier la luminosité d'une diode LED
const int led = 9;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
// Augmenter la luminosité
for (int lum = 0; lum <= 255; lum++) {
analogWrite(led, lum);
delay(50);
}
// Diminuer la luminosité
for (int lum = 255; lum >= 0; lum--) {
analogWrite(led, lum);
delay(50);
}
}
Comme nous pouvons le constater, notre code est composé uniquement de 19 lignes de code et comprenant uniquement les 2 fonctions de structure par défaut d'un code C++ pour Arduino : la fonction loop() et la fonction void(). Nous revenons en détails plus part sur ces deux fonctions pour les découvrir et les expliquer.
Les fonctions indispensables à connaître
Pour commencer, surtout si vous découvrez ce type de carte programmable et que vous êtes en mode formation, nous vous proposons de découvrir l'ensemble des principales fonctions proposées par Arduino. Le tableau ci-dessous nous les présente :
| Catégorie | Fonctions principales |
|---|---|
| Structure | setup(), loop() |
| GPIO numériques | pinMode(), digitalWrite(), digitalRead() |
| Entrées analogiques | analogRead() |
| PWM | analogWrite() |
| Temps | delay(), millis(), micros() |
| Communication série | Serial.begin(), Serial.print(), Serial.println(), Serial.read(), Serial.available() |
| Conditions | if, else, switch |
| Boucles | for, while, do...while |
| Interruptions | attachInterrupt(), detachInterrupt() |
| I²C | Wire.begin(), Wire.read(), Wire.write() |
| SPI | SPI.begin(), SPI.transfer() |
| EEPROM | EEPROM.read(), EEPROM.write(), EEPROM.update() |
| Mathématiques | map(), constrain(), min(), max(), abs() |
Si vous souhaitez découvrir plus de fonctions, vous pouvez consulter la documentation officielle, accessible à l'adresse suivante :
Vous pouvez également découvrir les variables et les structures proposées par le framework Arduino :
- https://docs.arduino.cc/language-reference/#variables
- https://docs.arduino.cc/language-reference/#structure
| < Arduino Nano | La robotique |