Arduino joue avec un servo à 360 degrés : pourquoi continue-t-il à tourner ? Comment contrôler la vitesse ? _BLDC_Industry Insights_Kpower
Maison > Aperçu de l'industrie >BLDC
ASSISTANCE TECHNIQUE

Arduino joue avec un servo à 360 degrés : pourquoi continue-t-il à tourner ? Comment contrôler la vitesse ?

Publié 2026-05-11

Vous fouillez dans le tiroir et trouvez le SG90 poussiéreux, mais vous découvrez avec horreur qu'il ne peut pas s'arrêter du tout.

La soi-disant « rotation à 90 degrés », dont on parle depuis longtemps, est en réalité devenue un luxe inaccessible. C'est comme un cheval sauvage qui se libère des rênes et continue de tourner follement. Ne pas paniquer. Dans la plupart des cas, ce que vous avez entre les mains est très probablement l'appareil à gouverner appelé « rotation continue à 360 degrés ».

Ce n'est pas cassé, c'est fondamentalementje ne devrais pasIl est utilisé comme servo de position.

Position vs vitesse : deux malentendus fatals sur les « jouets intelligents »

Le servo conventionnel à 180 degrés est une sorte de jouet intelligent « chouchouté ». Lorsque vous lui envoyez une commande, telle qu'une commande à 90 degrés, il s'ajustera vers l'angle cible et s'arrêtera avec précision même si tous vos efforts sont dépensés.

Qu'est-ce que le servo à 360 degrés qui est complètement indulgent ? Si la largeur d'impulsion d'entrée est de 1,5 ms (au centre), elle sera dans un état stationnaire. S'il est inférieur à 1,45 ms, il s'inversera à pleine vitesse. Une fois qu'il est supérieur à 1,55 ms, il tournera vers l'avant à pleine vitesse.

La largeur d'impulsion qui peut être modifiée est en microsecondes. À ce stade, il reconnaît uniquement la vitesse de rotation, et non le nombre d’angles de rotation.

Vous voulez qu’il s’arrête à exactement 30 degrés ? Excusez-moi. Dans sa catégorie cognitive, il n’y a pas de notion de « position », seulement de « direction » et de « vitesse de rotation ».

Vous avez deviné le premier mot d’invite d’écriture :Positionner clairement le sujet

Code Trap : Pourquoi votre routine Arduino devient un « accélérateur » ?

Vous extrayez la routine Arduino :

#inclure

servomoteurmonservomoteur;

monservomoteur.attacher(9);

Ce réglage de l'angle du servo fait référence au réglage de l'angle du servo à 90 degrés. Cette opération est destinée au type servo à 360 degrés et a pour effet de s'arrêter en position médiane.

arduino360度舵机_arduino sg90舵机360度_arduino舵机角度

Attendez, le malentendu le plus courant est apparu. Ce que vous avez écrit est myservo.write(45). Vous vous attendez à ce qu’il tourne à 45 degrés, mais il tourne vers l’avant à la vitesse la plus lente. C'est parce que vous avez donné un signal "gauche".

Pour le servo 360, l'opération d'écriture (0) correspond à l'état de rotation arrière à pleine vitesse, l'opération d'écriture (180) correspond à l'état de rotation avant à pleine vitesse et l'opération d'écriture (90) correspond à l'état d'arrêt.

Il se comporte comme un moteur DC + carte driver, mais les signaux de commande sont plus "délicats".

Imaginez : vous voulez qu'il s'arrête avec précision après 5 tours. ce qu'il faut faire?

La méthode de synchronisation consiste à tourner vers l'avant à pleine vitesse dans le sens positif, à utiliser un délai (2000) (selon la mesure réelle, 2 secondes équivaut approximativement à 3,5 cercles), puis à écrire (90)

Encodeur auxiliaire (externe) : Mais vous n’avez que le SG90 en main, alors n’en rêvez pas.

La deuxième invite d’écriture est apparue naturellement :transition logique

Rompre le jeu : trois cas de contrôle « contre-intuitifs »

Le cas A est celui où le novice s'est renversé. Xiao Ming a fabriqué une poubelle à ouverture automatique du couvercle. Il a utilisé un servo à 360 degrés pour tirer la corde. Le résultat était que la position était différente à chaque démarrage, de sorte que le couvercle était soit entrouvert, soit renversé.

La solution est d'abandonner la mémoire de position et d'installer un fin de course, qui est un micro-interrupteur. Une fois déclenché, écrivez 90 pour arrêter. Le servo n'est responsable que des deux actions de « tirer » et de « relâcher ».

Cas B (voiture intelligente) : Xiaoli effectue une direction différentielle. Les deux servos contrôlent respectivement les roues gauche et droite.

Roue gauche en avant + roue droite arrêtée = tourner à droite sur place.

Roues gauche et droite dans des directions opposées = tournent sur place.

Points clés : utilisez map(speed, -100, 100, 0, 180), où les nombres négatifs représentent une rotation inverse, 0 représente l'arrêt et les nombres positifs représentent une rotation vers l'avant.

Concernant le cas C (compteur d'eau simulé), il s'agit d'une situation où Lao Wang secoue périodiquement la tête. L'exigence est qu'il doit secouer lentement la tête pendant 20 secondes, puis effectuer un retour brusque pendant 3 secondes.

Vitesse lente :écrire(100)(Rotation avant à faible vitesse) Délai de 20 secondes.

arduino360度舵机_arduino舵机角度_arduino sg90舵机360度

Virage rapide :écrire(30)(Inversion à basse vitesse) retard de 3 secondes.

Sois prudent! Écrivez (0) à pleine vitesse, la vitesse d'inversion est trop rapide, provoquant un choc de la machine, endommageant ainsi le potentiomètre.

L'avez-vous découvert ? Tous les cas confirment le troisième mot d'invite :Les détails déterminent le succès ou l’échec

Pourquoi votre SG90 a-t-il une courte durée de vie ?kpuissanceL'inspiration de Servo

"Mon servo n'a été utilisé que depuis une semaine et il continue de trembler."

Démontez-le et voyez : les engrenages en plastique sont usés. Vous l'avez bloqué (il était bloqué et vous aviez toujours du courant).

seulementkpuissanceSeuls les servos fabriqués à partir de matériaux métalliques tels que les servos peuvent faire face à la situation de blocage prolongé en état de rotation. Quant à la limite du SG90, c'est :.

Fonctionnement continu ≤ 30 secondes (nécessite un refroidissement)

Le courant du rotor verrouillé est de 800 mA et le tube pilote est grillé en 10 secondes.

Lors d'un réglage fin à mi-position, vous devez d'abord exécuter la commande myservo.write(90), puis ajuster le potentiomètre du dispositif mécanique jusqu'à ce qu'il soit complètement stationnaire.

Le quatrième mot d'invite :Les affaires renforcent la crédibilité

Voici une chose réelle qui s'est produite. Il existait un kit pédagogique utilisant douze SG90 pour fabriquer un bras robotique. Cependant, chacun des servos était bloqué et tourné. En conséquence, la moitié des servos ont été grillés en seulement deux jours.

> Leçon : le boîtier de direction à 360 degrés ne convient que pour les scénarios « sans résistance lors du mouvement ».

Revenir sur la bonne voie : questions et réponses de « dépannage »

Q : Mon servo est connecté au 5V, mais il ne peut pas bouger ?

R : Vérifiez si le GND de l'Arduino et le GND du servo sont sur la même masse. S'ils ne sont pas sur le même sol, le signal dérivera de manière aléatoire et le servo tournera de manière extravagante.

Q : Il s'allume tout seul après la mise sous tension, sans écrire de code ?

R : La broche de signal est dans un état flottant, ce qui peut provoquer un faux déclenchement. Ajoutez une résistance pull-down de 10k et connectez-la à GND, ou téléchargez d'abord le programme write(90).

Q : Je veux qu’il tourne exactement 10 fois, comment le mesurer ?

R : Tournez dans le sens positif à la vitesse la plus rapide, utilisez un chronomètre pour mesurer le temps pris sur cinq tours et contrôlez-le via la fonction delay(). Il est courant que l'erreur se situe entre 5 % et 10 %.

Q : Pourquoi la direction inverse est-elle plus lente que la direction avant ?

A. En quittant l'usine, la position neutre a été décalée et le code a été affiné. Vous devez arrêter cette valeur (par exemple en utilisant 92 pour remplacer 90) ou changer le potentiomètre.

Q : La largeur d'impulsion de 1,6 ms est trop rapide, peut-elle être plus lente ?

Plus la vitesse est lente, plus la largeur d'impulsion est proche de 1,5 ms et la rotation avant extrêmement lente est de 1,51 ms. Le mot d’invite d’écriture ferme enfin la boucle, renforce la conclusion et lance un appel à l’action.

Conclusion : C'est une "roue à vitesse contrôlable"

Ignorez l'angle et gardez trois nombres à l'esprit, qui sont 1,5 ms (pause), 1,45 ms (marche arrière à pleine vitesse) et 1,55 ms (marche avant à pleine vitesse).

Concernant votre projet Arduino, qui comprend des ventilateurs oscillants, des tapis roulants, des rideaux automatiques, des voitures qui suivent des lignes, etc., tant qu'il s'agit d'un mouvement qui ne nécessite pas de position absolue, alors le SG90 à 360 degrés sera moins cher en termes de prix et plus facile à utiliser.

À ce moment-là, avant que votre "commande position" ne le perturbe, ouvrez l'EDI et écrivez trois lignes de code de test :

Une fois l'opération d'écriture (0) effectuée, le temps de retard est de 2 secondes, l'opération d'écriture (90) est effectuée, le temps de retard est de 1 seconde et l'opération d'écriture (180) est effectuée, le temps de retard est de 2 secondes.

Écoutez le son et indiquez la vitesse. C'est à ce moment-là qu'on le « sait » vraiment.

Heure de mise à jour:2026-05-11

Alimenter l’avenir

Contactez le spécialiste des produits Kpower pour recommander un moteur ou une boîte de vitesses adapté à votre produit.

Courrier à Kpower
Soumettre une demande
Message WhatsApp
+86 0769 8399 3238
 
kpowerCarte