How To Control The Timing Of A Linear Actuators Motion

Comment contrôler la temporisation du mouvement d’un vérin linéaire ?

Guest Writer
Guest Writer
PA Engineer

Dans notre dernier article « How To », nous expliquons comment contrôler la temporisation du mouvement d’un vérin linéaire à l’aide d’un microcontrôleur. Microcontrôleurs offrent une grande liberté en matière de commande de mouvement et ceci n’est qu’un exemple parmi une quasi-infinité d’options de commande disponibles. Selon votre application, le projet exemple de cet article peut être ajusté pour répondre à vos besoins, que vous ajoutiez un autre actionneur temporisé ou que vous renforciez l’alimentation pour piloter un vérin linéaire plus puissant, c’est vous qui décidez.

Découvrez tous nos microcontrôleurs pour une maîtrise optimale de votre actionneur !

Commande de mouvement à l’aide d’un microcontrôleur

Un microcontrôleur Arduino sera utilisé pour contrôler la temporisation du mouvement d’un vérin linéaire, mais n’importe quel microcontrôleur conviendra. Cependant, comme nous utilisons un shield, le microcontrôleur doit être compatible. Nous allons vous présenter les différents paramètres que vous pouvez ajuster pour changer la vitesse d’un vérin linéaire.

 

Ce dont vous aurez besoin

Pour cet exemple, nous utiliserons les composants suivants pour contrôler un vérin linéaire :

Parcourez notre gamme complète de vérins linéaires électriques, adaptés à toutes les applications !

Connexion des composants

Maintenant que nous avons notre matériel, il faut tout connecter. Heureusement, les connexions sont simples en utilisant un shield plutôt qu’une carte séparée nécessitant un câblage et une soudure supplémentaires.

Tout d’abord, connectons notre actionneur à notre shield LC-80 MegaMoto Plus en raccordant les deux fils de l’actionneur aux bornes à vis A/B du LC-80. Ensuite, nous devons connecter le LC-80 à notre alimentation, dans ce cas la PS-20-12. Pour ce faire, raccordez les fils positif et négatif de l’alimentation aux bornes BAT +/- du LC-80.

Enfin, nous devons connecter le LC-80 au LC-066, ce qui est aussi simple que d’empiler les cartes l’une sur l’autre, comme montré sur l’image ci-dessous.

 

Photo de microcontrôleurs par Progressive Automations

Choisissez le bon système de commande pour votre actionneur et découvrez notre gamme !


Ajuster le code

Pour prendre le contrôle total du mouvement de notre actionneur, nous allons faire un peu de programmation de vérin linéaire avec notre Arduino. Nous avons préparé un exemple de code qui fait s’étendre puis se rétracter notre actionneur pendant 10 secondes dans chaque sens, pour un cycle de 300 secondes.

//Use the jumpers on the board to select which pins will be used

int EnablePin1 = 13;

int PWMPinA1 = 11;

int PWMPinB1 = 3;

int extendtime = 10 * 1000;  // 10 seconds, times 1000 to convert to milliseconds

int retracttime = 10 * 1000; // 10 seconds, times 1000 to convert to milliseconds

int timetorun = 300 * 1000; // 300 seconds, times 1000 to convert to milliseconds

int duty;

int elapsedTime;

boolean keepMoving;

void setup() {

  Serial.begin(9600);

  pinMode(EnablePin1, OUTPUT);//Enable the board

  pinMode(PWMPinA1, OUTPUT);

  pinMode(PWMPinB1, OUTPUT);//Set motor outputs

  elapsedTime = 0; // Set time to 0

  keepMoving = true; //The system will move

}//end setup

void loop() {

  if (keepMoving) 

  {

    digitalWrite(EnablePin1, HIGH); // enable the motor

    pushActuator();

    delay(extendtime);

    stopActuator();

    delay(10);//small delay before retracting

    pullActuator();

    delay(retracttime);

    stopActuator();

    elapsedTime = millis();//how long has it been?

    if (elapsedTime > timetorun) {//if it's been 300 seconds, stop

      Serial.print("Elapsed time is over max run time. Max run time: ");

      Serial.println(timetorun);

      keepMoving = false;  

    }

  }//end if

}//end main loop

void stopActuator() {

  analogWrite(PWMPinA1, 0);

  analogWrite(PWMPinB1, 0); // speed 0-255

}

void pushActuator() {

  analogWrite(PWMPinA1, 255);

  analogWrite(PWMPinB1, 0); // speed 0-255

}

void pullActuator() {

  analogWrite(PWMPinA1, 0);

  analogWrite(PWMPinB1, 255);//speed 0-255

}

 

Il est important de parcourir le code, ligne par ligne, pour comprendre ce qui se passe. Ce faisant, vous pourrez le personnaliser pour accomplir une multitude d’autres tâches. Pour l’instant, la partie la plus importante est la première section et la boucle d’initialisation (setup), qui se concentre sur l’affectation des broches et le réglage de la vitesse du cycle.

Vous devez configurer les broches sur notre LC-80 pour qu’elles correspondent à la première section du code en réglant les cavaliers (jumpers) sur le LC-80 ou en ajustant le code. Dans ce cas, définissez la broche « Enable » sur D13, la broche « PWMA » sur D11 et la broche « PWMB » sur D3. La broche « Enable » est celle qui alimente et contrôle le moteur et, sans elle, l’actionneur cessera de se déplacer et ne pourra pas être contrôlé. Les broches « PWMA » et « PWMB » contrôlent l’extension et la rétraction de l’actionneur. Nous n’avons pas besoin des broches « Sensor » dans cet exemple, donc ne vous inquiétez pas de faire une sélection à cet endroit.

Le contrôle de la temporisation d’un vérin linéaire est maintenant terminé. Vous pouvez téléverser le code sur l’Arduino en utilisant leur IDE (à télécharger depuis le site d’Arduino). Une fois que votre vérin linéaire s’étend et se rétracte, pourquoi ne pas jouer un peu avec le code ? Essayez d’ajuster le temps d’extension/rétraction dans le code, téléversez-le à nouveau sur l’Arduino et observez la réaction du vérin linéaire. En ajustant ces valeurs dans le code, vous pouvez contrôler la vitesse et la durée totale du cycle de mouvement en fonction de votre application souhaitée.


Conclusion

Ci-dessous, nous avons inclus une vidéo montrant un actionneur temporisé en action. Pour l’exemple vidéo, nous voulions montrer une autre façon de modifier la temporisation : nous l’avons donc fait s’étendre et se rétracter pendant 5 secondes à la fois sur un cycle de 20 secondes.

Comme indiqué précédemment, ceci n’est qu’un exemple de la manière dont vous pouvez modifier le mouvement d’un actionneur à l’aide de nos microcontrôleurs. Si vous avez en tête votre propre méthode de commande personnalisée, vous pouvez faire concevoir un système de commande spécifiquement selon vos exigences sur mesure avec l’aide de notre talentueuse équipe d’ingénierie. Elle vous guidera tout au long du processus et s’assurera que vous avez un contrôle total sur vos unités. Si vous souhaitez en savoir plus sur le processus de commande personnalisée, consultez notre page de commande personnalisée.