dimensionner motoreducteur

Bonjour,

Je crée un portillon "guillotine" pour permettre à mes animaux soit de passer soit de les arrêter sur un quai.
Pour l'instant, ça marche avec une corde tendue à un bout, et que j'actionne, et à l'autre bout, 2 poulies en haut et une en bas fixée au portillon pour faire un palan et soulager l'effort.
Je veux remplacer ça par deux boutons (un montée, et un descente), qui seront à une distance de 5 metres environ de l'arduino qui lui pilotera le motoréducteur dans les 2 sens (avec un module L293D)et deux fin de course haut et bas, pour arrêter la session.
Le code auquel j'ai abouti est le suivant, il fonctionne sur Bredboard. Au passage, merci au créateur de la librairie "simpleBouton.h".

#include "simpleBouton.h" // déclaration librairie

const uint8_t bout1 = 8;//bouton poussoir
boutonAction bouton(bout1); 
boolean finCourHaut = 10; // fin de course haut
boolean finCourBas = 9; // fin de course bas
#define ENABLE 13  // broche Enable sur L293D
#define DIRA 12    // broche In1 sur L293D
#define DIRB 11    // broche In2 sur L293D




void simpleClic() // action à réaliser si on clique une fois  sur bout1

{

  Serial.println("simple clic");
  do {
    descendre(); // fonction descendre
    Serial.print("descendre");
  }
  while(digitalRead(finCourBas) == 1) ; // tant que le fin de course bas est 1

    stop();
  Serial.print("stop");    
} // arrete le moteur quand fin de course bas est 0





void doubleClic() // action à réaliser si on fait un doucle clic

{
  Serial.println("double clic");
  do {
    monter();  // fonction monter
    Serial.print("monter"); 
  }

  while(digitalRead(finCourHaut) == 1); // tant que fin de course haut est 1





    stop();

}
void setup()
{
  Serial.begin(9600);
  bouton.attacher(simpleClic, doubleClic);
  pinMode(ENABLE, OUTPUT);
  pinMode(DIRA, OUTPUT);
  pinMode(DIRB, OUTPUT);
  pinMode(finCourHaut, INPUT_PULLUP);
  pinMode(finCourBas, INPUT_PULLUP);

}

void loop()
{
  bouton.actualiser();
}

void descendre()  {

  digitalWrite(ENABLE, HIGH);
  digitalWrite(DIRA, HIGH);
  digitalWrite(DIRB, LOW);


}

void monter()  {
  digitalWrite(ENABLE, HIGH);
  digitalWrite(DIRA, LOW);
  digitalWrite(DIRB, HIGH); 
}

void stop()  {

  digitalWrite(ENABLE, LOW);
  digitalWrite(DIRA, LOW);
  digitalWrite(DIRB, LOW);
}

Voilà, je débute, donc merci de votre indulgence.
Je précise que je n'ai pas besoin de travailler sur batterie ou solaire, j'ai le 220 à côté.

Mes questions sont les suivantes:

  • Comment dimensionner mon motoréducteur, sachant que la "barrière/planche" à soulever fera environ 1kg, à lever sur 150cm environ, et en 15 secondes environ. Le motoreducteur serait connecté à une tige metallique autour de laquelle s'enroulerait le fil qui soulève/lève.
    J'ai vraiment cherché sur le net, et je ne trouve pas de formule qui me donne un réponse claire, j'ai surtout trouvé des débats de gens qui se contredisent.....

  • Si mes boutons poussoirs sont à 5 mètres de l'Arduino, est ce que l'impulsion sera détectée, et sinon, quelle serait la solution à envisager.

  • Dans mon cas, vaut il mieux des fins de course magnétiques ou mécaniques ?

  • Une fois ma planche arrivée en haut et le moteur arrêté, est ce qu'elle ne risque pas de redescendre toute seule ?

Pour soulever une porte il faut une poulie, donc tout dépend du diamètre de cette poulie et de la vitesse de déplacement.
Exemple : un moteur ayant un couple de 100mNm à 100 tr/mn.
Si l'on convertit cette valeur de couple en kg.cm on obtient un peu plus de 1kg.cm.
Le moteur pourra soulever au maxi 1Kg avec une poulie de 1cm de rayon.
La porte se déplacera de 3.14 cm par tour donc 314cm par minute.

