Durée rotation moteur DC

Bonjour à toute la communauté

J'ai besoin d'alimenter un moteur DC pendant une certaine durée, dans un sens puis dans l'autre.

Le script simple pour les 2 fonctions est le suivant :

void Debobinage() {
  digitalWrite(DirEnr, LOW);
  digitalWrite(DirDer, HIGH);
  digitalWrite(Moteur, HIGH);
  delay(DureeF);
  digitalWrite(Moteur, LOW);
  Serial.println("Porte ouverte");
  Serial.print("Duree = "); Serial.println(DureeF);
  EtatPorte = 'O';
}

void Embobinage() {
  digitalWrite(DirEnr, HIGH);
  digitalWrite(DirDer, LOW);
  digitalWrite(Moteur, HIGH);
  delay(DureeF);
  digitalWrite(Moteur, LOW);
  Serial.println("Porte fermee");
  Serial.print("Duree = "); Serial.println(DureeF);
  EtatPorte = 'F';

Ce moteur fait monter et descendre un fil. Au bout de quelques enroulement/déroulement, il y'a décalage, le fil finit par descendre trop bas et donc remonter moins haut. Je pense que le moteur n'enroule pas autant qu'il déroule (ou bien il déroule plus qu'il n'enroule ;-).

Quelqu'un aurait il un explication à ce problème sur ce script tout bête?

Thanks

Ben c'est normal non ?
En montant, tu luttes contre la gravité et en descendant elle t'aide. Il te faudra des fin de course ou compter les tours pour réaliser ce que tu veux.

achess:
Ben c'est normal non ?
En montant, tu luttes contre la gravité et en descendant elle t'aide. Il te faudra des fin de course ou compter les tours pour réaliser ce que tu veux.

+1

tu veux dire que tout ça c'est de la faute de Newton? :wink:

en fait je parle pas de dérouler 300 mètres de fil (ce qui pourrait générer du fait du manque de précision du moteur des différences de longueur) mais juste quelques centimètres, une 20ene environ, ça doit
faire 4 ou 5 tours de moteur. De plus au bout du fil, pour l'instant y'a un poids de quelques grammes.
Pourtant j'ai environ 3 ou 4 cm de plus à chaque enroulé/déroulé. Je trouve ça énorme comme différence.
J'ai pourtant connecté le moteur à un L293D pour une gestion simplifiée et précise du moteur mais.... pas top.

En fait j'aimerais utiliser un moteur DC (et non un pas à pas) et simplifier le montage en évitant de déployer tout
un tas de capteur de fin de course. Je souhaite utiliser un timing tout simplement, timing utilisé donc pour gérer le déroulage/enroulage. Mais je commence à penser que je risque, sur la durée, d'avoir un décalage imprévisible et ingérable...

Avec un moteur DC on a aucune précision et aucune reproductibilité. Si jamais la charge change, ce sera pire. Tout au plus on pourrait n'avoir qu'un seul capteur en espérant que les temps sont voisins (on monte jusqu'au capteur, on descend un temps prédéterminé, mais c'est du bricolage.

Bien souvent un moteur DC et deux fins de course c'est mieux qu'un pas à pas. Le pas à pas s'avère utile si on a plusieurs points d'arrêt.

Bonjour et merci pour cette réponse constructive.

J'avoue, j'avais négligé l'imperfection du moteur DC. Sur Proteus évidement, ces défauts ne sont pas visibles mais une fois le montage réalisé en "vrai", là, on se rend compte à quel point la théorie et la pratique sont différentes. Je voulais faire un système simple pour un montage simple (car d'après moi moins y'a de composants moins y'a de risques de pannes) et éviter les capteurs mais je vais devoir y passer.

Merci pour ton aide.

Merci pour ton aide.

Nos sommes plusieurs...

Bonne suite.