Arduino - MG996R

Dans ce tutoriel, nous allons apprendre à utiliser le servo moteur à couple élevé MG996R avec Arduino.

Préparation du matériel

1×Arduino Uno R3
1×Câble USB 2.0 type A/B (pour PC USB-A)
1×Câble USB 2.0 type C/B (pour PC USB-C)
1×Servo-moteur MG996R
1×Fils de connexion
1×Optionnel: 9V Power Adapter for Arduino
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Démarrage DIYables STEM V3 (Arduino inclus)
1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

MG996R Servo Motor

Le moteur servo MG996R est un moteur servo à couple élevé capable de soulever jusqu'à 15 kg de poids. Le moteur peut faire tourner sa poignée de 0° à 180°, offrant un contrôle précis de la position angulaire. Pour des informations de base sur les moteurs servo, veuillez consulter le tutoriel Arduino - Moteur Servo..

Brochage

Le moteur servo MG996R utilisé dans cet exemple comprend trois broches :

  • Broche VCC : (généralement rouge) doit être connectée à VCC (4,8V – 7,2V)
  • Broche GND : (généralement noire ou marron) doit être connectée à GND (0V)
  • Broche de signal : (généralement jaune ou orange) reçoit le signal de commande PWM d'une broche d'Arduino.
Brochage du servomoteur MG996R

Diagramme de câblage

Étant donné que le MG996R est un moteur servo à couple élevé, il consomme beaucoup de puissance. Nous ne devons pas alimenter ce moteur via la broche 5v de l'Arduino. Au lieu de cela, nous devons utiliser une alimentation externe pour le moteur servo MG996R.

Schéma de câblage du servo moteur Arduino MG996R

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Code Arduino

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-mg996r */ #include <Servo.h> Servo servo; // crée un objet servo pour contrôler un servo void setup() { servo.attach(9); // attache le servo au pin 9 à l'objet servo servo.write(0); // fait tourner doucement le servo à 0 degrés immédiatement } void loop() { for (int angle = 0; angle <= 180; angle += 1) { // fait tourner doucement de 0 degrés à 180 degrés, un degré à la fois // par pas de 1 degré servo.write(angle); // commande au servo d'aller à la position dans la variable 'angle' delay(10); // attend 10ms pour que le servo atteigne la position } for (int angle = 180; angle >= 0; angle -= 1) { // tourne de 180 degrés à 0 degrés, un degré à la fois servo.write(angle); // commande au servo d'aller à la position dans la variable 'angle' delay(10); // attend 10ms pour que le servo atteigne la position } }

Étapes rapides

  • Connectez l'Arduino au PC via le câble USB
  • Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur l'Arduino
IDE Arduino - Comment télécharger du code
  • Voyez le résultat : le servo-moteur tourne lentement de 0 à 180° puis retourne lentement de 180 à 0°.

Explication du code

Vous pouvez trouver l'explication dans la ligne de commentaires du code Arduino ci-dessus.

Comment contrôler la vitesse du moteur servo

En utilisant les fonctions map() et millis(), nous pouvons contrôler la vitesse du moteur servo de manière fluide sans bloquer d'autres codes.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-mg996r */ #include <Servo.h> Servo myServo; unsigned long MOVING_TIME = 3000; // le temps de déplacement est de 3 secondes unsigned long moveStartTime; int startAngle = 30; // 30° int stopAngle = 90; // 90° void setup() { myServo.attach(9); moveStartTime = millis(); // commencer à bouger // TODO: autre code } void loop() { unsigned long progress = millis() - moveStartTime; if (progress <= MOVING_TIME) { long angle = map(progress, 0, MOVING_TIME, startAngle, stopAngle); myServo.write(angle); } // TODO: autre code }

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !