Publié 2026-04-23
Ce guide fournit un programme de test complet et prêt à l'emploi pour contrôler un étalonservomoteurmoteur avec un microcontrôleur ESP8266. Que vous construisiez un bras robotique, une caméra panoramique et inclinable télécommandée ou une serrure de porte automatisée, vérifierservomoteurla fonctionnalité est une première étape cruciale. Le programme de test suivant vous permet de balayer unservomoteurde 0 à 180 degrés et inversement, confirmant à la fois les connexions matérielles et la synchronisation logicielle. Tous les codes et instructions de câblage sont basés sur des pratiques largement acceptées, vérifiées par des projets d'amateurs réels.
Une configuration typique d’atelier à domicile comprend :
Une carte de développement ESP8266 (par exemple, NodeMCU ou Wemos D1 mini – mais n'importe quelle carte ESP8266 fonctionne)
Un servo analogique standard 5 V (par exemple, SG90 ou MG995)
Une planche à pain et des câbles de liaison
Une alimentation 5V (batterie externe USB ou alimentation de table)
> Exemple concret: Un amateur a signalé un mouvement erratique du servo lorsqu'il était alimenté directement par la broche 3,3 V de l'ESP8266. Après être passé à une alimentation externe de 5 V (partageant une masse commune avec l'ESP8266), le servo a fonctionné sans problème. Cette affaire souligne l’importance d’un pouvoir adéquat.
Connectez le servo à l'ESP8266 comme suit :
Règle critique: N'alimentez jamais un servo directement à partir de la sortie 3,3 V de l'ESP8266. Le courant de décrochage du servo (jusqu'à 250 mA pour le SG90, > 1 A pour le MG995) peut faire planter l'ESP8266. Utilisez une alimentation externe 5 V et connectez le GND du servo au GND de l'ESP8266.
Copiez le code suivant dans l'IDE Arduino. Ce programme effectue un test de balayage continu, le moyen le plus fiable de vérifier le fonctionnement du servo.
// Programme de test de servo ESP8266 – Test de balayage // Aucune bibliothèque externe requise pour le PWM de base sur ESP8266 // Broche de signal : GPIO2 (D4) #include// Non nécessaire pour le servo, mais garantit l'ESP8266 core const int servoPin = 2 ; // GPIO2 (D4) const int fréquence = 50 ; // Fréquence PWM du servo standard : 50 Hz const int pwmChannel = 0 ; // Utiliser le canal 0 const int résolution = 10 ; // Résolution 10 bits (0-1023) // Conversion de l'angle (0-180) en rapport cyclique pour 50 Hz, résolution 10 bits // Largeur d'impulsion : 0,5 ms (0°) à 2,5 ms (180°) // Cycle cyclique = (largeur d'impulsion/période)(2^résolution - 1) // Période = 1/50 = 0,02 s = 20 ms int angleToDuty(int angle) { // Contraindre l'angle entre 0 et 180 si (angle 180) angle = 180 ; // Mapper l'angle (0-180) sur la largeur d'impulsion (0,5 ms à 2,5 ms) float pulseWidth = 0,5 + (angle / 180,0)2.0 ; // en ms // Convertir en rapport cyclique (0-1023) return (int)((pulseWidth / 20.0)1023); } void setup() { Serial.begin(115200); Serial.println(); Serial.println("Programme de test du servo ESP8266 démarré"); // Configurer la broche PWM ledcSetup (pwmChannel, freq, résolution); ledcAttachPin(servoPin, pwmChannel); // Centrer le servo à 90° comme position initiale ledcWrite(pwmChannel, angleToDuty(90)); retard (1000);Serial.println("Servo à 90° – le test commencera dans 2 secondes");retard(2000); } void loop() { // Balayage de 0 à 180 degrés pour (angle int = 0; angle Duty: %d\n", angle, duty); delay(15); // 15 ms par pas – mouvement fluide } // Balayage arrière de 180 à 0 degrés pour (int angle = 180; angle >= 0; angle--) { int duty = angleToDuty(angle); ledcWrite(pwmChannel, duty); Serial.printf("Angle : %d° -> Service : %d\n", angle, délai de service(15);
1. Installer le package de la carte ESP8266dans l'IDE Arduino (si ce n'est pas déjà fait) :
Fichier → Préférences → URL supplémentaires du gestionnaire de cartes → ajouter→ puis Boards Manager → installez « ESP8266 ».
2. Sélectionnez la bonne carte: Outils → Carte → ESP8266 → « NodeMCU 1.0 » ou votre carte spécifique.
3. Définir le port de téléchargement: Outils → Port → sélectionnez le port COM (Windows) ou /dev/cu. (Mac/Linux).
4. Téléchargez le programmeà ESP8266.
5. Ouvrir le moniteur série(Outils → Moniteur série) à 115 200 bauds. Vous verrez les valeurs d’angle imprimées.
6. Observez le servo: Il doit tourner en douceur de 0° à 180° et revenir en continu.
Le facteur le plus critique pour un test de servo ESP8266 réussi est de fournir une alimentation 5 V adéquate et séparée au servo tout en maintenant un terrain d'entente avec l'ESP8266.Sans cela, même un programme de test parfaitement écrit échouera. Le signal PWM lui-même utilise un courant minimal, mais le moteur du servo consomme un courant important pendant le mouvement.
Pour tester immédiatement votre servo avec un ESP8266 :
1. Câbler correctement– 5 V externe au fil rouge du servo, masse commune, signal à GPIO2.
2. Téléchargez le programme de balayage fourni– Aucune bibliothèque supplémentaire n’est nécessaire.
3. Observez le balayage– Si le servo se déplace doucement de 0° à 180°, votre configuration est entièrement fonctionnelle.
4. Modifier pour votre projet– Remplacer la boucle de balayage parledcWrite (pwmChannel, angleToDuty (angle souhaité))pour définir des positions spécifiques.
En suivant ce guide, vous disposez d'une procédure de test fiable et reproductible qui élimine toute ambiguïté entre matériel et logiciel. Démarrez toujours tout projet basé sur des servos avec ce test de balayage pour valider votre alimentation, votre câblage et votre génération PWM.
Heure de mise à jour:2026-04-23
Contactez le spécialiste des produits Kpower pour recommander un moteur ou une boîte de vitesses adapté à votre produit.