IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Commande d'un moteur pas à pas parmi 12


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Chercheur en sciences cognitives
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en sciences cognitives

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Par défaut Commande d'un moteur pas à pas parmi 12
    Bonjour à tous,
    Je suis chercheur (pas en électronique malheureusement ) et pour une expérience j'ai besoin d'un matériel spécifique, qu'il me faut construire. Je suis vraiment débutante et j'ai vraiment besoin d'un coup de main pour le schéma électronique et les composants nécessaires...

    Fonctionnement :

    Il faut que j'active un seul moteur pas à pas bipolaire sur 12 qui seront connectés (par exemple choisi aléatoirement). Il semble impossible de connecter les 12 directement à l'Arduino mais vu que je n'ai besoin que d'un seul activé à un moment, j'imagine qu'il existe une autre possibilité...
    Ce moteur activé le sera en fonction de la pression exercée sur un capteur de force.

    Infos :
    L'arduino reste connecté au port USB.

    Matériel que je possède :
    Modèle Arduino : Mega
    Modèle capteur force : http://snootlab.com/adafruit/253-cap...force-fsr.html
    Modèle moteur : http://fr.aliexpress.com/item/Mini-l...e-819b57f24d04)

    Il semble qu'il faille un L298 pour gérer le/les moteurs?
    Si l'Arduino est connecté au PC, je ne suis pas obligé de rajouter une alim externe au vu des moteurs?
    Est-ce que quelqu'un pourrait m'aider à réaliser le schéma électronique et déterminer le matériel dont j'ai besoin?
    Niveau programmation en général c'est ok, c'est vraiment l'électronique qui bloque... Merci par avance si vous pouvez m'aider!

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    Salut et bienvenue sur le forum Exzaria,
    Alors, il y a plusieurs choses à dire sur ton projet.

    Citation Envoyé par Exzaria
    Il semble qu'il faille un L298 pour gérer le/les moteurs?
    En effet, il vaut mieux un driver pour piloter un moteur pas à pas et le L298 en est un parmi d'autres. Ici on en voit un autre http://megasimple.free.fr/spip.php?article328, le A4983.

    Citation Envoyé par Exzaria
    Si l'Arduino est connecté au PC, je ne suis pas obligé de rajouter une alim externe au vu des moteurs?
    Le régulateur de tension sur ton Arduino MEGA peut fournir 800mA et un moteur consomme entre 400mA et 200mA d'après les données incompréhensibles de Alixpress !
    D'après eux la tension nominale du moteur est de 4V 5V 12V, ça doit dépendre de l'humeur de celui que le branche bref... j'ai fait la puissance / tension min -> 1.6W / 4V = 400mA au pire.
    Cependant, certain driver demande deux alimentations distincts, une pour l'électronique et une pour le moteur en lui même. La raison est qu'un moteur a tendance a "polluer" son alimentation, ce genre de système créait des appels de courants, des couplages, des oscillations et il est préférable d'avoir une alimentation juste pour lui au risque de voir toutes ces perturbations sur l'alimentation générale et qui alimente aussi le microcontrôleur du Arduino.

    Citation Envoyé par Exzaria
    Il semble impossible de connecter les 12 directement à l'Arduino mais vu que je n'ai besoin que d'un seul activé à un moment, j'imagine qu'il existe une autre possibilité...
    Avec ce genre de shield https://www.adafruit.com/product/1438 tu peux facilement connecter 12 moteurs pas à pas puisque que chaque shield a une adresse. Le Arduino ne s'adresse qu'a un seul shield et donc qu'a un seul moteur à la fois. L'inconvénient c'est que c'est cher et il t'en faut 6 puisque tu peux mettre 2 moteurs pas à pas par carte.
    On pourrait être tenté de prendre un seul shield et faire une espèce d'aiguillage en amont pour piloter un seul moteur en particulier mais c'est plus compliqué qu'il n'y paraît et aucun shield ne sera prévu pour faire ça. Il faudrait faire de l'électronique sur mesure et elle serait complexe pour créer 12 interrupteurs derrière un seul shield. L'idée serait de relier tous les moteurs en parallèle sur le shield sauf que seul un interrupteur serait actif pour ne faire tourner qu'un seul moteur.



    Pour le capteur de force/pression, tu as besoin de précision ?
    Le câblage classique est celui ci (FSR étant le capteur ):

    Il existe une relation simple entre la tension "Analogue Voltage" et les composants formant ce qu'on appelle un pont diviseur de tension.

    Analogue Voltage = (10kohms / (résistance du capteur + 10kohms)) * 5V

    résistance du capteur est donnée par une courbe qui est fonction de la force qu'on applique sur le capteur.

    Pour avoir plus de précision, c'est un pont de Wheaston qu'il faudrait faire mais je ne pense pas que tu souhaites aller jusque là sinon tu aurais choisie un capteur avec un plage de détection différente et moins grandre. C'est une des techniques des "Ohmmètres", R1, R2 et R3 sont des résistances de précision (tolérance à 1%) et choisies en fonction de la valeur de RG (ton capteur) lorsqu'on n'appuie pas dessus. La tension V sur le schéma est proportionnelle aux très faibles variations de pression de ton doigt sur le capteur. Ce montage est très efficace avec un capteur ayant une faible plage de sensibilité.



    Par simple curiosité, ça te servira a quoi exactement ?
    A+

  3. #3
    Membre averti
    Femme Profil pro
    Chercheur en sciences cognitives
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en sciences cognitives

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Par défaut
    Merci beaucoup pour cette explication détaillée! J'y vois bien plus clair...
    Je garde la solution des shields qui est effectivement la plus simple pour un débutant comme moi. Le problème est un peu le cout.
    Pour le capteur de force donc c'est simple. Je vais regarder si j'ai besoin d'un pont de Wheaston en terme de précision.

    Mais je viens de me rappeler un vieux cours d'élec : Est-ce que je ne pourrais pas utiliser un démultiplexeur pour adresser les moteurs sinon?

    Le dispositif servira a stimuler la peau à plusieurs endroits (les moteurs sont linéaires). J'étudie la perception tactile et comment on localiser quel point de la peau est stimulé : par exemple si une bête vous pique le bras, vous allez savoir tout de suite où est dans l'espace le point de la peau concerné. La question est de comprendre comment les cerveau arrive à savoir cela sachant que l on bouge tout le temps!

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Bonjour,

    Citation Envoyé par Exzaria
    Est-ce que je ne pourrais pas utiliser un démultiplexeur pour adresser les moteurs sinon?
    tu n'as qu'une possibilité :
    Tu as autant de ponts en H (les L298 peuvent piloter 1 moteur pas à pas) que de moteurs et les interrupteurs se trouvent avant tes ponts. Le démultiplexeur va donc te servir à sélectionner le pont qui correspond à ton moteur. Tu économises des sorties de ton Arduino.

    Je pense aux line driver (74xx240 par exemple). Je me demande si certains peuvent drainer un courant aussi élevé... Dans ce cas on peut imaginer un L298, 4 drivers de lignes après le pont et activer les 4 sorties nécessaires pour piloter le moteur voulu.

  5. #5
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    Citation Envoyé par Auteur Voir le message
    [...]
    tu n'as qu'une possibilité :
    Tu as autant de ponts en H (les L298 peuvent piloter 1 moteur pas à pas) que de moteurs et les interrupteurs se trouvent avant tes ponts. Le démultiplexeur va donc te servir à sélectionner le pont qui correspond à ton moteur. Tu économises des sorties de ton Arduino.

    Je pense aux line driver (74xx240 par exemple). Je me demande si certains peuvent drainer un courant aussi élevé... Dans ce cas on peut imaginer un L298, 4 drivers de lignes après le pont et activer les 4 sorties nécessaires pour piloter le moteur voulu.
    Très intéressant !
    Par contre le 74xx240 (peu importe la série) ne pourra pas délivrer plus que 20mA.... mais.... tu as trouvé une solution très low cost, si on met les drivers avant les ponts en H. On peut faire peut être encore moins cher en remplaçant les 12 L298 (à 4€ pièces) par 6 ULN2803 (à 0.65€ pièces)
    Voici un schéma :
    Nom : Capture du 2016-06-14 22:00:46.png
