Pages: [1]   Go Down
Author Topic: Servomoteurs  (Read 418 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 147
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,

je dispose de ce code et j'aimerais savoir comment faire pour que la position initiale des servomoteurs soit de 90°, (sans que ce soit la position minimale ni maximale car le servomoteur doit pouvoir s'incliner à 30° ou 160 par exemple).

Code:
#include <Servo.h> // librairie arduino pour servomoteur

const int POS_MIN=550; // mise a zero pour le servomoteur 1 position minimale
const int POS_MAX=2330; // position maximale servomoteur 1
const int POS_MIN_2=550; // mise a zero pour le servomoteur 2 position minimale
const int POS_MAX_2=2330; // position maximale servomoteur 2

int angle_servo=0; //angle pour position minimale 1
int angle_servo_2=0; //angle pour position minimale 2

const int broche_servo=3; //broche selon branchement (3)pour le servo 1
const int Voie_0_2=0; //constante pour passage en analogique servo 1
const int broche_servo_2=5; //broche selon branchement (5)pour le servo 2
const int Voie_0_2=0; //constante pour passage en analogique servo 2

int mesure_brute=0;// résultat brut servo 1
float mesuref=0.0;// résultat décimal servo 1
int mesure_brute_2=0;// résultat brut servo 2
float mesuref_2=0.0;// résultat décimal servo 2

Servo mon_servo;  // pour le control du servomoteur 1
Servo mon_servo_2;  // pour le control du servomoteur 2



void setup()   { // debut de la fonction setup()



mon_servo.attach(broche_servo, POS_MIN, POS_MAX);  // broche commande servo 1
mon_servo_2.attach(broche_servo_2, POS_MIN_2, POS_MAX_2);  // broche commande servo 2


pinMode(broche_servo, OUTPUT); //met la broche en sortie  pour le servo 1
pinMode(broche_servo_2, OUTPUT); //met la broche en sortie pour le servo 2
}
void loop(){ // fonction loop() sans fin

// acquisition conversion analogique numérique
//sur broche analogique indiquée - résultat 10bits (0-1023)

mesure_brute=analogRead(Voie_0); // pour le servo 1
mesure_brute_2=analogRead(Voie_0_2); // pour le servo 2

angle_servo=map(mesure_brute,0,1023,0,180);  // conversion  en angle ° pour le servo 1
angle_servo_2=map(mesure_brute_2,0,1023,0,180);  // conversion  en angle ° pour le servo 2

mon_servo.write(angle_servo); // positionne le servo à l'angle voulu pour le servo 1
mon_servo_2.write(angle_servo_2); // positionne le servo à l'angle voulu pour le servo 2

delay (y); // pause entre 2 mesures et modif position servomoteur
}


J'aimerai que le servomoteur se mette en position initiale avant de se mettre à l'angle voulu et après le delay, se remette en position initiale.

Merci à vous
Logged

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3019
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allez réfléchis un peu.....

deux pistes:
     - ce qui touche l'initialisation doit être placé dans setup().
     - dans ton programme tu calcules un angle que tu bornes entre 0 et 180  et tu t'en sers pour positionner le servo. La variable est d'ailleurs assez explicite.
Logged

Bias
Offline Offline
Jr. Member
**
Karma: 0
Posts: 94
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

un lien qui peu t'aider : http://arduinoprojects101.com/arduino-servo-basic/  smiley-wink
Logged

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Voila de quoi te donner un exemple d'application de Servo :
http://arduino.cc/en/Tutorial/Sweep
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Pages: [1]   Go Up
Jump to: