Arduino
Je suis en congé de disponibilité pour une durée indéterminée depuis la rentrée 2022. Ce site ne sera pas mis à jour cette année scolaire 2023/2024. Si vous appréciez mon travail et que vous vous en servez régulièrement, sachez que je n’ai plus de revenu cette année, mais que je souhaite tout de même maintenir ce site en ligne gratuitement, accessible à toutes et à tous. Vous pouvez me faire un don pour participer aux frais d’hébergement. 😊
Si vous ne pouvez pas me faire un don, likez et followez la page Facebook de SitUp pour améliorer ma visibilité.
Vous trouverez dans cette rubrique quelques tutos sur l’usage de l’Arduino dans le cadre de la SPC.
Présentation de l’Arduino Uno
Arduino est la marque d'une plateforme de prototypage open-source, basée sur une interface entrée/sortie simple, qui permet aux utilisateurs de créer des objets électroniques interactifs à partir de cartes électroniques matériellement libres sur lesquelles se trouve un microcontrôleur.
Le microcontrôleur peut être programmé pour analyser et produire des signaux électriques, de manière à effectuer des tâches très diverses comme la domotique (éclairage, chauffage…), le pilotage d'un robot, de l'informatique embarquée, etc.

A : Broches d’entrée/sortie numériques 1 ou 0 ; elles offrent en sortie du 0 ou du 5 V et acceptent en entrée du 0 ou du 5 V sur le même principe.
B : Broches d’entrées analogiques, valeur entre 0 V et 5 V
C : Broches d’alimentation
La connectique Groove
Grove est un système de connectique adapté à l’Arduino. Son rôle est de rendre les connexions plus faciles à réaliser.
Il y a d’abord une plaque appelée Base Shield fixée sur l’Arduino.

Cette plaque est pourvue de connecteurs standardisés permettant de brancher facilement des périphériques à l’Arduino

En rouge, les entrées/sorties digitales.
En jaune, les entrées analogiques
En vert, les ports I2C permettant le transfert de données (on ne s’en servira pas, les données seront transférées à l’ordinateur par le câble USB).
Programmer l’Arduino
Pour pouvoir faire quelque chose avec un Arduino, il faut le programmer.
Cette programmation se fait dans un environnement de programmation spécifique que vous pouvez télécharger sur cette page.
Un programme d’Arduino présente toujours la structure ci-dessous.
void setup() {
// code à exécuter une seule fois au démarrage
}
void loop() {
// code principal à exécuter en boucle
}
1er programme : contrôle de la LED interne
L’Arduino UNO est pourvu d’une petite diode orange associé au port digital n°13.
Nous allons écrire un programme qui permet de faire clignoter cette LED.
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
Quelques explications
Ligne 2 : on déclare le port (pin) n°13 en mode sortie. Ceci fait partie de la phase d’initialisation (setup). On le fait une fois pour toute et c’est fini, jusqu’à exctinction (ou au reset) de l’Arduino.
Ligne 5 : à partir d’ici, on écrit la boucle qui sera répétée par l’Arduino jusqu’à son extinction ou sa remise à zéro.
Ligne 6 : digitalWrite
est le nom de la fonction qui sert à envoyer une valeur à un port digital. Il ne peut y avoir que deux valeurs : HIGH
(+5 V) et LOW
(0 V).Cette ligne sert donc à faire passer le potentiel de la borne 13 à 5 V (par rapport aux bornes GND de l’Arduino, qui sont toutes au potentiel 0).
Ligne 7 : on fait faire une pause de 500 ms dans le déroulement du programme.
Je vous laisse deviner ce que signifient les deux lignes suivantes 😊
Activité
- Connectez l’Arduino au PC ouvrez l’environnement de développement.
- Copiez ce programme dans l’environnement de développement Arduino.
- Sauvez ce programme sur le bureau du PC, vérifiez l’absence d’erreur et up-loader le programme dans l’Arduino
- Vérifiez son bon fonctionnement.
- Modifiez ce programme pour que la LED clignote deux fois brièvement et rapidement, puis fasse une pause de 1 seconde.


