Montages avancés
Les capteurs
Ils recueillent des informations sur l’environnement (température, lumière, bruit, distance d’un obstacle...) et les transmettent sous forme de données exploitables par l’Arduino.
1. Capteur de luminosité (photorésistance)
Il s’agit d’un composant électronique dont la résistance change en fonction de la lumière ambiante. Du point de vue de l’Arduino, ce type de capteur peut être considéré comme un potentiomètre dont on tournerait automatiquement le bouton en fonction de la lumière ambiante.

Capteurs lumineux
. Vous pouvez aussi choisir une valeur différente
(ou même utiliser un potentiomètre), car la valeur
de la résistance influe directement sur la sensibilité de
la photorésistance. Plus elle est élevée
et plus la photorésistance sera sensible, ce qui est très
intéressant lorsque la luminosité est faible.
Au contraire, si la valeur de la résistance est plus faible,
la photorésistance sera moins sensible et donc plus adaptée à un
environnement très lumineux. Par exemple, pour une utilisation
en extérieur, choisissez plutôt une résistance
de 1 k
.

Comme toute valeur analogique, la luminosité peut être récupérée avec l’instruction analogRead. Par défaut, cette valeur est comprise entre 0 et 1 023 (mais il est possible d’augmenter la résolution). Elle peut être affectée à une variable ou utilisée directement. Le sketch suivant se contente d’afficher la valeur récupérée dans le moniteur série.
// Photorésistance
const int PHOTORESISTANCE = A0;
void setup() {
pinMode(PHOTORESISTANCE, INPUT);
Serial.begin(9600);
}
void loop() {
Serial.println(analogRead(PHOTORESISTANCE));
delay(200);
}
La photorésistance est un composant peu coûteux, mais elle n’est pas extrêmement précise. Vous pouvez compter...
Le relais
Il permet de contrôler des appareils fonctionnant à une tension beaucoup plus élevée, car le circuit de commande (l’Arduino) et le circuit de puissance (l’appareil à contrôler) sont complètement isolés. Le relais fonctionne comme un bouton-poussoir actionné par un électroaimant. Il peut donc piloter un appareil utilisant un courant alternatif ou continu.
Mais l’Arduino ne peut pas actionner directement le relais. Il faut ajouter un transistor pour le protéger. Ce circuit n’est pas très compliqué à réaliser soi-même, mais les modules regroupant un à huit relais, sont souvent moins chers et plus simples à utiliser.
Choisissez de préférence un module utilisant un circuit de commande de 5 V et un circuit de puissance jusqu’à 250 V.
Attention, des tensions supérieures à 24 V peuvent être dangereuses. Pour travailler sur de tels circuits, vous devez absolument posséder les compétences nécessaires en électricité. N’hésitez pas à vous faire assister d’un ami ou demander des conseils sur Internet. Et n’oubliez pas les règles de sécurité élémentaires. Par exemple, utilisez toujours un boîtier fermé pour isoler le circuit sous 230 V (ne l’ouvrez jamais lorsqu’il est sous tension).

Utilisation du relais en toute sécurité
1. Contrôle de deux ampoules
Le module relais peut être alimenté par la borne 5 V de l’Arduino, mais il est également possible d’utiliser une autre source (5 V). Dans ce cas, retirez le cavalier reliant les bornes VCC, puis branchez-le (+) de l’autre alimentation à la borne JD-VCC et le (-) à la borne GND.
Le branchement des autres bornes est assez logique. Branchez les bornes...
Les moteurs
1. Le moteur à courant continu
C’est un moteur très courant, vous pouvez facilement en trouver dans de nombreux appareils hors d’usage (jouets, brosse à dent électrique...). Son utilisation est assez simple puisqu’il y a seulement deux fils. En branchant le (+) à une borne et le (-) à l’autre, le moteur tourne dans un sens. Si vous inversez les deux bornes, il tournera dans l’autre sens. Et si vous baissez la tension de l’alimentation, il tournera moins vite.
Attention : l’alimentation ne doit jamais dépasser la tension maximum du moteur.
Cependant, vous ne pouvez pas connecter directement un moteur à une sortie de l’Arduino. Les moteurs nécessitent trop de puissance et ils génèrent des courants parasites qui risqueraient d’endommager le microcontrôleur.
a. Utilisation d’un transistor
environ.Il serait possible d’utiliser une sortie numérique, mais dans ce cas, impossible de faire varier la vitesse du moteur, puisqu’il n’y a que deux possibilités :
-
soit le moteur est à l’arrêt (LOW),
-
soit il fonctionne à la vitesse maximum (HIGH).
Nous utiliserons donc plutôt une sortie analogique (PWM) de l’Arduino Uno (3, 5, 6, 9, 10 ou 11).
Si vous n’avez qu’un petit moteur de 5 V à alimenter, vous pouvez utiliser ce branchement. La sortie 5 V de l’Arduino est tout à fait capable d’alimenter votre moteur.