Affichages : 1917
Taille : 24,7 Ko
    Toutes les résistances sont simplement là pour la condition du tout premier démarrage et pour fixer des états logiques, leurs valeurs importes peu, 10k ferait très bien l'affaire.
    Le principe est simple, 4 signaux PWM issus de l'Arduino arrivent en même temps sur, ici, 4 drivers 74LS240. Le Arduino décide d'activer un seul des drivers grâce aux signaux MOTEURx. Les autres drivers sont, quant à eux, simplement "éteint".
    Les 4 signaux PWM vont traverser un ULN2803, qui n'est autre qu'un réseau de gros transistors, qui va donner de la pêche aux signaux PWM. Assez de pêche pour pouvoir alimenter des bobines de moteurs.

    Si les signaux PWM ressemblent à ça issus de l'Arduino alors ils ressembleront à la même chose (à une inversion prés) après les ULN2803 mais une tension plus forte (12V dans mon exemple) et un courant bien balaise.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            _           _  
    PWM1 __| |_________| |_____
               _           _
    PWM2 _____| |_________| |_____
                  _           _
    PWM3 ________| |_________| |_____
                     _           _
    PWM4 ___________| |_________| |_____
    Avec cette exemple, normalement le moteur tourne ! Mais le câblage est beaucoup plus conséquent !!!!

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Comment gères-tu les sorties PWM ? Car il faut les activer au bon moment et dans le bon ordre pour que le moteur tourne dans le bon sens.

  7. #7
    Membre averti
    Femme Profil pro
    Chercheur en sciences cognitives
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en sciences cognitives

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Par défaut
    Wow!
    Merci Auteur et Vincent!
    Je vois le principe (même si la mise en pratique va générer des questions ). Si on arrive à un petit prix comme ça ce serait super!
    J'ai quelques questions :
    Pourquoi faut-il une tension plus forte (12vs5V) ?
    Comment on produit les signaux PWM?
    Le schéma est pour 4 moteurs donc je fais *3..?

Discussions similaires

  1. Commande de position sur moteur pas à pas
    Par Marc29 dans le forum LabVIEW
    Réponses: 31
    Dernier message: 22/01/2017, 10h39
  2. Commande moteur pas à pas via port parallèle
    Par -N4w4k- dans le forum Robotique
    Réponses: 9
    Dernier message: 05/04/2012, 00h00
  3. Commande d'un moteur pas à pas
    Par Wikli dans le forum LabVIEW
    Réponses: 2
    Dernier message: 02/12/2010, 03h55
  4. Réponses: 1
    Dernier message: 25/10/2010, 09h17
  5. Commande de déplacement de moteurs pas à pas
    Par ecile dans le forum LabVIEW
    Réponses: 5
    Dernier message: 23/11/2009, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo