Aller au contenu


- - - - -

Consommation Servo


9 réponses à ce sujet

#1 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

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 ???

#2 Luj

Luj

    Habitué

  • Membres
  • PipPip
  • 295 messages
  • Gender:Not Telling

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.

#3 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 02 octobre 2011 - 06:02

Mon pc trouve plus ma carte par usb??

#4 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

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.

#5 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 02 octobre 2011 - 08:18

Comment bien réglé un servo ?

Je veux lui faire faire un balayage de 45° de chaque coté, mais je n'arrive pas a bien l'initialisé.

#6 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 02 octobre 2011 - 09:19

j'ai trouvé !!!

#7 ulysse2

ulysse2

    Habitué

  • Membres
  • PipPip
  • 159 messages

Posté 03 octobre 2011 - 07:04

Salut, si tu as trouvé, fais partager, ça peut toujours aider :)


Ulysse.

#8 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

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 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

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

// 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

 


#10 ulysse2

ulysse2

    Habitué

  • Membres
  • PipPip
  • 159 messages

Posté 04 octobre 2011 - 11:54

Merci beaucoup pour ces explications !



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users