Branchement d’un moteur avec un transistor
En revanche, pour alimenter un moteur plus puissant (ou d’une tension différente de 5 V), il vous faudra utiliser le branchement ci-dessous avec une alimentation externe.
La borne (-) de l’alimentation externe est reliée à la borne GND de l’Arduino (masses communes) mais la borne (+) qui est d’une tension différente ne doit surtout pas être en contact avec une des bornes de l’Arduino (5 V ou entrées/sorties)....
L’afficheur LCD
L’écran à cristaux liquides ou LCD (Liquid Crystal Display) est souvent utilisé sur les appareils portables, car il consomme beaucoup moins d’énergie. Il permet de rendre l’Arduino autonome en affichant les données recueillies par des capteurs (température, humidité...) sans recourir au moniteur série de l’ordinateur.
L’afficheur alphanumérique est un tableau. Ses cases contiennent huit lignes de cinq pixels et chaque case est séparée par un espace d’un pixel. Il en existe de plus grands, mais le plus courant possède deux lignes de seize cases.
1. Connexion parallèle
L’afficheur utilise une connexion parallèle, c’est-à-dire que les bits de données sont envoyés en même temps, mais en passant par des fils différents. Ce type de connexion (surtout utilisé au XXe siècle) permettait d’augmenter la vitesse de transfert des données en multipliant le nombre de fils.
Au-delà des considérations historiques, il n’est pas conseillé d’acheter cette version parce qu’elle nécessite énormément de fils, alors qu’il existe des alternatives beaucoup plus faciles à utiliser.

L’afficheur LCD (connexion parallèle)
Il existe deux types de connexions parallèles pour l’afficheur alphanumérique : celle envoyant quatre bits à la fois, et celle envoyant huit bits (nécessitant respectivement quatre ou huit fils de données). Bien sûr, la connexion à quatre bits est deux fois moins rapide que celle à huit bits, mais pour l’être humain, la différence n’est pas perceptible.
Les ports de l’afficheur alphanumérique sont repérés par leur nom.
|
N° |
Port |
Rôle et connexion |
|
1 |
VSS |
Masse (GND) |
|
2 |
VDD |
Alimentation (5 V) |
|
3 |
V0 |
Réglage du contraste (relié au potentiomètre) |
|
4 |
RS |
Sélection du registre, mode commande ou donnée (relié à l’Arduino) |
|
5 |
RW |
Mode lecture ou écriture (GND pour écriture) |
|
6 |
E |
Enable, validation (relié à l’Arduino) |
|
7 à 14 |
D0 à D7 |
Données en 8 bits (D0 à D7) ou données en en 4 bits (D4 à D7), les ports inutilisés sont... |
Horloge (RTC)
L’Arduino Uno R4 (Minima ou Wi-Fi) intègre une horloge en temps réel ou RTC (Real-Time Clock). Il suffit d’indiquer la date et l’heure dans le programme pour que l’Arduino soit ensuite capable de décompter le temps qui passe.
1. Test de l’horloge
La procédure ci-dessous explique comment faire pour afficher la date et l’heure sur le moniteur série.
Appel de la bibliothèque RTC (au début du programme) :
#include "RTC.h"
Création d’un objet appelé « heure » pour stocker la date et l’heure (vous pouvez choisir un autre nom mais bien sûr, il faudra en tenir compte dans la suite du programme) ;
RTCTime heure;
Dans la fonction setup, il faut ensuite initialiser l’horloge :
RTC.begin();
Indiquer la date et l’heure de départ :
RTCTime startTime(30, Month::MARCH, 2025, 18, 37, 00, DayOfWeek::SUNDAY, SaveLight::SAVING_TIME_ACTIVE);
Démarrer le décompte de l’horloge :
RTC.setTime(startTime);
Nous pouvons maintenant utiliser l’heure dans la fonction loop.
Récupération de l’heure actuelle à partir du RTC :
TC.getTime(heure);
Affichage de la date dans le moniteur série (JJ/MM/AAAA) :
Serial.print(heure.getDayOfMonth());
Serial.print("/");
Serial.print(Month2int(heure.getMonth()));
Serial.print("/");
Serial.print(heure.getYear());
Serial.print(" - ");
Affichage de l’heure (HH:MM:SS) :
Serial.print(heure.getHour());
Serial.print(":");
Serial.print(heure.getMinutes());
Serial.print(":");
Serial.println(heure.getSeconds());
Voilà le programme complet :
// Horloge_RTC
// Appel de la bibliothèque
#include "RTC.h"
// Création...Port VRTC
Avec l’Arduino Uno R4 Wi-Fi, il est possible de conserver la date et l’heure de l’horloge en temps réel (même s’il est éteint). Il suffit de brancher une pile ou une batterie de 1,6 à 3,3 V aux ports VRTC et GND.

