Alimentation de 4 moteurs DC

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous ! Je suis entrain de réaliser un projet: coder PID avec Arduino pour asservir en hauteur un drone. Seulement je rencontre un problème au niveau de l'alimentation. J'utilise une pile 9 V 500mAh. Lorsque je fais tourner un seul moteur tout va bien, mais lorsque je branche 4 moteurs, j'ai mesuré avec un multimètre une chute brusque de tension. Voici le code que j'utilise:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#define ECHOPIN 2
#define TRIGPIN 3


// Constantes PID
float setpoint = 10;
float dt = 10;
float Kp = 0.01;
float Ki = 10;

float erreur_prec = 0;
float integrale = 0;

// on importe les modules adafruit pour le shield

#include <Wire.h>
#include <Adafruit_MotorShield.h>

// Mesure de la distance avec le capteur ultrason
// Echopin: émetteur   Trigpin : recepteur

float mesureDistance() {
    digitalWrite(TRIGPIN, HIGH);
    delayMicroseconds(10); 
    digitalWrite(TRIGPIN, LOW);

    float dist = pulseIn(ECHOPIN, HIGH);
    dist /= 58;
    return dist;
}



Adafruit_MotorShield AFMS = Adafruit_MotorShield();
Adafruit_DCMotor *moteur1 = AFMS.getMotor(1);
Adafruit_DCMotor *moteur2 = AFMS.getMotor(2);
Adafruit_DCMotor *moteur3 = AFMS.getMotor(3);
Adafruit_DCMotor *moteur4 = AFMS.getMotor(4);

void setup() {
      Serial.begin(9600);
      pinMode(ECHOPIN, INPUT); // entrée: echopin
      pinMode(TRIGPIN, OUTPUT); // sortie: trigpin
      AFMS.begin(1000);


      moteur1->setSpeed(0);
      moteur1->run(FORWARD);
      moteur2->setSpeed(0);
      moteur2->run(FORWARD);
      moteur3->setSpeed(0);
      moteur3->run(FORWARD);
      moteur4->setSpeed(0);
      moteur4->run(FORWARD);
}



// PID
void loop() {
    float dist = mesureDistance(); // mesure la distance au sol


    float erreur = setpoint - dist;

    integrale += erreur*dt;

    float sortie = Kp*erreur+ Ki*integrale; 
    Serial.println(erreur); 


    moteur1->setSpeed(0);//initialisation de la vitesse des moteurs
    moteur2->setSpeed(0);
    moteur3->setSpeed(0);
    moteur4->setSpeed(0);


    if (sortie < 0)
    sortie = 0;
    else if (sortie > 255)
    sortie = 255;
    moteur1->setSpeed(sortie);
    moteur2->setSpeed(sortie);
    moteur3->setSpeed(sortie);
    moteur4->setSpeed(sortie);
    delay(dt); 

}

Je ne sais pas trop quoi faire, quelqu'un peut-il m'aider ?

+0 -0

Salut :)

La chute de tension est typique d'une alimentation trop peu puissante par rapport à la demande des récepteurs.

Il faudrait peut-être donner les caractéristiques des moteurs (puissance notamment) ?

+0 -0
Auteur du sujet

