starter kit arduino

Le starter kit Arduino Officiel

Pour débutants & confirmés – Manuel en Français

Apprenez l’Arduino et l’électronique de façon pratique

Comment contrôler un servomoteur avec Arduino

Juil 2, 2021 | Arduino | 0 commentaires

Le servomoteur en général, est un petit moteur ayant un axe de rotation de 0 à 180°. Il existe biensur des servomoteurs à rotation continue mais nous ne les verrons pas dans cet article.

LE servo de base, sans doute le moins chère est le Tower pro sg90. On le trouve a environ 2€. Celui dont on se sert pour s’amuser.

Spécifications d’un Servo Sg90:

  • Son poid : 9g pour un sg90.
  • Ses  dimension: 22.2 x 11.8 x 31 mm approximativement.
  • Son couple qui s’exprime en kg par cm : 1.8kg par cm.
  • La vitesse de rotation: 0.1 s pour 60 degree
  • Sa tension d’alimentation:  4.8 V (~5V)

Ce dont vous aurez besoin

Branchement du servomoteur à l’Arduino

Niveau branchement, on part sur 3 cables:

  • Rouge : Alimentation (5V).
  • Noir ou marron : La masse.
  • Jaune, orange ou blanc : “Sig”,  c’est le signal, controlé par une sortie PWM.

Des tutos sur les servos, il y en à a la pelle.

Je vous met le code le plus simple qu’il y ai. Il se trouve directement dans les exemples de l’IDE: Fichiers -> Exemples -> Servo -> knob.

Le code est comme celui-ci, il sagit de commander un servo par le biais d’un potentiomètre.

Et l’image officiel d’Arduino.cc

Code / programme Arduino pour le servomoteur

/* 
             Controlling a servo position using a potentiometer (variable resistor) 
             by Michal Rinott <http://people.interaction-ivrea.it/m.rinott> 

             modified on 8 Nov 2013
             by Scott Fitzgerald
             http://arduino.cc/en/Tutorial/Knob
            */

            #include <Servo.h> 
             
            Servo myservo;  // create servo object to control a servo 
             
            int potpin = 0;  // analog pin used to connect the potentiometer
            int val;    // variable to read the value from the analog pin 
             
            void setup() 
            { 
              myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
            } 
             
            void loop() 
            { 
              val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023) 
              val = map(val, 0, 1023, 0, 180);     // scale it to use it with the servo (value between 0 and 180) 
              myservo.write(val);                  // sets the servo position according to the scaled value 
              delay(15);                           // waits for the servo to get there 
            }

Pour ma part pour pouvoir tester mon servo directement, j’ai décidé de me passer du potentiomètre et de définir un déplacement bien spécifique et en boucle. Voici le code:  

            #include <Servo.h> 
             
            Servo myservo;  // create servo object to control a servo 
             

             
            void setup() 
            { 
              myservo.attach(9);  // On défini la pin 9 PWM
            } 
             
            void loop() 
            { 
              myservo.write(5);  // Positionnement du servo à 5°
              delay(1000);  // délais d'une seconde
              myservo.write(175); // Positionnement du servo à 175°            
              delay(1000);  // délais d'une seconde                   
            } 

 Il va pour commencer se positionner à 5°, patienter une seconde, se positionner à 175°, patienter une seconde, etc.. etc.. en boucle.

Pour mon modèle de servomoteur, le SG90 qui est un servomoteur d’entrée de gamme. Son angle est de 0° à 180° Je le fais passer de 5 à 175 pour éviter le grésillement qu’il se passe lors qu’il est en fin ou en début de sa course.

Elegoo starter kit R3

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *