Les servomoteurs tels que ceux que nous allons utiliser dans cet article ont un axe de rotation de 0 à180°. A l’aide de l’Arduino et d’éventuellement d’autre composants, il est possible de contrôler sa position et de l’envoyer a une position cible. Par exemple 90°.
Un servomoteur standard tel que le SG90 se compose généralement d’un petit moteur électrique, d’un potentiomètre, d’une carte électronique de commande et d’un système d’engrenage. La position de sortie est mesurée par le potentiomètre interne et comparée à la position demandée par l’Arduino.
Sachez qu’il existe également des servomoteurs à rotation continue mais nous ne les aborderons pas dans cet article.
Ce dont vous aurez besoin
- Un Arduino Uno – Disponible ici
- Un servomoteur – Disponible ici
- une platine de prototypage et quelques câble de connexion rapide
Connecter le servomoteur à l’Arduino
Les petits servomoteurs SG90 ne consomment pas énormément d’énergie. Comptez 250mAh en rotation. Vous pouvez-donc les connecter directement à l’Arduino.
Pour ce qui est des servomoteurs plus gros et plus gourmand il est conseillé d’utiliser une alimentation externe et relié les masses entres-elles.
ou
- GND – Masse connectée au GND de l’Arduino
- VCC – Alimentation connectée au +5V de l’Arduino
- SIG – Signal connecté au D9 de l’Arduino
Code Arduino pour un servomoteur
Contrairement à d’autres composants, le servomoteur ne nécessite pas d’installer une librairie spécifique. Le logiciel Arduino contient en son sain une librairie dédiée nommée simplement servo.h.
Téléchargeons le code le plus simple sur l’Arduino.
Lancez votre logiciel Arduino. Allez ensuite dans: « Fichiers » > « Exemples » > « Servo » > « Sweep »
/* Sweep
by BARRAGAN <http://barraganstudio.com>
This example code is in the public domain.
modified 8 Nov 2013
by Scott Fitzgerald
https://www.arduino.cc/en/Tutorial/LibraryExamples/Sweep
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15 ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15 ms for the servo to reach the position
}
}
Uploadez ce code sur votre Arduino et voyez votre servomoteur changer de position. Allant de 0 à 180°.
0 commentaires