Mon projet a été d'acheter un petit drone déjà existant et de coder un PID avec une carte Arduino pour l'asservir en hauteur(http://www.amazon.fr/modèle-Quadcopter-caméra-2-0mégapixel-aviation/dp/B00WWQI4KS/ref=sr_1_14?s=toys&ie=UTF8&qid=1443294160&sr=1-14&keywords=drone).Je n'est donc aucunes informations sur les moteurs.A l'origine les moteurs étaient alimentés par une batterie de 3,7V et 250mAh, puis j'ai changé et mis une batterie de 9 V et 550 mAh car l'ancienne batterie ne fournissait alors plus assez de puissance aux moteurs. Mais j'ai du refaire et allonger les fils de branchements moteurs-batterie, et multiplier les soudures. Est-il possible que des pertes dans les fils soient à l'origine de cette perte brutale de puissance ? De plus j'alimente un capteur à ultrason et un shield moteur.

+0 -0

Est-il possible que des pertes dans les fils soient à l'origine de cette perte brutale de puissance ?

En électrotechnique, je dirais oui ; c'est pour cela qu'on augmente la section des câbles lorsque leur longueur augmente.

Il y a des abaques, mais tu peux calculer la résistance de ton conducteur avec

$$R=\rho \cdot \frac{l}{S}$$
avec $l$ en m et $S$ en $m^2$ et calculer ainsi la chute de tension au bout du câble, en admettant une chute de tension maximum de 5% de $Un$ par exemple

En gros, si tu augmente la résistance de tes conducteurs (fil trop long de section trop faible, mauvaise soudure …) ça pourrait peut-être donner le même genre de phénomène, mais je n'ai pas l'expérience pour l'affirmer avec ce genre de montage.

+0 -0

Salut, Tu utilise une pile ou une batterie? Car une simple pile n'est pas du tout adaptée pour une telle utilisation. (Résistance interne trip importante), ce qui pourrait expliquer les chutes de tension.

Les détails font la perfection, et la perfection n'est pas un détail

+0 -0

Cette réponse a aidé l'auteur du sujet

Salut, comme dis yoyojoss90, une pile n'est pas adaptée, elle ne peut pas délivrer assez de courant.

D'après ce que tu dis,

A l'origine les moteurs étaient alimentés par une batterie de 3,7V et 250mAh

Ça devait être une batterie Li-po (lithium-polymère), qui a typiquement 3.7V par élément. Donc le mieux serait de racheter une batterie Lipo. Ces batteries ont un très bon rapport poids/capacité, et peuvent délivrer par mal de courant.

Essaye de regarder sur la batterie d'origine s'il y a marqué le courant de décharge.
Ça doit ressembler à un truc du genre "10C".
Le courant de décharge est la capacité de la batterie multipliée par ce nombre.
Exemple : 250mAh * 10C = 2.5 Ampères.

Prends ensuite une batterie qui délivre un plus grand courant.

D'ailleurs, tu as mis un tension plus grande, mais les contrôleurs moteur et les moteurs supportent ils bien cette tension ?
Fait attention à ne pas les détruire.

+1 -0

Tu peux commander une LiPo Turnigy en 2S (11.1V) avec suffisamment de couranr de décharge maximal, et un de ces chargeurs pas chers, je crois que Turnigy en a un. Par contre fais super attention à ne pas court-circuiter et à charger ça sur des surfaces ignifugées parce que ces batteries sont potentiellement assez dangereuses et peuvent facilement démarrer des incendies quand elles sont mal utilisées.

+0 -0
Auteur du sujet

C'est exactement cette batterie qui équipait à l'origine le drone : http://www.priceminister.com/offer/buy/623326536/accu-batterie-li-po-3-7v-1s-250mah-502030-avec-connecteur.html?gclid=CNrf9uTE2MkCFROeGwodZRII6Q Mais ils ne donnent pas beaucoup d'info sur cette batterie Le controleur des moteurs peut supporter jusqu'a 12 V ( c'est un shield adafruit), cependant les moteurs je ne pense pas, c'est pour cela que j'essaye de trouver une solution pour garder une alimentation de 4-5 V mais augmenter l'intensité car apparement cela ne suffit pas à alimenter les 4 moteurs à la fois @Grimur, penses tu qu'une batterie de 11 V ne risque pas d'endommager les 4 moteurs DC alimentés à l'origine par du 3,7 V ?

+0 -0
Auteur du sujet

Le problème c'est qu'elle n'est pas assez puissante,je trouve ça très bizarre mais comme j'ai refais tous les branchements et que j'ai allongé la longueur des fils ne manière non négligeable peut-être qu'il y a des pertes

+0 -0

Pour la puissance, il faut aussi penser que la puissance de ce genre de drone est calculée juste pour son poids, et sachant tu as rajouté un arduino dessus, c'est normal qu'il demande plus de puissance.

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte