Arduino gestion moteur DC avec bouton poussoir

a marqué ce sujet comme résolu.

Bonjour a tous, Je me suis déjà pas mal amusé avec mon arduino, mais là je bloque !!! Je cherche depuis un certain temps à faire un programme pour un tapis roulant (type caisse de magasin) que je souhaite contrôler avec un seul bouton poussoir. Marche avant, arrêt, marche arrière, avec un changement d’état à chaque impulsion.

C’est ni plus ni moins le principe d’un moteur de portail coulissant, sauf sans les photocellules.

J’ai mis un interrupteur de fin de course, mais pas moyen de le faire fonctionner.

En résumé, lorsque j’appuie sur le bouton, le tapis démarre, et doit s’arrêter une fois qu’il arrive en buté, ou si j’appuis de nouveau sur le bouton.

Et lorsque je rappuie, le tapis doit partir en marche arrière.

Actuellement j’ai un arduino uno, et un shield motor, car j’utilise un moteur 12v d’essui glasse de voiture. Il marche bien en avant, et arrière lorsque j’inverse la polarité…

L’interrupteur de buté, j’aimerai qu’il soit brancher sur l’alimentation du moteur, pour qu’en cas de bug du programme, qu’il me casse pas tout…

Si vous avez une idée ou éventuellement un programme qui colle je suis très intéressé.

Merci beaucoup pour vos réponses.

Salut !

L’interrupteur de buté, j’aimerai qu’il soit brancher sur l’alimentation du moteur, pour qu’en cas de bug du programme, qu’il me casse pas tout…

Si ton programme est bien fait, ça ne devrait pas arriver. Pour plus de sécurité, tu peux utiliser une interruption (pense à mettre la sortie de ce capteur sur une broche les supportant). ;)

Si vous avez une idée ou éventuellement un programme qui colle je suis très intéressé.

Qu’attends-tu exactement ? Avec une demande aussi générale, je ne suis pas sur que tu obtiennes une grande aide. Je te suggères d’être plus précis dans ta demande. Si tu cherches un programme tout fait "clé en main" pour ton projet, je ne crois pas que tu aura un grand succès. De plus, tu y perdra la satisfaction de l’avoir fait par toi même. Où en es-tu dans l’avancement de ton programme ? Expose-nous un problème concret, et nous serons en mesure de t’aider. :)

+0 -0

L’interrupteur de buté, j’aimerai qu’il soit brancher sur l’alimentation du moteur, pour qu’en cas de bug du programme, qu’il me casse pas tout…

Si ton programme est bien fait, ça ne devrait pas arriver. Pour plus de sécurité, tu peux utiliser une interruption (pense à mettre la sortie de ce capteur sur une broche les supportant). ;)

rezemika

Pour autant ca me semble une bonne idée ;)

+1 -0

Salut :)

L’interrupteur de buté, j’aimerai qu’il soit brancher sur l’alimentation du moteur, pour qu’en cas de bug du programme, qu’il me casse pas tout…

Si ton programme est bien fait, ça ne devrait pas arriver. Pour plus de sécurité, tu peux utiliser une interruption (pense à mettre la sortie de ce capteur sur une broche les supportant). ;)

rezemika

Pour autant ca me semble une bonne idée ;)

Eskimon

Avec un seul fin de course câblé ainsi, il faut donc une intervention manuelle pour déverrouiller le système. Car si plus de puissance, impossible de faire tourner le moteur pour reculer. Il faut donc 2 fins de course, l’un sur la puissance en dernier recours, et l’autre sur la commande pour arrêter le tapis à sa position avancée (avant l’attaque du 2ème fin de course de sécurité).

L’idée de rezemika me semble bonne pour le fin de course sur la commande (interruption). Sans faire le programme à ta place, si tu incrémentes/décrémentes un compteur à chaque appuie sur le bouton (0 appui -> 1 appui -> 2 appui -> 1 appui -> 0 …) et que tu affectes un mode de fonctionnement à chaque valeur (0 -> avance, 1 -> arrêt, 2 -> recule), tu devrais arriver au mode de fonctionnement que tu souhaites.

+0 -0

Bonjour,

Désolé pour le retard je n’ai pas eu d’alertes pour les réponses.

Je pense que l’histoire d’incrémenter, puis décrémenter est une bonne solution. Je vais essayé de programmer ça. Si je coince, je reviendrait vers vous.

par contre pouvez vous m’expliquer pour l’interruption je ne comprend pas.

Merci beaucoup.

Salut,

par contre pouvez vous m’expliquer pour l’interruption je ne comprend pas.

Tu trouvera des explications détaillées dans la section éponyme du tuto sur Arduino, justement rédigé par Eskimon, juste ici : Les interruptions matérielles.

Toutefois, attention, cette fonction n’est supportée que par certaines broches de l’Arduino, en fonction des modèles. Il faut que tu vérifies lesquelles sur la doc du modèle que tu possèdes.

+0 -0

Bonsoir a tous,

Mon projet avance doucement malgré mon manque de temps en ce moment. J’ai bien réussi a faire l’interruption et l’incrémentation - décrémentation…

Je partagerai mon projet avec photos lorsque j’aurais un plus avancé.

Maintenant j’ai un autre petit souci. Je voulais savoir si il été possible de stopper le processus, si le moteur si pour n’importe quel raison forcer (exemple : blocage du tapis, ou si quelque chose venez coincer les mécanismes…). Je souhaite sécurisé au peu tout ça car le moteur utilisé est très costaud…

Si il y a une demande plus importante de courant par exemple…

Merci pour vos retours…

Salut !

Ce qu’il te faut, c’est un relais thermique, un disjoncteur, ou tout système ayant la même fonction (en pratique c’est un peu plus complexe, j’étaye ça plus loin). Ayant une formation d’électrotechnique, les courants que j’ai l’habitude de calculer sont plutôt de l’ordre de la dizaine d’ampères et au delà (jusqu’au millier), donc mes conseils ne seront pas forcément utilisables "tels quels" pour ton cas précis, un moteur d’essuie-glace consommant relativement peu (qui plus est en 12V). Toutefois, ça pourra te donner quelques pistes, et beaucoup de principes utilisés en industriel sont transposables à ton application. À prendre avec des pincettes, donc.

Si j’ai bien compris, tu cherches à réguler et à surveiller en temps réel le courant consommé par le moteur pour éviter tout problème électrique ? Si oui, alors il te faudra une info cruciale : la consommation nominale de ton moteur pendant un niveau de charge normal, à laquelle tu rajoutera une petite marge de sécurité.

S’il s’agit d’un gros moteur, tu peut utiliser directement un relais thermique à usage industriel, que l’on peut trouver notamment sur Leboncoin pour une trentaine d’euros. Tu as aussi la possibilité de gérer tout cela avec l’Arduino, avec un capteur de courant. Je vais tenter de résumer les deux solutions ici.

Avant toute chose, et pour ne pas être trop redondant, j’ai écris un tuto sur les disjoncteurs domestiques dans lequel j’introduis quelques trucs bons à savoir sur ce domaine : Comment marchent les disjoncteurs ? Je te conseille de survoler la partie sur les disjoncteurs magnéto-thermiques. ;)

Relais thermique

Un relais thermique est un petit appareil qui se "greffe" généralement à un sectionneur ou à un disjoncteur, mais que tu peut aussi utiliser tout seul en soudant ses broches. Ils sont constitués de trois circuits thermiques reliés ensembles (trois car à usage industriel sur réseaux triphasés) qui vont se déformer d’autant plus que le courant qui les traversera sera intense. Si ce courant est trop fort, ils déclenchent un contact que ton Arduino pourra utiliser (via une autre interruption) pour savoir qu’il faut couper le jus au moteur.

