Pilotage de vérin électrique

Bonjour à tous,

J'essaie de piloter un vérin électrique via un driver pour moteur pas à pas DM556T. Je souhaiterai que le vérin rentre et sorte 10 fois. Voici le code (je l'ai déjà utilisé pour piloter un moteur pas à pas et ça fonctionnait).

int tour = 400;

void setup() {
  pinMode(2, OUTPUT); // broche 2 reliée au DIR+
  pinMode(3, OUTPUT); // broche 3 remiée au PUL+
  Serial.begin(9600);
}

void loop() {
  
  for(int i = 0; i< 10*tour; i++) {
    Serial.print(i);
    
   
     digitalWrite(2, HIGH);
     digitalWrite(3, HIGH);
     delay(200);

     digitalWrite(2, HIGH);
     digitalWrite(3, LOW);
     delay(500);
  }
  
  delay(10);

  while(1) {
    }
  }

Mon vérin s'active bien et fait ses sorties et entrées bien plus de 10 fois. J'ai essayé plein de codes différents et aucun ne fonctionne.

Hello ! I noticed this error and I changed in i < tour but when I looked at the console I realized that my i is growing much faster than the movements of my actuator. i gets to 10 before my actuator has completed its 10 cycles.

I have modified my code by taking into account your advice and it is in the following form:

int tour = 400;

void setup() {
  pinMode(2, OUTPUT); // broche 2 reliée au DIR+
  pinMode(3, OUTPUT); // broche 3 remiée au PUL+
  Serial.begin(9600);
}

void loop() {
  
  for(unsigned long i = 0; i < 10L*tour; i++) {
    Serial.print(i);
    
   
     digitalWrite(2, HIGH);
     digitalWrite(3, HIGH);
     delay(200);

     digitalWrite(2, HIGH);
     digitalWrite(3, LOW);
     delay(200);
  }
  
  delay(10);

  while(1) {
    }
  }
 

  

However my actuator keeps retracting and going out more than 10 times

Bonjour @siete2000 et @anon56112670

:exclamation: Sur ce forum francophone merci de bien vouloir utiliser la langue française pour les échanges !

alternative : échanger en anglais sur l'un des nombreux sous-forums anglophonesf

10 * tour = 10*400 = 4000 donc un int convient.

Je ne comprends pas ton opération. Si tu fais une boucle de 4000 tours, il est normal que ton vérin sorte et rentre 4000 fois. Essaie plutôt avec 10, tout simplement.

J'ai changé le 10*tour en juste 10 et en fait la boucle for s'incrémente plus rapidement que mon vérin ne rentre et ne sort. Quand i atteint 9 mon vérin n'a fait que 1.5 cycles.

Crois-tu que le vérin a le temps de se déployer en 200ms?
Et d'ailleurs, est-ce que le vérin utilise un moteur pas-à-pas?

When originally posted, this was in the "installation and troubleshooting" section of the anglophone forum

I misread "tour" as 4000, so have now deleted my misleading reply, and apologise for this.

You're welcome.

en effet 200ms dans l'absolu c'est court. J'ai tenté la méthode expérimentale en mesurant le temps que met le vérin pour faire 10 cycles et en comptait le nombre d'incrémentations de i nécessaires pour faire 10 cycles. On tombe sur 80 incrémentations dans la boucle for ce qui me permet de faire rentrer et sortir mon vérin 10 fois. En faisant un produit en croix je peux avoir le nombre de cycle désiré mais bon c'est la méthode expérimentale ce n'est pas ce que je recherche !

J'ai regardé dans la doc technique et il n'est fait mention nulle part d'un moteur pas à pas, simplement d'un moteur CC classique. Donc je suppose que le driver DM556T n'est pas le mieux adapté !

Ben oui ....

Il vaudrait mieux prendre un pont en H adapté aux caractéristiques de ton moteur.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.