Oui mais si tu utiles un moteur avec une poulie de sortie avec 10 dents (c’est un exemple) et si au niveau du portillon tu choisi une poulie avec 100 dents , soit un rapport entre le nombre de dents de 10.

  • il faudra faire 10 fois plus de tours avec le moteur
  • tu obtiendra un couple 10 fois plus fort au niveau du portillon.

La solution sera un compromis entre la vitesse de rotation du moteur, le couple du moteur, le couple nécessaire pour manœuvrer le portillon, la vitesse à laquelle le portillon doit se fermer.

Je pense que la première des choses à faire est de regarder quel est le rapport min entre les dents (ou les diamètres avec des poulies lisses, c’est la même notion exprimée différemment) pour que le portillon se manœuvre sans difficulté.

Le motoreducteur serait connecté à une tige metallique autour de laquelle s'enroulerait le fil qui soulève/lève.

J'ai la nette impression que le fil est simplement attaché au portillon, donc il n'y a qu'une seule poulie (tige metallique), celle du moteur.
La difficulté est que sur 1,50m le fil va s'enrouler sur la poulie, éventuellement sur plusieurs épaisseurs, donc modifier le diamètre, sauf si le fil est fin.
Donc il manque deux informations : diamètre de la poulie + diamètre du fil.

Oui, en effet, je nai pas été clair. Aujourd'hui, il y a 3 poulies, 2 en haut, une en bas + un point d'attache en bas, ce qui me permet de soulever avec moins d'effort.
Je viens de calculer et ça ferait beaucoup trop de ficelle à enrouler avec ce système, donc on va rester sur une seule poulie, la tige d'enroulement, mais je ne connais pas encore le diamètre.
Imaginons que ce soit une tige filetée de 16mm et une ficelle de 3 mm. Il va effectivement y avoir des surepaisseurs de fil au centre, mais seulement 30 tours. Quelle marge faut il prendre en matière de couple ?

Tout dépend de la qualité de guidage, mais 50% me paraît un minimum.

Ensuite en fonction du moteur il est possible de réduire sa vitesse, et son couple par la même occasion, en commandant le L293D en PWM.
Il vaut mieux éviter les moteurs trop petits, même s'ils semblent suffisants :

Fragiles et difficiles à fixer (vis de 1,6mm), axe de 3mm.

Ceux-ci (JGA25-370) sont plus robustes. Ils ont une puissance de 5W :

Il faut simplement choisir la vitesse du moteur en fonction de la vitesse de déplacement désirée.

https://www.openimpulse.com/blog/jga25-370-gearmotor-selector/

Super, merci beaucoup ! Vu le prix, on ne va pas prendre un truc mesquin. IL va falloir que ça fonctionne 8 fois par jour et 365 jours par an !

Du coup, je reposte mes autres questions qui risquent d'avoir été mise de côté:

  • Si mes boutons poussoirs sont à 5 mètres de l'Arduino, est ce que l'impulsion sera détectée, et sinon, quelle serait la solution à envisager.

  • Dans mon cas, vaut il mieux des fins de course magnétiques ou mécaniques ?

  • Une fois ma planche arrivée en haut et le moteur arrêté, est ce qu'elle ne risque pas de redescendre toute seule ?

  • Si mes boutons poussoirs sont à 5 mètres de l'Arduino, est ce que l'impulsion sera détectée, et sinon, quelle serait la solution à envisager.

il n'y a aucune raison que les impulsions ne soient pas détectées, à partir du moment où les résistances de pull-up ou pull-down ont des valeurs suffisamment faibles. Éviter plusieurs MΩ par exemple.

  • Dans mon cas, vaut il mieux des fins de course magnétiques ou mécaniques ?

Tout dépend de la fiabilité, et de la sensibilité à l'humidité.
Dans tous les cas un contact REED est préférable, car il est étanche.

  • Une fois ma planche arrivée en haut et le moteur arrêté, est ce qu'elle ne risque pas de redescendre toute seule ?

Tout dépend du rapport de division du moto-réducteur, et du poids.
Un moteur 600 tours / minute aura plus de chance de laisser redescendre la porte qu'un moteur 60 tours / minute.

Bonjour,
Concernant le problème de redescente. Tu pourrais utiliser un système de vis sans fin, ce système et dit irréversible si l'angle de l'hélice et petit.

Et pourquoi pas des poulies avec courroie crantée, Il n’y aura rien à enrouler.
Réversibilité :
Un système démultiplié est réversible côté moteur. La charge ne peut peut pas l’entraîner.
Si le couple moteur est multiplié par le rapport de de réduction , le couple exercé par la charge sur le moteur est lui divisé par le rapport de réduction.