Ils ont l’avantage d’avoir (pour la plupart) une option de réarmement automatique qui te permet de ne pas avoir à intervenir pour débloquer le système. Il faut juste attendre quelques minutes que le relais refroidisse. Toutefois, ils ont l’inconvénient de ne pas protéger des court-circuits.

Un relais thermique triphasé (on voit les broches d’entrée en haut)

Tout Arduino

Si tu veux TOUT faire, tu as aussi la possibilité de réaliser toi-même une fonction de contrôle de courant pour l’Arduino. Par contre il faudra là aussi prévoir une petite dépense pour mesurer le courant.

La première solution consiste à utiliser un capteur dédié : c’est fiable et surtout c’est simple, mais ça nécessite un achat en plus. La seconde consiste à utiliser une astuce de la loi d’Ohm : placer une toute petite résistance en série avec le moteur. Puisque $U = R \times I$, connaissant la valeur de la résistance, tu pourra connaître le courant dans le moteur en mesurant la tension aux bornes de la résistance. Si tu prends R=1 Ohm, alors la tension en volts sera égale au courant. Il faut juste adapter selon le courant nominal de ton moteur.

Ensuite, il suffit de vérifier en boucle que le courant (ou la tension qui sera l’image du courant) reste en dessous d’un seuil choisi, et de tout couper sinon. Cette fois, une interruption est hors de propos car il ne s’agit pas d’un signal tout un rien (contrairement au relais qui lui a un contact), il faudra bien une boucle.

L’avantage de cette solution, c’est qu’elle coûte à priori moins cher que la première, et qu’elle peut aussi gérer les courts-circuits modestes.

Bonus : les fusibles et les disjoncteurs

Pour une sécurité maximale, tu peux aussi utiliser un fusible en sus d’une des solutions ci-dessus, dont tu choisira le calibre pour qu’il fonde en cas de court-circuit violent. Tu peux aussi dédier toute la protection à un fusible calibré pile sur la consommation du moteur, mais ça implique d’en avoir un de rechange au cas où. Si tu souhaites recycler un vieux disjoncteur domestique, c’est aussi possible : en revanche il ne protègera que des surintensités, et pas des courts-circuits (cette fonction ne marche qu’en alternatif car elle utilise le principe des champs magnétiques). Aussi l’Arduino ne sera pas au courant de la coupure du moteur, et il continuera à fonctionner "dans le vide", à moins d’y adjoindre un auxiliaire de disjoncteur (un contact qui se déclenche en même temps que lui et qui relaye donc l’info de la coupure). C’est efficace mais ça demande aussi une intervention manuelle pour le déblocage.

J’ai aussi entendu parler de fusibles réarmables en électroniques, mais je ne sais pas ce qu’ils valent exactement pour la coupure des court-circuits (je ne les ai jamais essayé). Si quelqu’un de plus expérimenté que moi les connaît…


Voilà ! :)

Tout dépend donc de tes exigences concernant la remise en marche en cas de problème, et du matériel que tu as à disposition. J’espère t’avoir aidé et être resté compréhensible. Bon courage ! :)

rezemika

+0 -0

Et un polyfuse ce serait pas aussi simple ? https://fr.wikipedia.org/wiki/Fusible_r%C3%A9armable_PTC

Eskimon

J’ai aussi entendu parler de fusibles réarmables en électroniques, mais je ne sais pas ce qu’ils valent exactement pour la coupure des court-circuits (je ne les ai jamais essayé). Si quelqu’un de plus expérimenté que moi les connaît…

Si en effet, mais étant donné que je les ai jamais utilisé ni étudiés, j’ai préféré ne pas trop en parler. Si tu penses qu’ils conviendraient pour la protection contre les surcharges / court-circuits, alors je te fais pleinement confiance et je retire mes propos du message précédent. Étant bien plus habitué aux circuits "haute puissance", mon message était forcément biaisé.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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