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.
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 :
- 1 x MegaMoto Plus
- 1 x Arduino Uno Rev3
- 1 x Vérin industriel mini (PA-09, mais tout vérin linéaire convient)
- 1 x Alimentation (PS-20-12, mais toute alimentation 12 V convient)
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.

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.