découvrir et comprendre l'utilisation des servomoteurs, de la fonction de mise à l'échelle (map()) et des bibliothèques intégrées sur Arduino.
Les servomoteurs sont un type particulier de moteur qui ne tournent pas en cercle complet, mais se déplacent vers une position spécifique et y restent jusqu'à ce que vous leur demandiez de bouger à nouveau. Les servomoteurs ne pivotent généralement que de 180 degrés (la moitié d'un cercle). En combinant l'un de ces moteurs avec un petit bricolage en carton, vous pourrez faire savoir aux gens s'ils doivent venir vous demander de l'aide pour leur prochain projet ou non.
De la même manière que vous avez utilisé des impulsions pour appliquer une modulation PWM à une LED dans le projet de la lampe de mélange des couleurs, les servomoteurs s'attendent à recevoir un certain nombre d'impulsions qui leur indiquent l'angle à atteindre. Les impulsions arrivent toujours à des intervalles de temps réguliers, mais leur largeur varie entre 1 000 et 2 000 microsecondes. Bien qu'il soit possible d'écrire du code pour générer ces impulsions, le logiciel Arduino comprend une bibliothèque qui vous permet de contrôler facilement le moteur. Étant donné que le servomoteur ne tourne que de 180 degrés et que votre entrée analogique va de 0 à 1023, vous devrez utiliser une fonction appelée map() pour modifier l'échelle des valeurs provenant du potentiomètre.
L'un des grands avantages de la communauté Arduino réside dans les personnes talentueuses qui étendent ses fonctionnalités grâce à des logiciels supplémentaires. N'importe qui peut écrire des bibliothèques pour étendre les fonctionnalités d'Arduino. Il existe des bibliothèques pour une grande variété de capteurs, d'actionneurs et d'autres appareils que les utilisateurs ont partagés avec la communauté. Une bibliothèque logicielle étend les fonctionnalités d'un environnement de programmation. Le logiciel Arduino est fourni avec un certain nombre de bibliothèques utiles pour travailler avec du matériel ou des données. L'une des bibliothèques incluses est conçue spécifiquement pour être utilisée avec les servomoteurs. Dans votre code, vous importerez la bibliothèque, et toutes ses fonctionnalités seront à votre disposition.
Schéma électrique de circuit:
Pour utiliser la bibliothèque Servo, vous devez d'abord l'importer. Cela rend les fonctionnalités de la bibliothèque disponibles pour votre croquis (sketch). Pour faire référence au servomoteur, vous devez créer une instance nommée de la bibliothèque Servo dans une variable. C'est ce qu'on appelle un objet. De cette façon, vous créez un nom unique qui disposera de toutes les fonctions et capacités offertes par la bibliothèque Servo. À partir de ce moment dans le programme, chaque fois que vous ferez référence à myServo, vous vous adresserez à l'objet servomoteur.
Définissez une constante nommée pour la broche à laquelle le potentiomètre est connecté, ainsi que des variables pour stocker la valeur de l'entrée analogique et l'angle vers lequel vous souhaitez déplacer le servomoteur.
Dans la fonction setup(), vous devez indiquer à l'Arduino sur quelle broche votre servomoteur est branché. Ajoutez une connexion série pour pouvoir vérifier les valeurs provenant du potentiomètre et voir comment elles correspondent aux angles sur le servomoteur.
Dans la fonction loop(), lisez l'entrée analogique et affichez la valeur dans le moniteur série. Pour obtenir une valeur exploitable par le servomoteur à partir de votre entrée analogique, le plus simple est d'utiliser la fonction map(). Cette fonction pratique met à l'échelle les nombres pour vous. Dans ce cas, elle convertira des valeurs comprises entre 0 et 1023 en des valeurs comprises entre 0 et 179. Elle prend cinq arguments : le nombre à mettre à l'échelle (ici potVal), la valeur minimale de l'entrée (0), la valeur maximale de l'entrée (1023), la valeur minimale de la sortie (0) et la valeur maximale de la sortie (179). Stockez cette nouvelle valeur dans la variable angle.
Ensuite, affichez la valeur mise à l'échelle dans le moniteur série.
Enfin, il est temps de faire bouger le servomoteur. La commande servo.write() déplace le moteur à l'angle que vous spécifiez. À la fin de la boucle loop(), ajoutez un délai (delay) pour laisser au servomoteur le temps d'atteindre sa nouvelle position."
#include <Servo.h>
Servo myServo;
int const potPin = A0;
int potVal; int angle;
void setup() {
myServo.attach(9);
Serial.begin(9600);
}
void loop() {
potVal = analogRead(potPin);
Serial.print(“potVal: “);
Serial.print(potVal);
angle = map(potVal, 0, 1023, 0, 179);
Serial.print(“, angle: “);
Serial.println(angle);
myServo.write(angle);
delay(15);
}
Une fois votre Arduino programmé et alimenté, ouvrez le moniteur série. Vous devriez voir un flux de valeurs similaire à celui-ci :
potVal : 1023, angle : 179
potVal : 1023, angle : 179
Lorsque vous tournez le potentiomètre, les chiffres doivent changer. Plus important encore, vous devriez voir votre servomoteur se déplacer vers une nouvelle position. Observez la relation entre la valeur de potVal et de l'angle dans le moniteur série, ainsi que la position du servomoteur. Vous devriez obtenir des résultats constants en tournant le potentiomètre.
Un des avantages d'utiliser des potentiomètres comme entrées analogiques est qu'ils fournissent une plage complète de valeurs entre 0 et 1023. Cela les rend très utiles pour tester des projets qui utilisent une entrée analogique.
cours sur les résistances variable:https://solutionmeca.blogspot.com/2025/12/les-resistances-variables.html
conclusion.
En réalisant ce montage, vous avez appris à combiner plusieurs concepts fondamentaux de l'électronique et de la programmation Arduino :
Lecture analogique et conversion : Vous avez capturé un signal analogique issu d'un potentiomètre (valeurs de 0 à 1023) et utilisé la fonction
map()pour le convertir en un angle précis (de 0° à 180°).Utilisation des bibliothèques (
Servo.h) : L'importation d'une bibliothèque simplifie grandement l'envoi de signaux de commande au servomoteur via la méthodeservo.write().Gestion de l'alimentation et sécurité : L'ajout de condensateurs de découplage de $100\,\mu\text{F}$ permet de stabiliser la tension et de protéger le circuit contre les chocs de courant provoqués par le moteur au démarrage.
En maîtrisant cette chaîne (Capteur \rightarrow Traitement/Mapping \rightarrow Actionneur), vous disposez désormais des bases nécessaires pour concevoir des systèmes interactifs plus avancés, comme des bras robotiques ou des systèmes de commande à distance.

