Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
documentation:arduino:tutos:servo [2015/03/05 13:26] admin créée |
documentation:arduino:tutos:servo [2015/03/10 15:22] admin ancienne révision (2015/03/10 15:16) restaurée |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
====== Tuto Arduino - Servo ====== | ====== Tuto Arduino - Servo ====== | ||
+ | |||
+ | |||
+ | Faire fonctionner un servomoteur de modéliste à l'aide d'une Arduino UNO et d'un potentiomètre 1Kohms. | ||
+ | |||
+ | On fait appel à la librairie **Servo.h** de l'environement Arduino. | ||
+ | |||
+ | ===== Photo du montage ===== | ||
+ | |||
+ | |||
+ | {{:documentation:arduino:tutos:servo:dsc00061.jpg?600|}} | ||
+ | |||
+ | ===== Montage dans 123d.circuits.io ===== | ||
+ | |||
+ | //Attention : ici le sens des pattes du servo sont inversées par rapport à la photo. Les pistes + et - sont aussi inversées !// | ||
+ | {{:documentation:arduino:tutos:servo:servo-breadboard-sim.png?600|}} | ||
+ | |||
+ | |||
+ | ===== Le code ===== | ||
<code c> | <code c> | ||
Ligne 12: | Ligne 30: | ||
const int analogInPin = A0; // Numéro de la broche à laquelle est connecté | const int analogInPin = A0; // Numéro de la broche à laquelle est connecté | ||
- | // le potentiometre (fil du milieu) | + | // le potentiomètre (fil du milieu) |
- | const int servo = 9; // Numéro de pin du servo. | + | const int servo = 9; // Numéro de pin du servomoteur. |
const int DEG_CORR = 1; // Facteur étalonnage du mouvement angulaire. | const int DEG_CORR = 1; // Facteur étalonnage du mouvement angulaire. | ||
- | Servo myServo; // Créé un "objet" de type servo, nommé "myservo". | + | Servo myServo; // Créé un "objet" de la classe Servo, nommé "myServo". |
- | int pos = 20; // Position servo, compteur utilisé dans les boucles. | + | int sensorValue = 0; // Valeur du potentiomètre |
- | int sensorValue = 0; // Valeur lue sur la photorésistance | + | int angleValue = 0; // Valeur envoyée au servomoteur |
- | int angleValue = 0; // Valeur envoyée au buzzer | + | |
Ligne 27: | Ligne 44: | ||
// entrée analogique. | // entrée analogique. | ||
- | int sensorValue = 0; // Valeur lue sur la photorésistance | + | myServo.attach(servo); // Attache la pin du servo à l'objet "myservo". |
- | + | ||
- | myServo.attach(servo); // attache la pin du servo sur l'objet "myservo". | + | |
} | } | ||
Ligne 37: | Ligne 52: | ||
{ | { | ||
- | // lit la valeur de la photorésistance et | + | // Lit la valeur de la photorésistance et |
// stocke le résultat dans sensorValue : | // stocke le résultat dans sensorValue : | ||
sensorValue = analogRead(analogInPin); | sensorValue = analogRead(analogInPin); | ||
- | // change sensorValue vers une intervalle de 0 à 180 (degrés) | + | // Change sensorValue vers une intervalle de 0 à 180 (degrés) |
// et stocke le résultat dans angleValue : | // et stocke le résultat dans angleValue : | ||
angleValue = map(sensorValue, 0, 1023, 0, 180) ; | angleValue = map(sensorValue, 0, 1023, 0, 180) ; | ||
+ | // Envoie l'angle désiré à l'objet myServo. | ||
myServo.write(angleValue); | myServo.write(angleValue); | ||