Arduino Nano - Moteur Servo

Ce tutoriel vous explique comment utiliser un Arduino Nano pour contrôler un moteur servo. En détail, nous allons apprendre :

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×Servo Motor
1×Jumper Wires
1×(Optional) DC Power Jack
1×(Optional) 9V Power Adapter for Arduino Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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.

À propos du moteur servo

Un servomoteur est un composant capable de faire tourner son axe, généralement entre 0° et 180°. Il est couramment utilisé pour contrôler la position angulaire d'un objet.

Le brochage du moteur servo

Le servomoteur a trois broches :

  • La broche VCC (généralement rouge) doit être connectée à VCC (5V)
  • La broche GND (généralement noire ou marron) doit être connectée à GND (0V)
  • La broche de signal (souvent jaune ou orange) reçoit le signal de commande PWM d'une broche d'un Arduino Nano.
brochage du moteur servo

Arduino Nano - Moteur Servo

Certains des pins de l'Arduino Nano peuvent être programmés pour produire un signal PWM. Nous pouvons connecter la broche de signal du moteur servo à l'une de ces broches et la programmer pour générer une sortie PWM. Cela nous permettra de contrôler le moteur servo.

Grâce à la bibliothèque Servo Arduino Nano, contrôler un moteur servo est facile. Nous n'avons pas besoin de comprendre comment fonctionnent les moteurs servo ou comment générer des signaux PWM. Tout ce que nous devons faire, c'est apprendre à utiliser la bibliothèque.

Diagramme de câblage

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

This image is created using Fritzing. Click to enlarge image

Pour des raisons de simplicité, le schéma de câblage ci-dessus est utilisé à des fins de test ou éducatives, et pour un moteur servo à faible couple. Nous recommandons vivement d'utiliser une source d'alimentation externe pour le moteur servo en pratique. Le schéma de câblage ci-dessous illustre comment connecter le moteur servo à une source d'alimentation externe.

Schéma de câblage d'alimentation externe pour moteur servo Arduino Nano

This image is created using Fritzing. Click to enlarge image

Veuillez ne pas oublier de connecter le GND de l'alimentation externe au GND de l'Arduino.

Comment programmer pour un moteur servo

  • Inclure la bibliothèque :
#include <Servo.h>
  • Créez un objet Servo :
Servo servo;
  • Si vous avez plus d'un servo-moteur, déclarez simplement des objets Servo supplémentaires :
Servo servo1; Servo servo2;
  • Attribuez l’Arduino Nano qui se connecte à la broche de signal du moteur servo. Par exemple, utilisez la broche 9 :
servo.attach(9);
  • Enfin, contrôlez le moteur servo à l'angle requis. Par exemple, 90°.
servo.write(90);

Code Arduino Nano

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-servo-motor */ #include <Servo.h> #define SERVO_PIN 9 // Broche D9 d'Arduino Nano connectée à la broche de signal du moteur servo Servo servo; // crée un objet servo pour contrôler un servo int pos = 0; // variable pour stocker la position du servo void setup() { servo.attach(SERVO_PIN); // attache le servo à la broche 9 à l'objet servo } void loop() { for (pos = 0; pos <= 180; pos += 1) { // rotation de 0 degrés à 180 degrés // par pas de 1 degré servo.write(pos); // demande au servo d'aller à la position dans la variable 'pos' delay(10); // attend 10ms pour que le servo atteigne la position } for (pos = 180; pos >= 0; pos -= 1) { // rotation de 180 degrés à 0 degrés servo.write(pos); // demande au servo d'aller à la position dans la variable 'pos' delay(10); // attend 10ms pour que le servo atteigne la position } }

Étapes rapides

  • Connectez l'Arduino Nano à votre ordinateur via un câble USB.
  • Lancez l'IDE Arduino, sélectionnez la bonne carte et le bon port.
  • Copiez le code et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour compiler et téléverser le code sur l'Arduino Nano.
Comment télécharger un code sur Arduino Nano
  • Découvrez le résultat : Le moteur servo tourne dans les deux sens, horaire et antihoraire.

Explication du code

Découvrez l'explication ligne par ligne contenue dans les commentaires du code source !

Comment contrôler la vitesse du moteur servo

En utilisant les fonctions map() et millis(), nous pouvons ajuster la vitesse d'un moteur servo de manière stable sans entraver d'autres codes.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-servo-motor */ #include <Servo.h> #define SERVO_PIN 9 // Le pin D9 de l'Arduino Nano est connecté au pin de signal du moteur servo Servo servo; unsigned long MOVING_TIME = 3000; // le temps de déplacement est de 3 secondes unsigned long move_start_ms; int angle_start = 30; // 30° int angle_stop = 90; // 90° void setup() { servo.attach(SERVO_PIN); move_start_ms = millis(); // début du déplacement // TODO: autre code } void loop() { unsigned long progress = millis() - move_start_ms; if (progress <= MOVING_TIME) { long angle = map(progress, 0, MOVING_TIME, angle_start, angle_stop); servo.write(angle); } // TODO: autre code }

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!