Consommation Servo
Débuté par
Guest_MicroRupteurMan_*
, oct. 02 2011 04:57
9 réponses à ce sujet
#1 Guest_MicroRupteurMan_*
Posté 02 octobre 2011 - 04:57
Bonjour,
En pensant a mettre un coup sur mon MALP (Nom officiel), je me suis rappeler ('') que une broche sur la carte Arduino ne dépasser pas 40ma en sortie, pourtant les servos consomme 100ma sans problème.
Comment ca fait pour pas cramer la carte ???
En pensant a mettre un coup sur mon MALP (Nom officiel), je me suis rappeler ('') que une broche sur la carte Arduino ne dépasser pas 40ma en sortie, pourtant les servos consomme 100ma sans problème.
Comment ca fait pour pas cramer la carte ???
#2
Posté 02 octobre 2011 - 05:52
Bonjour,
La puissance fournie au servo ne vient pas de la patte connectée à l'Arduino (signal de commande) mais de la tension.
Donc l'Arduino ne fournit que quelques mA sur sa patte de sortie.
Mais la question est très juste pour un autre composant : le régulateur de tension intégré à la carte Arduino ne fournit que 500 mA, ce qui est suffisant pour deux ou trois servomoteurs dont la tension d'alimentation serait connectée au 5 volts fourni par ce régulateur, mais insuffisant pour plus.
Il est donc préférable de faire 5 volts (ou mieux 6 volts) avec un autre régulateur externe à l'Arduino.
La puissance fournie au servo ne vient pas de la patte connectée à l'Arduino (signal de commande) mais de la tension.
Donc l'Arduino ne fournit que quelques mA sur sa patte de sortie.
Mais la question est très juste pour un autre composant : le régulateur de tension intégré à la carte Arduino ne fournit que 500 mA, ce qui est suffisant pour deux ou trois servomoteurs dont la tension d'alimentation serait connectée au 5 volts fourni par ce régulateur, mais insuffisant pour plus.
Il est donc préférable de faire 5 volts (ou mieux 6 volts) avec un autre régulateur externe à l'Arduino.
#4
Posté 02 octobre 2011 - 06:25
Salut
Regarde l'état de ton périphérique de ton Arduino sur le PC.
Vas sur ton PC en vas dans propriété système/gestionnaire de périphérique.
Et tu cherches l’emplacement du périphérique de l'Arduino , donc fait un teste tu branches ton câble COM et tu regardes si le périphérique apparais.
Regarde l'état de ton périphérique de ton Arduino sur le PC.
Vas sur ton PC en vas dans propriété système/gestionnaire de périphérique.
Et tu cherches l’emplacement du périphérique de l'Arduino , donc fait un teste tu branches ton câble COM et tu regardes si le périphérique apparais.
#8
Posté 04 octobre 2011 - 04:06
Enfete, j'ai pas réellement trouvé, ca beug encore
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter : https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/
Besoin d'une impression 3D grand format ? Contactez moi !
#9
Posté 04 octobre 2011 - 05:36
En fait c'est tres simple a comprendre.
Un servo standard (non modifié) a un débattement de 180°.
Sa position Max a gauche est à 0°
Sa position centrale est à 90°
Sa position Max a droite est à 180°
Dans ton code tu n'as qu'à lui demander une position et il y va. Rien de plus simple.
Tu as des exemples dans le soft Arduino.
Vas par exemple ouvrir le Sketsh "Servo/sweep"
C'est un exemple qui initialise ton servo à 0
Puis vas à 180degres par des pas de 1
Tu n'est bien sur pas obligé de passer pas cette boucle d'incrément 1 pour aller de 0 à 180°. Mais c'est un exemple qui te montre que toute les position entière (int) fonctionnent.
Une fois arrivé à 180 il fait la même chose en sens inverse.
Pour bien utiliser un servo, inspire toi de ce code
Donc ce qui est important
#include <Servo.h>
Declare la Librairie Servo.h
Servo myservo;
Declare Servo comme objet ce qui va te permettre de l'appeler facilement par la suite
Et surtout si tu en a plusieurs de creer plusieurs servos et de les appeller un a un
Par exemple
int pos = 0;
Va declarer une variable de type Integer (nombre entier) et de l'initialiser a 0
De la, il est somple de faire aller ton servo de la ou tu veux a la ou tu veux
Pour ca tu vas dans ta fonction Loop et tu mets tes lignes de positions
ces lignes devraient te faire aller ton servo en boucle de la position 10 a la position 150 puis a nouveau en position 10 etc en faisant une pause de 1000milisecondes soit 1s
Voilà
dlt
Yves
Un servo standard (non modifié) a un débattement de 180°.
Sa position Max a gauche est à 0°
Sa position centrale est à 90°
Sa position Max a droite est à 180°
Dans ton code tu n'as qu'à lui demander une position et il y va. Rien de plus simple.
Tu as des exemples dans le soft Arduino.
Vas par exemple ouvrir le Sketsh "Servo/sweep"
C'est un exemple qui initialise ton servo à 0
Puis vas à 180degres par des pas de 1
Tu n'est bien sur pas obligé de passer pas cette boucle d'incrément 1 pour aller de 0 à 180°. Mais c'est un exemple qui te montre que toute les position entière (int) fonctionnent.
Une fois arrivé à 180 il fait la même chose en sens inverse.
Pour bien utiliser un servo, inspire toi de ce code
// Sweep // by BARRAGAN <http://barraganstudio.com> // This example code is in the public domain. #include <Servo.h> Servo myservo; // create servo object to control a servo // a maximum of eight servo objects can be created 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 15ms for the servo to reach the position } for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees { myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } }
Donc ce qui est important
#include <Servo.h> Servo myservo; // create servo object to control a servo // a maximum of eight servo objects can be created int pos = 0; // variable to store the servo position
#include <Servo.h>
Declare la Librairie Servo.h
Servo myservo;
Declare Servo comme objet ce qui va te permettre de l'appeler facilement par la suite
Et surtout si tu en a plusieurs de creer plusieurs servos et de les appeller un a un
Par exemple
Servo servo1; Servo servo2;Etc
int pos = 0;
Va declarer une variable de type Integer (nombre entier) et de l'initialiser a 0
De la, il est somple de faire aller ton servo de la ou tu veux a la ou tu veux
Pour ca tu vas dans ta fonction Loop et tu mets tes lignes de positions
voidLoop() ( myservo.write(10) delay(1000); myservo.write(150); )
ces lignes devraient te faire aller ton servo en boucle de la position 10 a la position 150 puis a nouveau en position 10 etc en faisant une pause de 1000milisecondes soit 1s
Voilà
dlt
Yves
Répondre à ce sujet
0 utilisateur(s) li(sen)t ce sujet
0 members, 0 guests, 0 anonymous users