Et pourquoi pas des poulies avec courroie crantée, Il n'y aura rien à enrouler.

Mon système de porte de poulailler à courroie crantée :

Par contre les 1,5m posent un problème. Je suppose qu'il ne s'agit pas de poules.
Il faut une sacré courroie, et de la hauteur disponible.
Mais ceci dit, le système de palan actuel doit aussi prendre de la place.

Alors, pour le système de moteur à vis sans fin, ça a l'air bien aussi, mais bien plus cher. A voir peut être dans un deuxième temps.

Pour le système de courroie, c'est sans doute très bien aussi (j'avais déjà parcouru ton blog et notamment la partie sur le poulailler), mais en effet, il me faudrait une hauteur sous toit supérieure (il s'agit d'une salle de traite fermée, à l'intérieur du bâtiment), d'autre part, les animaux en question sont des chèvres, animal peu respecteux de quoi que ce soit, et donc, il me faut un système qui puisse être éventuellement malmenée sans qu'il y ait de casse). en plus, il faut aussi que je passe sous la barrière levée en fin de traite (d'où les 150 cm), sans devoir ramper car je me fais vieux.
Le système actuel est composé d'une planche d'OSB qui doit faire 1m de large par 0.6 de haut, et il y a bien entendu l'aller retour des ficelles du mouflage au milieu du passage. Evidemment, si elles voulaient, elles pourraient sauter par dessus sans problème quand elle est baissée, mais elles ne le font pas(ou rarement, quand ce sont des nouvelles), car elle connaissent la fonction de cette barrière. Si elle est levée, elles savent qu'elles mangent sur le quai de gauche, si c'est baissé, c'est à droite, sur le quai où elles se trouvent. et c'est la première chèvre qui donne le La, les autres suivent.

Question sur les interrupteurs Reed. N'importe quel aimant fait l'affaire pour déclencher le contact ?

Pour les resistances PULL_UP des contacteurs, ce seront celles de l'Arduino. J'avais peur que la longueur de fil soit une source de parasites préjudiciable, d'où ma question.

Question sur les interrupteurs Reed. N'importe quel aimant fait l'affaire pour déclencher le contact ?

J'ai décroché sur l'utilisation des relais reeds (ILS) je ne sais plus à quoi ils servent dans le projet.
Ils existent en ampoule nue, un aimant est nécessaire pour les actionner.
Ils existent aussi avec un bobinage et souvent avec la diode de roue libre et s'utilisent comme un relai classique.

Pour le motoréducteur, personnellement, je prendrais un moteur d'essuie-glace (de récupération) avec sa réduction et j'adapterais dessus un tambour pour avaler le câble.
Je pense que c'est moins de travail que de faire une platine pour monter un moteur et sa réduction + trouver une boite + ..... En plus c'est déjà dans un boitier étanche ce qui est plutôt bien dans un endroit ou il doit y avoir de la poussière.

@ 68tjs Les Reeds, ça serait pour faire des fins de course.

@ fdufnews oui, en effet, ça me parait être une bonne idée. Je vais aller voir à la casse. Qu'appelles tu un tambour pour avaler le cable ? le concept m'échappe.

Quand je parle de contact REED :

Je pense que n'importe quel aimant peut faire l'affaire. Il faut pouvoir le fixer.

les animaux en question sont des chèvres, animal peu respectueux de quoi que ce soit

J'ai eu deux chèvres dans la passé, et la remarque ma paraît peu exacte. Je dirais plutôt que les chèvres sont joueuses, et elles essaient de manger un peu n'importe quoi. Le mécanisme doit absolument être hors de leur portée sinon elles vont le grignoter..

Pour les resistances PULL_UP des contacteurs, ce seront celles de l'Arduino. J'avais peur que la longueur de fil soit une source de parasites préjudiciable, d'où ma question.

Au pire on peut ajouter des résistances de pullups plus faibles, si l'environnement est bruité électromagnétiquement parlant.

Attention au moteur d'essuie-glace. Ces engins consomment en général 2A.
Un L293D ne suffira pas à le piloter.

cabri78:
Qu'appelles tu un tambour pour avaler le cable ? le concept m'échappe.

Une bobine sur laquelle va s'enrouler le câble (comme sur un treuil).

Merci à tous pour vos réponses. Je pense que j’aurais encore des questions, mais je vais déjà essayer de décanter tout ça.