France, Lyon 6°
Offline
Full Member
Karma: 0
Posts: 144
|
 |
« Reply #15 on: January 12, 2013, 08:51:54 am » |
Salut ! Carte <=B-Mâle:USB:A-Mâle=> Ordi Servo:Jaune <=> Pin de commande PWM Arduino (nommée "broche_servo" dans l'exemple d'Artouste) Servo:Noir <=> GND Arduino Servo:Rouge <=> 5V Arduino P. S. : Je n'aurais pas mis pinMode(broche_servo, OUTPUT);
car il n'est pas dans les exemples de la librarie.
|
|
|
|
|
Logged
|
- Arduino UNO R3; - PowerBook G4; - Arduino (C) - Eclipse (Java) - wxLua (µLua) - TextWrangler (HTML + JS) - (3)DS et bientôt R4 (pour créer, pas télécharger !) - Ethenet Shield; - Proto Shield*;
* : En cours de transformation en Vusb + TVout
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #16 on: January 12, 2013, 08:55:15 am » |
donc: fils jaune sur <=> Pin de commande PWM Arduino (nommée "broche_servo" dans l'exemple d'Artouste) fils noir sur <=> GND Arduino fils rouge sur <=> 5V Arduino Salut ! Carte <=B-Mâle:USB:A-Mâle=> Ordi*
P. S. : Je n'aurais pas mis Code: pinMode(broche_servo, OUTPUT); car il n'est pas dans les exemples de la librarie. Comment ça? Et pour l'alimentation?
|
|
|
|
|
Logged
|
|
|
|
|
france
Offline
Sr. Member
Karma: 4
Posts: 273
|
 |
« Reply #17 on: January 12, 2013, 08:58:50 am » |
La carte est relié au PC par le fil USB, qui sert à transférer le programme et à alimenter la carte. File/Upload pour charger le programme dans la carte.
On peut alimenter un petit servomoteur directement par la carte mais seulement s'il ne consomme pas trop. En principe il est préférable de découpler les deux.
|
|
|
|
|
Logged
|
Christian
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #18 on: January 12, 2013, 09:04:00 am » |
Ok et sinon, je l'alimente comment?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #19 on: January 12, 2013, 09:05:32 am » |
et comment faire pour:
pinMode(broche_servo, OUTPUT);
|
|
|
|
|
Logged
|
|
|
|
|
France - Bais(53)
Offline
Newbie
Karma: 0
Posts: 30
|
 |
« Reply #20 on: January 12, 2013, 10:07:03 am » |
Bonjour, Je suivais votre discussion, j'aurais une petite question ? Dans les programmes, vous testez la position du servo moteur, en passant par une commande de la librairie. Pourquoi ? Ce test de position ne donne qu'une position virtuel et non réelle, si je ne me trompe? Le servo moteur ne peut qu'être commandé mais ne renvois aucune valeur. Je parle bien du servo moteur réel. Je pensais que justement l'avantage de la librairie était de libérez le processeur d'une boucle permettant le positionnement du servo moteur et permettait aussi de brancher le servo moteur sur une autre broche que celle prévu par la PWM (en changeant la fréquence bien entendu).
Autre chose, pour le branchement du servo moteur on a pas le choix, deux broches sont pour l'alimentation (la couleur dépend du frabriquant du servo) et la dernière sert à la commande. Bancher l'alimentation sur l'ARDUINO est amplement suffisant à moins de dépasser la limite de courant s'il y a d'autre composant.
|
|
|
|
|
Logged
|
|
|
|
|
France - Bais(53)
Offline
Newbie
Karma: 0
Posts: 30
|
 |
« Reply #21 on: January 12, 2013, 10:10:52 am » |
j'ai testé avec l'alimentation de l'USB, ça fonctionne très et on a de la marge avant que le servo moteur consomme trop. Je l'utilise sur un lanceur de fusée à eau à commande à distance.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #22 on: January 12, 2013, 10:18:16 am » |
Merci, je vais le tester quand je l'aurai mis sur la carte Arduino. Mais par rapport à ce que tu dis dans ton premier message, si par exemple je veux donner un angle à mon moteur, ex: 80° il va bien le faire en réel si j'utilise ce programme:? #include <Servo.h> // librairie arduino pour servomoteur
const int POS_MIN=550; // mise a zero pour un servomoteur position minimale const int POS_MAX=2330; // position maximale servomoteur
int angle_servo=0; //angle pour position minimale
const int broche_servo=2; //broche selon branchement (2) const int Voie_0=0; //constante pour passage en analogique
int mesure_brute=0;// résultat brut float mesuref=0.0;// résultat décimal
Servo mon_servo; // pour le control du servomoteur
void setup() { // debut de la fonction setup()
mon_servo.attach(broche_servo, POS_MIN, POS_MAX); // broche commande servo
pinMode(broche_servo, OUTPUT); //met la broche en sortie } 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);
angle_servo=map(mesure_brute,0,1023,0,180); // conversion en angle °
mon_servo.write(angle_servo); // positionne le servo à l'angle voulu
delay (100); // pause entre 2 mesures et modif position servomoteur }
Merci
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #23 on: January 12, 2013, 10:40:48 am » |
fils jaune sur <=> Pin de commande PWM Arduino (nommée "broche_servo" dans l'exemple d'Artouste) fils noir sur <=> GND Arduino fils rouge sur <=> 5V Arduino Pour cela il va y avoir un problème, les trois fils du servomoteurs sont comme cela:  C'est pour ca que je les mettais sur les entrées avec les pointes (les entrées analogiques je crois)
|
|
|
|
|
Logged
|
|
|
|
|
France - Bais(53)
Offline
Newbie
Karma: 0
Posts: 30
|
 |
« Reply #24 on: January 12, 2013, 10:44:25 am » |
Heu .... Tu n'as pas tout dis, ou j'ai raté quelque chose ??? En fait tu contrôle ton servo moteur avec un potentiomètre dont tu lit la valeur sur la voie_0 et ensuite tu convertit en angle et tu renvois dans la commande du servo???
Pourquoi pas, ca devrait fonctionner. Un peu compliqué, mais pourquoi pas.
Voir si d'autres sont d'accord?
|
|
|
|
|
Logged
|
|
|
|
|
France - Bais(53)
Offline
Newbie
Karma: 0
Posts: 30
|
 |
« Reply #25 on: January 12, 2013, 10:46:16 am » |
Mais le servo moteur ne peut être que commandé, il ne peut pas renvoyer d'information???
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #26 on: January 12, 2013, 10:48:58 am » |
Mais le servo moteur ne peut être que commandé, il ne peut pas renvoyer d'information??? Pourquoi? Ensuite, pour les fils, je dois faire comment?
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Offline
Full Member
Karma: 0
Posts: 137
|
 |
« Reply #28 on: January 12, 2013, 11:01:51 am » |
Oui j'utilise une résistance variable, comme le programme sur le site, je crois. Du coup comment connecter mes trois fils sur l'arduino vu qu'ils sont regroupés comme sur la phot?
|
|
|
|
|
Logged
|
|
|
|
|
france
Offline
Sr. Member
Karma: 4
Posts: 273
|
 |
« Reply #29 on: January 12, 2013, 11:03:34 am » |
Sur un servo à 3 fils, l'information va de la carte (commande) vers le servo (récepteur). Il n'y a pas de retour d'information de position, l'angle de commande est supposé atteint.
Le connecteur peut être démonté pour séparer les 3 fils.
|
|
|
|
|
Logged
|
Christian
|
|
|
|
|