Je vous le concède, l’intérêt de ce programme est très limité… 😊
Sa seule utilité est de vous faire saisir les bases de la programmation d’un Arduino dans un cas très simple.
2e programme : utiliser un capteur
L’intérêt d’un Arduino est qu’il puisse « réagir » à son environnement ou à une commande extérieur.
Dans cette deuxième partie, nous allons programmer l’Arduino pour qu’il mesure le niveau de lumière capter par un senseur : le Light Sensor.
Sachez tout d’abord que les capteurs Grove sont décrits sur ce site. Leur description comprend un code de base qui permet de les faire marcher (et qu’on va adapter à nos besoins).
void setup()
{
// Initialisation communication, vitesse 9600 bauds (bit/s)
Serial.begin(9600);
}
void loop()
{
// la valeur donnée par le capteur (branché sur A0)
// est stockée dans la variable "value" (nbre entier)
int value = analogRead(A0);
// Cette valeur est envoyée sur le port de communication
Serial.println(value);
// Le programme se met en pause pendant 1 s
delay(1000);
}
Remarquez que, dans ce programme, j’ai mis des commentaires (précédés de //
). Un commentaire est une information que l’on met dans un code mais qui n’est pas interprétée. Ça permet, lorsque le code est assez long, d’ajouter des explications. Ils peuvent être effacés ou modifiés sans incidence sur le déroulement du programme.
Activité
- Brancher le capteur de lumière dans le port A0 (ou dans un autre port A… mais pensez alors à adapter le programme)
- Uploader le programme dans l’Arduino
- Afficher les valeurs lues par l’Arduino
1. Quelles valeurs correspondent à une exposition à la lumière ambiante ?
2. Quelles sont les valeurs mesurées lorsque vous recouvrez le capteur avec votre main ?
Et voilà ! Vous savez maintenant utiliser un capteur sur l’Arduino 😊
3e programme : faire réagir l’Arduino à son environnement
Faire une mesure, c’est bien, mais faire réagir l’Arduino en fonction de cette mesure, c’est mieux !
Je vous propose dans cette partie de faire réagir l’Arduino à la lumière ambiante. Celui-ci va allumer sa LED interne s’il est plongé dans l’obscurité.
Voici le code… à compléter 😊
void setup()
{
// Pas besoin de communiquer les mesures
pinMode(13, OUTPUT);
}
void loop()
{
int value = analogRead(A0);
if(value < ___){
// À compléter
}
else {
// À compléter
}
delay(500);
}
Activité
- Compléter le programme et l’uploader dans l’Arduino
- Brancher le capteur de lumière si ce n’est pas encore fait
- Vérifier son bon fonctionnement
- Modifier le code pour le rendre plus sensible à la baisse de luminosité (la LED devra s’allumer si la lumière baisse « un peu »)
Vous avez maintenant toutes les bases. On peut passer aux choses sérieuses… 😊
Apprenez à être autonome
Il est l’heure pour vous d’apprendre à être autonome. 😎
Réalisation d’un avertisseur de température excessive
La boîte dont vous disposez contient un capteur de température et un buzzer. En vous aidant du site décrivant les capteurs Grove (voir liste de sites utiles en début de page), vous allez réalisez un montage qui émet deux bips brefs lorsque vous touchez le capteur de température.
Remarque : vous devez d’abord déterminer quelle est la température mesurée lorsque vous toucher le capteur de température.
Activité notée : mesure de distance
L’objectif de cette activité est d’estimer la précision de la mesure de distance du capteur Ultrasonic ranger
Étapes
- Suivre les instructions du site Seeedstudio (dont le lien est en haut de la page) pour obtenir des mesures de distance grâce au capteur. Appelez-moi si vous avez des difficultés à installer la librairie associée à l’Ultrasonic ranger.
- Modifier le code de manière à ce que seule la distance en cm s’affiche dans le moniteur série.
- Tracer un graphique montrant la distance mesurée en fonction de la distance réelle, sur des distances variant entre 20 cm et 100 cm (5 ou 6 mesures bien réparties suffisent). Faites des mesures de distance entre le capteur et un grand obstacle, l’environnement alentour doit être bien dégagé (donc orientez le capteur vers le mur, par exemple).
- Estimer la précision de la mesure de distance (± combien de cm ?)