Contrôler un servomoteur avec un potentiomètre à l'aide d'un Arduino
Dans ce tutoriel, nous allons apprendre à contrôler un servomoteur à l'aide d'un potentiomètre avec un Arduino. Le potentiomètre nous permet d'ajuster l'angle du servo en douceur, nous offrant un contrôle en temps réel de sa position. À la fin de ce projet, vous disposerez d'un montage fonctionnel qui affiche la valeur du potentiomètre et l'angle correspondant du servo.

Lorsque le potentiomètre est tourné, l’angle du servomoteur change de 0 à 180 degrés. Nous utiliserons l'entrée analogique de l'Arduino pour lire la valeur du potentiomètre puis mapper cette valeur sur la plage du servo à l'aide d'une formule simple. Ce projet est un excellent moyen de comprendre comment fonctionnent les entrées analogiques et comment contrôler des moteurs avec elles (dans la vidéo à 01:45).
Le matériel expliqué
Pour ce projet, nous avons besoin d'une carte Arduino, d'un servomoteur et d'un potentiomètre. Le potentiomètre fait office de résistance variable, fournissant une tension de sortie correspondant à sa position. Cette sortie est lue par l'entrée analogique de l'Arduino, ce qui nous permet de déterminer de combien faire tourner le servomoteur.
Le servomoteur est un type de moteur qui peut être positionné à un angle spécifique. Il reçoit un signal de commande qui lui indique la position souhaitée. Le servomoteur tournera jusqu'à cet angle en fonction de l'entrée qu'il reçoit de l'Arduino, ce qui le rend utile pour diverses applications telles que la robotique et les appareils télécommandés.
Détails de la fiche technique
| Fabricant | Divers |
|---|---|
| Numéro de pièce | Servomoteur standard |
| Tension logique / E/S | 5 V |
| Tension d'alimentation | 4.8 - 6 V |
| Courant de sortie (par canal) | Jusqu'à 1 A |
| Courant de crête (par canal) | Jusqu'à 2 A |
| Directives sur la fréquence MLI | 50 Hz |
| Seuils logiques d'entrée | 0.8 V (faible) / 2.0 V (élevé) |
| Chute de tension / RDS(on) / saturation | 0,5 V |
| Limites thermiques | 85 °C |
| Paquet | Taille standard |
| Notes / variantes | Disponible en différentes tailles et valeurs de couple |
- Assurez-vous que l'alimentation est dans les limites (4.8 - 6 V).
- Utilisez une valeur de résistance adaptée pour le potentiomètre (10 kΩ recommandée).
- Vérifiez la polarité des connexions pour éviter un fonctionnement inversé.
- Faites attention à la chaleur ; assurez-vous que le servo n'est pas surchargé.
- Gardez le câblage court pour réduire les interférences.
- Utilisez des condensateurs de découplage aux bornes d'alimentation si nécessaire.
- Vérifiez que le potentiomètre est correctement connecté à la broche analogique A0.
Instructions de câblage

Pour câbler les composants, connectez d'abord le potentiomètre. La broche centrale du potentiomètre doit être connectée à la broche analogique.A0Sur l'Arduino. La broche gauche doit être connectée à la broche 5V de l'Arduino, et la broche droite doit être connectée à la masse (GND).
Ensuite, branchez le servomoteur. Le fil de masse (généralement noir ou marron) du servomoteur doit être connecté au GND de l'Arduino. Le fil d'alimentation (généralement rouge) doit être connecté à la broche 5V de l'Arduino. Enfin, le fil de commande (souvent jaune ou blanc) doit être connecté à la broche numérique9sur l'Arduino. Cette configuration permettra à l'Arduino de contrôler le servomoteur en fonction de la position du potentiomètre.

Exemples de code et guide pas à pas
Jetons un coup d'œil aux parties clés du code. Tout d'abord, nous incluons la bibliothèque Servo et créons un objet servo :
#include
Servo myservo; // create servo object to control a servo
Ce code initialise le servomoteur et le prépare au contrôle. L'étape suivante consiste à lire la valeur du potentiomètre :
int val = analogRead(potpin); // reads the value of the potentiometer
Ici, la valeur lue du potentiomètre est stockée dans la variableval. La valeur sera comprise entre 0 et 1023, correspondant à la position du potentiomètre. Nous convertissons ensuite cette valeur pour l'adapter à la plage du servomoteur :
val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo
Cette ligne convertit la valeur du potentiomètre en une plage adaptée au servomoteur. Enfin, nous réglons le servomoteur sur la position calculée :
myservo.write(val); // sets the servo position according to the scaled value
Cette commande indique au servomoteur de se déplacer à l'angle spécifié en fonction de la position du potentiomètre. Le code complet est disponible ci-dessous, sous l'article.
Démonstration / À quoi s'attendre
Lorsque vous exécutez le programme, tourner le potentiomètre ajustera l'angle du servomoteur en douceur. Vous devriez voir les valeurs d'angle s'afficher dans le moniteur série pendant que vous tournez le bouton. Si le servomoteur se comporte de façon inattendue, vérifiez votre câblage, en particulier les connexions au potentiomètre et au servomoteur (dans la vidéo à 04:30).
Le servomoteur doit répondre immédiatement aux changements de position du potentiomètre. Si vous remarquez un retard ou des à‑coups, envisagez de réduire le délai dans le code pour améliorer la réactivité.
Ce dont vous pourriez avoir besoin
-
AmazonServo motor on Amazonamzn.to
-
AliExpressPurchase SG90 Servo motor 180 or 360 from AliExpresss.click.aliexpress.com
Ressources et références
-
ExterneSG90 servosamzn.to
Fichiers📁
Aucun fichier disponible.