Arduino Mega - Servomoteur

Ce guide vous montre comment contrôler un servomoteur avec un Arduino Mega. Plus précisément, nous allons apprendre à :

Arduino Mega Servo Motor

Matériel requis

1×Arduino Mega
1×Câble USB 2.0 type A/B
1×Servomoteur
1×Fils de connexion
1×Recommandé: Screw Terminal Block Shield for Arduino Uno/Mega
1×Recommandé: Breadboard Shield for Arduino Mega
1×Recommandé: Enclosure for Arduino Mega

Ou vous pouvez acheter les kits suivants:

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.

Note d'achat: Si vous utilisez plusieurs servomoteurs, nous recommandons d'utiliser le PCA9685 16 Channel PWM Servo Driver Module pour économiser les broches du MCU et faciliter le câblage.

À propos du servomoteur

Un servomoteur est un petit dispositif qui peut faire tourner un axe, généralement de 0 à 180 degrés. Il est utilisé pour contrôler l'angle de quelque chose.

Brochage

Dans cet exemple, un servomoteur avec trois broches est utilisé :

  • Broche VCC : connectez le fil rouge au +5V.
  • Broche GND : connectez le fil noir ou marron à la masse.
  • Broche Signal : connectez le fil jaune ou orange pour recevoir le signal PWM d'une broche Arduino Mega.
Servo Motor Pinout

Schéma de câblage

Parfois vous voyez en ligne des schémas de câblage qui connectent la broche d'alimentation du servomoteur (VCC) à la broche 5V de l'Arduino Mega. Il vaut mieux éviter de faire cela, car cela peut endommager la carte Arduino Mega.

Arduino Mega Servo Motor Wiring Diagram

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

Pour protéger votre Arduino Mega, utilisez une alimentation séparée pour le servomoteur. Le schéma ci-dessous montre comment connecter le servomoteur à cette source d'alimentation.

Arduino Mega servo motor external power supply wiring diagram

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

Assurez-vous que la masse (GND) de l'alimentation est connectée à la masse de la carte Arduino Mega. Cette étape est très importante pour que cela fonctionne correctement.

Comment programmer pour le servomoteur

  • Ajoutez la bibliothèque :
#include <Servo.h>
  • Créez un objet Servo :
Servo servo;

Si vous avez plusieurs servomoteurs, créez simplement plus d'objets Servo.

Servo servo1; Servo servo2;
  • Connectez la broche de contrôle de l'Arduino Mega à la broche signal du servomoteur, par exemple la broche 9.
servo.attach(9);
  • Enfin, déplacez le servomoteur à l'angle que vous voulez, par exemple 90 degrés.
servo.write(90);

Code Arduino Mega

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega 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-mega/arduino-mega-servo-motor */ #include <Servo.h> Servo servo; // Create a Servo instance to control a hobby servo void setup() { servo.attach(9); // Attaches the Servo instance to the signal on pin 9 servo.write(0); // Sets the initial position to 0 degrees at startup } void loop() { for (int pos = 0; pos <= 180; pos += 1) { // Sweep from 0° to 180° in small increments servo.write(pos); // Command the servo to move to 'pos' degrees delay(10); // Pause 10 ms for the servo to reach the target position } for (int pos = 180; pos >= 0; pos -= 1) { // Sweep from 180° back down to 0° servo.write(pos); // Command the servo to move to 'pos' degrees delay(10); // Pause 10 ms for the servo to reach the target position } }

Étapes rapides

Suivez ces étapes une par une :

  • Câblez les composants comme indiqué dans le schéma.
  • Connectez la carte Arduino Mega à votre ordinateur avec un câble USB.
  • Ouvrez l'IDE Arduino sur votre ordinateur.
  • Choisissez la bonne carte Arduino Mega (par exemple Arduino Mega) et le port COM.
  • Copiez et collez le code ci-dessus dans l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code à l'Arduino Mega.
Arduino IDE - How to Upload Code
  • Observez ce qui se passe : Le servomoteur se déplace lentement de 0 à 180 degrés, puis se déplace lentement de 180 à 0 degrés.

Explication du code

L'explication se trouve dans les commentaires du code Arduino ci-dessus.

Comment contrôler la vitesse du servomoteur

L'utilisation de map() et millis() permet de changer facilement la vitesse d'un servomoteur en douceur, pendant que le reste du programme continue de s'exécuter sans s'arrêter.

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega 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-mega/arduino-mega-servo-motor */ #include <Servo.h> Servo servo; #define MOVING_TIME 3000 // Duration during which the servo moves from startAngle to stopAngle unsigned long moveStartTime; // Timestamp marking when the servo begins movement int startAngle = 30; // Initial position angle (degrees) int stopAngle = 90; // Target position angle (degrees) void setup() { servo.attach(9); // Connect the servo to digital pin 9 moveStartTime = millis(); // Record the current time as the move start // Additional initialization code can be added here } void loop() { unsigned long progress = millis() - moveStartTime; // Time elapsed since movement started if (progress <= MOVING_TIME) { // While the elapsed time is within MOVING_TIME long angle = map(progress, 0, MOVING_TIME, startList and stopAngle); // Compute the current angle for the servo servo.write(angle); // Move the servo to the calculated angle } // Additional repetitive code can be added here }

Vidéo

Tutoriels connexes

※ 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 !