Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 33

controler un moteur avec arduino uno



  1. #1
    riffmaker

    controler un moteur avec arduino uno


    ------

    Bonjour, j'aimerai controler avec mon arduino un moteur DC ( 3,1V) qui tournerait dans un seul sens. J'aimerais savoir quel transistor je dois utiliser, quelle résistance mettre avant le transistor, et quelle diode de roue libre utiliser ? Merci de vos réponses

    -----

  2. Publicité
  3. #2
    vincent66

    Re : controler un moteur avec arduino uno

    Bonjour !
    Quelle tension en sortie de l'arduino ? Quelle intensité dans le moteur ?
    Vincent
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  4. #3
    riffmaker

    Re : controler un moteur avec arduino uno

    Merci de la réponse, 5V en sortie d'arduino , et je ne sais pas l'intensité dans le moteur :/ comment la mesurer ?

  5. #4
    vincent66

    Re : controler un moteur avec arduino uno

    Avec un ampèremètre en série avec le moteur alimenté en 3,1V...
    Vincent
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  6. #5
    riffmaker

    Re : controler un moteur avec arduino uno

    J'ai malheureusement pas d'alim qui délivre 3,1V. Je peux le faire fonctionner à piles ? Si oui, combien de piles je dois utiliser et comment je dois les brancher ? Merci

  7. A voir en vidéo sur Futura
  8. #6
    riffmaker

    Re : controler un moteur avec arduino uno

    J'ai des plus grosses alim sinon , je risquerai de griller le moteur non ?

  9. Publicité
  10. #7
    robin25

    Re : controler un moteur avec arduino uno

    Bonsoir tout le monde, alors si tu veux commander un moteur 3V je te conseil d'utiliser un transistor BD135(NPN) ou un BD 136(PNP), c'est un transistor de puissance avec un gain en courant de 50 environ. Le port de ta carte peux débiter jusque a 40mA cela devrait être largement suffisant pour commander un moteur de 3V^^

    Datasheet du BD135 : http://www.datasheetcatalog.org/data...s/BD139-16.pdf

    Il faut que tu connais le courant maxi demander par ton moteur pour être sur !

    Voici une de mes réalisations pour commander un robot qui possédé 5 moteur 3V, j'ai réaliser entièrement l'interface de puissance entre la carte arduino (mega) et le robot, donc si tu a besoin d'aide n’hésite pas a me contacter :

    Lien vidéo : http://www.youtube.com/watch?v=olv34fU8QyQ

  11. #8
    robin25

    Re : controler un moteur avec arduino uno

    Une fois que tu auras le courant demander par ton moteur nous pourrons t'aider pour dimensionner les composants dont tu auras besoin !
    Dernière modification par robin25 ; 17/04/2012 à 19h49.

  12. #9
    vincent66

    Re : controler un moteur avec arduino uno

    quand tu branches une ampoule 15W sur le réseau 230VAC elle ne grille pas, aussi bien si tu as une alim capable de débiter un très fort courant un essai et mesure de ton moteur ne le fera pas griller...
    Vincent
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  13. #10
    riffmaker

    Re : controler un moteur avec arduino uno

    Alors je l'ai branché sur une alim de pc portable ( 19V-6,3A ) et la tension à ses bornes était de 19V ( normal ? ) et l'intensité en série de 0,07 A. Si je le branche sur une autre alim que j'aurais trouvé d'ici la, il consommera la mème intensité ? Sinon j'ai fait marcher pour rigoler un autre moteur ( récupéré dans un aspirateur de table qui fonctionnait à batteries, mais celles ci sont mortes. Je me rappelle que il était assez puissant ) mais aucune valeur dessus. Quand je l'ai branché à cette alim, déja il était bien plus rapide et puissant que l'autre, mais il semblait être alimenté que la moitié du temps, c'est à dire pendant environ 1 seconde il tournait, et pendant le seconde d'après, rien, et ça se répétait jusqu'a ce que je le débranche. Quelqu'un aurait-il une explication à ca ? Est-ce qu'il nécessite plus de 6,3A et du coup l'alim se met en sécurité ? Merci en tout cas de votre aide

  14. #11
    vincent66

    Re : controler un moteur avec arduino uno

    A 19V il tournera bien plus vite mais très vite il marchera moins bien, grillé... je croyais que tu parlais d'une alim de forte puissance réglable à 3,1V ..!
    Mais cette expérience me laisse penser que sous 3,1V le moteur consomme 11mA
    Vincent
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  15. #12
    riffmaker

    Re : controler un moteur avec arduino uno

    D'accord, donc il marche 1 seconde sur 2 parce qu'enfaite je l'ai grillé ?

  16. Publicité
  17. #13
    PA5CAL

    Re : controler un moteur avec arduino uno

    Bonjour
    Citation Envoyé par riffmaker Voir le message
    Alors je l'ai branché sur une alim de pc portable ( 19V-6,3A ) et la tension à ses bornes était de 19V ( normal ? ) et l'intensité en série de 0,07 A. Si je le branche sur une autre alim que j'aurais trouvé d'ici la, il consommera la mème intensité ?
    Si j'ai bien compris, tu as branché un moteur censé fonctionner sous 3,1V sur une tension d'alimentation six fois plus élevée ??? Si ce moteur est bien ce que tu prétends, c'est du pur suicide !!!

    La tension nominale d'un moteur correspond aux conditions normales d'utilisation, c'est-à-dire dans une situation où la charge mécanique et la vitesse de rotation induisent une consommation de courant thermiquement supportable. Une tension trop importante risque de griller le moteur, même utilisé à vide.

    Si tu veux utiliser correctement un moteur, alors commence par en noter les références et chercher ses caractéristiques constructeur (datasheet). Tu sauras ainsi s'il est adapté à ton usage, et comment l'alimenter correctement. Tu pourras ensuite déterminer le circuit à ajouter à l'Arduino pour le commander.

    Concernant l'Arduino, le courant de 40 mA évoqué plus haut est le courant maximum absolu spécifié par Atmel. Cela signifie que le courant à prévoir pour ton application est inférieur à cette valeur. La valeur pratique est également limitée par le courant maximum par groupe de sorties, et dépend par conséquent de la somme des courants consommés par toutes les sorties du même groupe. Pour l'Arduino Uno, ces limites sont :
    • à l'état bas (IOL):
    - 100 mA sur les sorties correspondant aux entrées analogiques
    - 100 mA sur les sorties numériques 0 à 4
    - 100 mA sur les sorties numériques 5 à 13
    • à l'état haut (IOH):
    - 150 mA sur les sorties numériques 0 à 4 et les sorties correspondant aux entrées analogiques
    - 150 mA sur les sorties numériques 5 à 13

    (NB: selon la version, la sortie 13 peut être déjà chargée par une led tirant plusieurs mA)

    Par ailleurs, la commande en tout-ou-rien d'un moteur implique de pouvoir lui fournir son courant de démarrage Istall (lequel est beaucoup plus élevé que son courant nominal) au travers d'un transistor saturé correctement (IB≈IC/10). Il sera donc probablement nécessaire de prévoir un transistor avec des caractérisques meilleures que celles données plus haut. Mais ce sont les caractéristiques du moteur qui le détermineront.

    Enfin, il sera nécessaire de prévoir une diode de roue libre pour protéger le transistor.
    Dernière modification par PA5CAL ; 18/04/2012 à 08h28.

  18. #14
    riffmaker

    Re : controler un moteur avec arduino uno

    d'accord merci, mais je n'ai pas d'alim de ce type :/ où est ce que je peux en trouver , et quelle intensité doit-elle débiter ? ( car au final, je sais toujours pas l'intensité demandée par mon moteur )

  19. #15
    bricomario

    Re : controler un moteur avec arduino uno

    Bonjour,
    Pascal a écrit : Concernant l'Arduino, le courant de 40 mA évoqué plus haut est le courant maximum absolu spécifié par Atmel. Cela signifie que le courant à prévoir pour ton application est inférieur à cette valeur. La valeur pratique est également limitée par le courant maximum par groupe de sorties, et dépend par conséquent de la somme des courants consommés par toutes les sorties du même groupe. Pour l'Arduino Uno, ces limites sont :
    • à l'état bas (IOL):
    - 100 mA sur les sorties correspondant aux entrées analogiques
    - 100 mA sur les sorties numériques 0 à 4
    - 100 mA sur les sorties numériques 5 à 13
    • à l'état haut (IOH):
    - 150 mA sur les sorties numériques 0 à 4 et les sorties correspondant aux entrées analogiques
    - 150 mA sur les sorties numériques 5 à 13

    Il y a qqchose que je ne saisis pas : 40 mA serait le courant maximum absolu, or on lit à l'état bas des 100 mA et à l'état haut des 150 mA et des sommes de tout cela... Vous pouvez poursuivre vos explications Pascal svp ?

  20. #16
    PA5CAL

    Re : controler un moteur avec arduino uno

    40 mA c'est la limite absolue pour une sortie prise isolément.

    100 ou 150 mA c'est la limite pour l'ensemble des sorties appartenant à un même groupe.


    Par exemple, on peut brancher une led consommant 25 mA [avec sa résistance de protection correctement calculée] seule sur n'importe laquelle des sorties de l'Arduino, parce qu'on ne dépasse pas la limite de 40 mA.

    En revanche, il ne faudrait pas brancher sept leds consommant 25 mA chacune respectivement sur les sortie 5 à 11 de l'Arduino, car la somme de ces courants pour le groupe des sorties 5 à 13 (= 7 × 25 mA = 175 mA) dépasserait les limites que j'ai indiquée plus haut(*). Il faudrait plutôt répartir ces leds entre les différents groupes, par exemple en les branchant sur les sorties 2 à 4 d'une part (courant 3 × 25 mA = 75 mA pour le groupe 0 à 4) et sur les sorties 5 à 8 d'autre part (courant 4 × 25 mA = 100 mA pour le groupe 5 à 13).

    *: on peut retrouver ces valeurs sur la datasheet de l'ATMega328P, dans les notes sous le tableau des caractéristiques électriques.

    Ainsi, si la tolérance des composants utilisés autorise une marge de 5% sur les courants, pour piloter un moteur il serait déconseillé de brancher sur la sortie 5 un transistor consommant 35 mA à l'état haut tandis que les sorties 6 à 13 pourraient dans le même temps être amenées à consommer ensemble plus de 110 mA à l'état haut [110 mA ≈ 150 mA (maxi) – 35 mA (sortie 5) – 5% de marge].
    Dernière modification par PA5CAL ; 21/04/2012 à 08h23.

  21. #17
    aurelienbis

    Re : controler un moteur avec arduino uno

    Citation Envoyé par riffmaker Voir le message
    Bonjour, j'aimerai controler avec mon arduino un moteur DC ( 3,1V) qui tournerait dans un seul sens. J'aimerais savoir quel transistor je dois utiliser, quelle résistance mettre avant le transistor, et quelle diode de roue libre utiliser ? Merci de vos réponses
    Tout d'abord, n'utilise pas les pins Arduino directement comme alimentation. Utilise les en tant que commande uniquement (bonne habitude à prendre).

    Ensuite :

    pinMode(4,OUTPUT)

    Pin 4 : pin 1 de la bobine d'un relais 5V (ou 12V ou 24V si tu sais bricoler un relais)
    Gnd Arduino : pin 2 de la bobine du relais

    Avec ton multimètre, tu trouves 2 pins de ton relais tels que : 3/4 ouvert lorsqu'il n'y a pas de courant dans la bobine, fermé lorsqu'il y en a.
    Tu branches comme suit :
    + Batterie => Pin 3, Pin4 => Moteur, Moteur => - batterie.
    La batterie 3V peut être faite d'une pile, ou de plusieurs piles en série. Ne dépasse pas 4V sous peine de faire cramer ton moteur.
    (Oui, deux piles de 1,5V en série +(-+)- cela fait 3V)

    Si ce n'est pas très clair je te ferai un schéma.

    Avec ça tu contrôles ton moteur en tout ou rien avec la pin 4 depuis ton programme.

    digitalWrite(4,LOW)
    ou

    digitalWrite(4,HIGH)
    Dernière modification par aurelienbis ; 21/04/2012 à 09h53.

  22. #18
    aurelienbis

    Re : controler un moteur avec arduino uno

    Si tu veux contrôler la vitesse de ton moteur, c'est un peu plus chiant.
    Soit tu trouves un transistor de faible gain (1 ou inférieur) mais je n'en ai jamais trouvé, soit tu oublies mon conseil précédent.

    Si tu trouves un trasistor NPN de faible gain :

    pinMode(A4,OUTPUT);

    A4 à la base
    +3,1V de la batterie au collecteur
    Emetteur => Moteur, moteur => 0V

    Il faut une masse commune donc 0V batterie => Gnd Arduino

    Avec ceci tu contrôles ton moteur depuis le programme :

    analogWrite(A4, [0 à 255])

    attention, 255 correspond à 5V, donc arrête toi avant !

    Si tu n'as pas de transistor à faible gain, c'est le plus simple :

    A4 => Moteur, moteur => Gnd

    Mais dans ce cas il faut être certain que le moteur de dépassera pas 40mA, sinon tu risques de cramer ta carte.
    Même chose qu'avant, ne va pas au delà de 3V (soit 150 sur l'échelle de 0 à 255) sinon c'est le moteur qui risque de griller.

  23. Publicité
  24. #19
    nornand

    Re : controler un moteur avec arduino uno

    Bjr:
    je pense qu'il veut connecter sont moteur directement sur la carte, s'il n'a pas d'alimentation de 3,1v comment va t'il faire autrement que les prendre sur la carte ,, donc tout ce qu'il y a autour sert a rien.

  25. #20
    aurelienbis

    Re : controler un moteur avec arduino uno

    La meilleure solution reste la troisième dans ce cas :
    Analogique sans transistor.
    Il n'a besoin que de la carte et du moteur.
    N'oublie pas la diode de roue libre (si tu ne mets rien en sortie de moteur, il n'y aura que très peu d'inertie donc pas forcément besoin de diode de roue libre, mais encore une fois bonne habitude à prendre)

  26. #21
    riffmaker

    Re : controler un moteur avec arduino uno

    Bonjour, tout d'abord merci de vos réponses. D'accord aurelienbis pour le relais, je peux essayer. Les relais ont-ils une limite d'intensité ? J'ai trouvé un autre moteur, je le fait marcher avec 2 piles en série ( donc 3V ), et j'ai mesuré l'intensité en marche, et il consomme 40mA. J'étais intéressé à la base par les transistors car j'en possède ! ( on me les a donné, j'ai cherché les caractéristiques : http://pdf1.alldatasheet.com/datashe...M/2SD1647.html ). A nornand : je comptais pas brancher mon moteur directement sur la carte, mais passer par une alimentation de piles ( dans mon cas, apparemment avec 2 piles en séries, ca pourrait le faire non ? ). Sinon, en diode de roue libre, il faut un modèle particulier ?

  27. #22
    aurelienbis

    Re : controler un moteur avec arduino uno

    Citation Envoyé par riffmaker Voir le message
    Bonjour, tout d'abord merci de vos réponses. D'accord aurelienbis pour le relais, je peux essayer. Les relais ont-ils une limite d'intensité ?
    Avant de cramer un relais il faut y aller (selon le relais cela varie, mais tu peux considérer que 10A passent) ... Aucun souci avec ton moteur.

    Tu me diras si tu arrives à faire fonctionner le moteur comme je te l'ai dit. Sinon je le ferai chez moi et je t'enverrai la vidéo.

  28. #23
    riffmaker

    Re : controler un moteur avec arduino uno

    c'est à dire en le branchant direct sur la carte ?

  29. #24
    aurelienbis

    Re : controler un moteur avec arduino uno

    Oui, attends je vais le faire de suite pour être certain que je ne te raconte pas d'ânnerie.

  30. Publicité
  31. #25
    riffmaker

    Re : controler un moteur avec arduino uno

    J'ai des petites diodes chez moi, n'importe quelle diode peut aller ? Et sinon mon transistor il marcherait ?

  32. #26
    aurelienbis

    Re : controler un moteur avec arduino uno

    Alors je ne peux pas contrôler la vitesse de mon moteur avec la sortie analogique : La tension de seuil de mon moteur est trop élevée.
    Du coup il fonction en tout ou rien (ce doit être un moteur 24V, les variations en dessous de 5V sont trop petites pour que je les voies à l'oeil nu)

    Avec les diodes cela peut fonctionner.

    Avec ton transistor dont le gain hfe est de 10000 tu aurais tu tout ou rien (TOR). A moins que tu travailles avec un moteur qui fonctionne avec plusieurs milliers de volts

    L'avantage de passer par le transistor c'est que si ça crame, c'est le transistor qui grille au lieu de la carte. Et un transistor ça ne vaut rien.
    Dernière modification par aurelienbis ; 21/04/2012 à 14h11.

  33. #27
    riffmaker

    Re : controler un moteur avec arduino uno

    euh, ca veut dire quoi je serais en tout ou rien ? et je m'y connais pas trop en transistor, c'est quoi le gain hfe ?

  34. #28
    aurelienbis

    Re : controler un moteur avec arduino uno

    Je ne peux que t'inciter à faire des recherches sur le sujet.
    T'expliquer comment fonctionnele transistor prendrait beaucoup de temps.
    Je veux bien répondre à des questions plus précises uniquement.

    Pour le coup du tout ou rien : soit le courant passera, soit il ne passera pas. Vu que ton gain est énorme, tu vas passer de 0V au maximum d'un coup.

    Pour un transistor NPN
    Base*Gain = Emetteur , avec emetteur <= collecteur

    Soit tu feras 0V en base*10000 (le gain Hfe) =0V en emetteur
    soit 0,1*10000=1000V ramené à 3V vu que ta base est en 3V.
    Ce qui fait que tu n'auras aucune valeur entre 0 et 3V, donc tu fonctionneras en tout ou rien.
    Dernière modification par aurelienbis ; 21/04/2012 à 19h56.

  35. #29
    PA5CAL

    Re : controler un moteur avec arduino uno

    hFE (pour « Hybrid equivalent circuit parameter for Forward current amplification in common Emitter configuration ») est le gain en courant du transistor pour les petits signaux.

    Ce gain est le rapport entre les variations du courant collecteur IC et celles du courant de base IB. Il ne s'agit pas d'un gain en tension. Dans les conditions de réalisation de ce gain (amplification de classe A), le transistor doit être correctement polarisé et les variations de courant doivent rester faibles pour obtenir un fonctionnement en régime linéaire.

    Mais dans le cas présent, ce gain ne nous intéresse pas (ou du moins pas directement).


    En effet, ici la commande du moteur ne peut pas consister à amplifier un courant continûment variable, en excluant la saturation et le blocage du transistor. Si c'était le cas, il faudrait déjà que l'Arduino fournisse le signal analogique requis, alors que ceux qu''il sait produire directement ne sont que des signaux numériques PWM. Par ailleurs, le transistor serait amené à dissiper autant de puissance que ce que consommerait le moteur.

    Ce qu'il serait préférable de réaliser, c'est un pilotage du moteur uniquement en saturant et en bloquant le transistor, afin :
    - d'éviter que le transistor ne dissipe une puissance inutilement importante (ce qui impliquerait son sur-dimensionnement) ;
    - d'utiliser directement les sorties de l'Arduino en tout-ou-rien (niveaux 0V ou +5V continus) ou en PWM (alternance rapide de niveaux 0V et +5V).
    Une commande en PWM permettrait à l'Arduino de faire varier la vitesse du moteur à volonté. La valeur du gain du transistor n'aurait rien à voir dans l'affaire, tant qu'elle serait suffisante.

    Le blocage du transistor est obtenu en annulant le courant de base, tandis que sa saturation est obtenue en fournissant un courant de base très supérieur à la valeur normalement nécessaire pour générer le courant collecteur. Cette valeur est IB=IC/β , où β est le gain en courant statique du transistor. En pratique, pour saturer un transistor bipolaire simple, on fournit un courant de base IB≈IC/10. Pour saturer un transistor Darlington, on peut s'autoriser à fournir un courant de base beaucoup plus faible (IB≈IC/100).


    Au risque de me répéter, pour commencer la conception sérieuse de la commande du moteur, il faut connaître les caractéristiques de ce dernier, et notamment son courant de démarrage Istall, déterminé expérimentalement ou bien lu dans la datasheet éditée par le constructeur. Les conseils pour choisir le modèle de transistor alors qu'on n'a pas encore déterminé la puissance maximale à fournir me semblent plus que prématurés.

    Par ailleurs, l'utilisation d'une diode de roue libre est obligatoire pour éviter que les surtensions survenant lors de l'interruption du courant IC n'endommagent plus ou moins rapidement le transistor.
    Dernière modification par PA5CAL ; 22/04/2012 à 00h15.

  36. #30
    aurelienbis

    Re : controler un moteur avec arduino uno

    En désactivant et activant la commande du moteur on pourrait régler la vitesse de celui-ci en fonction de la fréquence. Je n'y avais pas pensé. Merci.

Sur le même thème :

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Installation drivers arduino uno
    Par invite2313209787891133 dans le forum Électronique
    Réponses: 6
    Dernier message: 22/04/2012, 11h49
  2. Controler 16 Leds + 2 cadrans 7 segments avec Arduino
    Par Coco Tuning dans le forum Électronique
    Réponses: 11
    Dernier message: 26/02/2012, 06h54
  3. Frequence PWM L6203 Arduino UNO
    Par sani300 dans le forum Électronique
    Réponses: 3
    Dernier message: 26/08/2011, 10h59
  4. LM393 Arduino UNO
    Par sani300 dans le forum Électronique
    Réponses: 13
    Dernier message: 21/08/2011, 19h46
  5. Protection d'un Arduino UNO avec hacheur pour moteur
    Par Phoenix-74 dans le forum Électronique
    Réponses: 19
    Dernier message: 12/08/2011, 16h39