Branchement d’une batterie sur le port VRTC
L’Arduino UNO Minima bénéficie aussi des fonctions RTC. Malheureusement, il ne possède pas de port VRTC, il ne peut donc pas conserver l’heure lorsqu’il est éteint.
Pin OFF
La broche OFF désactive le convertisseur de tension 5 V qui assure l’alimentation de l’Arduino UNO R4 Wi-Fi depuis la broche VIN ou la prise jack.
Pour cela, il suffit de la relier à la masse (broche GND). Vous pouvez par exemple utiliser un interrupteur pour allumer ou éteindre l’Arduino. Cependant, cela ne fonctionne pas avec l’alimentation par USB de l’Arduino.

Branchement d’un interrupteur sur la broche OFF
Les cartes Arduino UNO R3 et R4 Minima ne possèdent pas de broche OFF.
Périphérique USB (HID)
Comme l’Arduino Leonardo et quelques autres (Zero, Due, MKR...), l’Arduino Uno R4 peut être reconnu par l’ordinateur comme un périphérique USB. Vous pouvez donc l’utiliser pour fabriquer un clavier, une manette de jeu, une souris, un dispositif de pointage, etc.
1. Émulation d’une souris
Dans cet exemple, l’Arduino empêche l’ordinateur de se mettre en veille en bougeant automatiquement la souris toutes les cinq minutes. Vous pouvez également l’utiliser pour faire une petite blague à un ami, puisqu’à intervalle régulier, la souris deviendra « folle ».
Par mesure de sécurité, la souris ne bouge pas avant dix secondes. En cas d’erreur dans le programme, cela permet de reprogrammer quand même l’Arduino (sans être gêné par les mouvements incontrôlés de la souris).
Appelez la bibliothèque Mouse au début du programme (inutile de l’installer, elle est déjà présente dans l’IDE Arduino).
#include <Mouse.h>
Démarrez l’émulation de la souris dans la fonction setup.
Mouse.begin();
Déplacement du curseur sur l’axe X et l’axe Y en partant de sa position actuelle. La valeur peut être positive ou négative.
Mouse.move(10,-15);
Plutôt que d’utiliser des valeurs fixes, le programme utilise la fonction random pour obtenir un nombre aléatoire compris entre -10 et 10.
int axeX = random(-10, 10);
int axeY = random(-10, 10);
Téléversez le code suivant dans l’Arduino et laissez-le branché à l’ordinateur (n’hésitez pas à adapter le délai entre les mouvements de la souris à vos besoins).
// Émulation_Souris
// Appel de la bibliothèque...Connecteur QWIIC
L’Arduino Uno R4 Wi-Fi possède un connecteur QWIIC (similaire au connecteur Grove). Il est conçu pour connecter des modules compatibles (Modulinos) au bus I2C secondaire de l’Arduino. En général, les modules possèdent deux ports QWIIC pour pouvoir les chaîner (l’utilisation des modulinos est détaillée un peu plus loin dans ce chapitre).

Le connecteur QWIIC
En théorie, rien n’empêche de bricoler un adaptateur pour utiliser d’autres modules I2C, mais le module doit accepter une alimentation de 3,3 V et la bibliothèque doit permettre l’utilisation du bus I2C secondaire (c’est-à-dire Wire1 au lieu de Wire).
Wi-Fi
L’Arduino Uno R4 Wi-Fi est capable de se connecter à un réseau existant ou de créer un point d’accès. Pour tester cela, nous allons fabriquer un thermomètre connecté avec le capteur DHT22. En adaptant légèrement le code, vous pourrez facilement le remplacer par un autre capteur de température.
Si ce n’est pas déjà fait, installez la bibliothèque DHT. La procédure est décrite dans ce chapitre (cf. section Les capteurs DHT11 et DHT22).
Reliez ensuite le capteur DHT22 (ou DHT11) à l’Arduino. Il existe d’autres types de modules, par conséquent les connecteurs ne seront peut-être pas dans le même ordre. Fiez-vous plutôt à la documentation ou aux inscriptions et retenez simplement qu’il faut relier le port de données au port n°2 et l’alimentation du module aux bornes GND et 5 V de l’Arduino. Comme d’habitude, rien ne vous empêche d’utiliser un autre port mais il faudra en tenir compte dans le programme.

Adaptez les lignes suivantes à votre réseau Wi-Fi :
const char NOM_DU_RESEAU[] = "ARDUIBLOG";
const char MOT_DE_PASSE[] = "Azerty123";
Et téléversez le code dans l’Arduino.
// Température_WiFi
// Appel des bibliothèques
#include "WiFiS3.h"
#include <DHT.h>
#include "Arduino_LED_Matrix.h"
// Constantes et variables
const int CAPTEUR_TEMP = 2;
int t, h;
// Sélectionnez votre capteur
//DHT dht(CAPTEUR_TEMP, DHT11);
DHT dht(CAPTEUR_TEMP, DHT22);
// Paramètres du réseau Wi-Fi
const char NOM_DU_RESEAU[] = "ARDUIBLOG";
const char MOT_DE_PASSE[] = "Azerty123";
// Création de l'objet...Modulinos
Vous pouvez acheter chaque module séparément ou vous procurer le Kit Plug and Make Arduino. Il regroupe sept modules (appelés Modulinos), un Arduino Uno R4 Wi-Fi ainsi qu’une carte en plastique rigide, des vis et des écrous (qui peuvent, par exemple, être utilisés en milieu scolaire pour faire une présentation).

Kit Plug and Make Arduino
Voici la liste des modulinos (contenus dans le kit Plug and Make) :
-
boutons (trois boutons-poussoirs),
-
buzzer,
-
pixels (huit LED),
-
encodeur rotatif,
-
mouvement (IMU, unité de mesure inertielle),
-
thermo (capteur de température et d’humidité),
-
distance (capteur de proximité).
Le branchement est très facile, il suffit de relier le premier modulino au connecteur QWIIC de l’Arduino. Comme les modulinos possèdent deux connecteurs QWIIC, il en reste toujours un de disponible pour ajouter un autre modulino. Il n’y a pas d’ordre à respecter et bien sûr vous n’êtes pas obligé de les utiliser tous en même temps.
Les modulinos sont tous reliés au bus I2C secondaire de l’Arduino Uno R4 mais ils disposent chacun d’une adresse unique qui permet de les identifier. Il est donc impossible d’utiliser deux modulinos identiques en même temps (par exemple deux modules de trois boutons) puisqu’ils possèdent la même adresse.
Il semble qu’il existe quand même une solution logicielle pour changer l’adresse d’un module mais elle s’adresse plutôt aux utilisateurs expérimentés.
1. La bibliothèque Modulino
Elle permet la communication entre l’Arduino et les modulinos.
Pour l’installer, sélectionnez le gestionnaire de bibliothèques en cliquant sur l’icône représentant des livres dans la barre latérale (ou en allant dans Croquis - Inclure une bibliothèque - Gérer les bibliothèques).
Tapez « modulino » dans la barre de recherche, sélectionnez la bibliothèque et cliquez sur Installer.

Installation de la bibliothèque Modulino
Si l’IDE Arduino vous propose d’installer aussi les dépendances (des bibliothèques secondaires indispensables au fonctionnement de la bibliothèque principale), acceptez en cliquant sur TOUT INSTALLER.

Installation...