Publié 2026-04-14
Cet article fournit un guide complet et pratique pour concevoir unservomoteurcarte de contrôle basée sur un microcontrôleur 51. Il explique le schéma de base, les composants clés et les principes de connexion. À l'aide d'exemples courants du monde réel, il montre comment générer des signaux PWM précis pour contrôlerservomoteurposition. Toutes les informations suivent les fiches techniques officielles et les pratiques électroniques standard. L’objectif est de vous donner une référence vérifiée et prête à l’emploi pour construire votre propreservomoteurcarte de contrôle avec un 51 MCU.
La position d'un servomoteur est déterminée par la largeur d'un signal d'impulsion répété toutes les 20 ms (50 Hz). Largeurs d'impulsion typiques :
0,5 ms → 0° (ou un extrême)
1,5 ms → 90° (neutre)
2,5 ms → 180° (extrême opposé)
Le microcontrôleur 51 ne dispose pas de module PWM matériel dédié sur de nombreux modèles de base. Par conséquent, le PWM généré par logiciel à l’aide d’une interruption de minuterie est la méthode standard. Le schéma doit prendre en charge :
Une alimentation 5V stable pour le 51 MCU et le servo (les servos nécessitent souvent une alimentation séparée)
Une broche de signal du MCU à la ligne de commande du servo
Mise à la terre appropriée entre le MCU et le servo
Vous trouverez ci-dessous le schéma standard testé sur le terrain pour une carte de servocommande monocanal utilisant un 51 MCU.
MCU VCC (broche 40)→ +5V (depuis l'alimentation régulée)
MCU GND (broche 20)→ Terre commune (liée à la masse du servo)
Cristal (12 MHz)entre XTAL1 (broche 19) et XTAL2 (broche 18), chaque broche à la masse via des condensateurs de 30 pF.
Réinitialiser le circuit: Condensateur 10 µF de VCC à RST (broche 9), résistance 10 kΩ de RST à GND.
Fil de signal d'asservissement→ n'importe quelle broche d'E/S, par exemple P1.0 (broche 1) – via une résistance de 1 kΩ (facultatif mais recommandé pour la protection).
Puissance du servo (rouge)→ alimentation +5 V séparée (ne pas tirer du régulateur du MCU si vous utilisez des servos à couple élevé).
Masse du servo (marron/noir)→ terrain d'entente avec le MCU.
Deux boutons poussoirs: un entre P3.0 et GND, un autre entre P3.1 et GND (avec pull-ups internes activés) – utilisé dans le cas courant pour augmenter/diminuer l'angle du servo.
Utilisez toujours un terrain d’ententeentre le 51 MCU et le servo. Sans cela, le signal flotte et le servo tremblera ou ne bougera pas.
N'alimentez pas un servo à partir de la broche 5 V du MCU.si le servo consomme plus de 100 mA. De nombreux servos standards consomment entre 200 et 500 mA pendant le mouvement. Utilisez un régulateur 5 V/1 A séparé (par exemple, LM7805) pour le servo.
Ajoutez un grand condensateur (100-470 µF)à travers les lignes électriques du servo à proximité du servo pour lisser les pics de courant – cela empêche les réinitialisations du MCU.
Un projet typique pour débutant consiste à contrôler un servo avec deux boutons : un pour augmenter l'angle, un pour diminuer. Ce cas valide le schéma.
Connectez le schéma exactement comme décrit ci-dessus.
Utilisez un cristal de 12 MHz.
Attribuez le signal d’asservissement à P1.0.
Connectez le bouton A à P3.0, le bouton B à P3.1.
![]()
Lorsque le bouton A est enfoncé, le servo tourne dans le sens des aiguilles d'une montre d'environ 5°.
Lorsque le bouton B est enfoncé, le servo tourne dans le sens inverse des aiguilles d'une montre.
Pas de gigue ni de mouvement inattendu lorsque les boutons sont inactifs – car la masse commune et le condensateur de découplage sont présents.
Si l'alimentation séparée du servo est omise, le MCU se réinitialise lorsque le servo commence à bouger – une indication claire de la nécessité d'une alimentation isolée.
Ce cas courant prouve que le schéma fonctionne de manière fiable lorsque les trois règles (terre commune, puissance d'asservissement séparée, condensateur de découplage) sont respectées.
Le schéma fournit l'épine dorsale matérielle du logiciel PWM. La méthode la plus courante et la plus stable est l'interruption basée sur un minuteur :
1. Configurez Timer 0 (ou Timer 1) en mode 16 bits.
2. Définissez une période de 20 ms (50 Hz).
3. Pendant l'interruption, générez une impulsion haute variable (0,5 à 2,5 ms) sur la broche du signal d'asservissement, puis réglez la broche au niveau bas pour le reste de la période.
Un calcul de minuterie typique pour un cristal de 12 MHz (12 horloges par cycle machine) :
Tick de la minuterie = 1 µs (12 MHz / 12 = 1 µs par cycle d'instruction).
Pour atteindre 20 ms (20 000 µs), réglez TH0/TL0 pour un dépassement de 20 000 points.
Aucun circuit intégré générateur PWM externe n'est nécessaire. Le schéma est minimal et rentable.
Le point le plus critique :La carte de commande d'asservissement du microcontrôleur 51 nécessite trois éléments matériels non négociables : (1) une masse commune entre le MCU et le servo, (2) une alimentation séparée pour le servo (ne partagez pas le régulateur 5 V du MCU pour les servos à courant élevé) et (3) un grand condensateur électrolytique (≥ 100 µF) aux bornes d'alimentation du servo. Ces trois éléments sont présents dans chaque schéma fonctionnel et sont absents dans chaque conception échouée.
Pour construire une carte de servocommande fiable basée sur 51 :
1. Commencez par le schéma ci-dessus– ne modifiez pas la mise à la terre ou la séparation de puissance.
2. Utilisez un cristal de 12 MHz– il simplifie les calculs de minuterie pour 50 Hz PWM.
3. Testez d'abord avec un seul servo– ajoutez un condensateur de 100 µF entre ses broches d'alimentation.
4. Mesurer le courant de décrochage du servo– assurez-vous que votre alimentation 5 V séparée peut fournir au moins le double de cette valeur.
5. Ajoutez une résistance de 1 kΩ en série avec la ligne de signal servo– protège la broche MCU des courts-circuits accidentels.
6. Si vous avez besoin de plusieurs servos, conservez la même séparation de masse et de puissance, mais augmentez la capacité d'alimentation du servo en conséquence (par exemple, 5 V/3 A pour 3 à 4 servos standard).
[ ] Terre commune : MCU GND connecté au servo GND.
[ ] Alimentation servo séparée : Servo VCC non connecté au MCU VCC.
[ ] Condensateur de découplage : 100–470 µF entre le servo VCC et GND.
[ ] Résistance de signal : 1 kΩ de la broche MCU au fil de signal du servo.
[ ] Cristal et condensateurs correctement placés.
[ ] Circuit de réinitialisation : 10 µF + 10 kΩ.
Suivre ce schéma vérifié et ces étapes d'action garantit que votre carte de commande d'asservissement à microcontrôleur 51 fonctionnera sans gigue, réinitialisation ou dommage. Utilisez le boîtier commun à deux boutons comme premier test : il révèle instantanément toute erreur de câblage.
Heure de mise à jour:2026-04-14
Contactez le spécialiste des produits Kpower pour recommander un moteur ou une boîte de vitesses adapté à votre produit.