Aujourd’hui, nous allons apprendre ensemble à contrôler un servomoteur de modélisme à l’aide d’un arduino.
Le matériel nécessaire :
- Un arduino
- Un servomoteur
- Des fils de connexions
Câblage du servomoteur à l’arduino.
Les servomoteurs ont 3 fils de connexions :
- Le + (Généralement rouge)
- Le – (La masse, généralement noire ou marron)
- Le fil de l’impulsion de commande (Généralement blanc ou jaune)
Pour relier le servomoteur à l’arduino, vous devez brancher :
- Le fil + sur le + de votre alimentation externe
- Le fil noir (la masse), sur le 0V (ou GND « ground » en anglais)
- Le fil de l’impulsion de commande sur une entrée numérique « digital » PWM
Voici un schéma de branchement :
Utilisation de la librairie
L’arduino est livré avec toute sorte de librairies (permettant d’invoquer des fonctions).
Pour inclure une librairie dans un programme arduino, rien de plus simple. Il suffit d’entrer la ligne suivante au début du programme :
#include <Servo.h>
Cette librairie concentre plusieurs fonctions, au nombre de 6 :
attach()
write()
writeMicroseconds()
int read()
boolean attached()
detach()
Nous allons voir ensemble a quoi correspondent les differentes fonctions ci-dessus.
La fonction « attach() » permet de rattacher le pin dans lequel nous avons branché le fil jaune.
#include <Servo.h> // Permet d'inclure la librairie
Servo servo; // Creation d'une variable appelee "servo"
void setup() {
servo.attach(0); // J'attache "servo" au pin A0 de l'arduino
}
void loop() {}
La fonction « write() » permet de donner une consigne au servomoteur.
On utilise généralement la syntaxe suivante : var.write(angle)
Avec « var » le nom de la variable du servo et « angle » la valeur que l’on veut donner au servo.
#include <Servo.h> // Permet d'inclure la librairie
Servo servo; // Creation d'une variable appelee "servo"
void setup() {
servo.attach(2); // J'attache "servo" au pin 2 de l'arduino
servo.write(90); // Positionne le servomoteur à 90°
}
void loop() {}
La fonction « read() » permet de lire la valeur envoyée par la fonction « write() ». La valeur renvoyée est un entier (« integer » en anglais, souvent notée « int » dans les livres ou sur internet).
il manque les points virgules après les ligne de codes !
Bonjour,
C’est exact (et corrigé !) merci !