Chez Progressive Automations, nous proposons de nombreuses options pour contrôler votre Vérin linéaire. Des solutions simples comme les interrupteurs à bascule, à nos contrôleurs plus avancés tels que le boîtier de commande Wi‑Fi PA-35, nous offrons de nombreuses options plug-and-play. Cependant, il arrive que les exigences d’un projet et les besoins des clients soient un peu plus uniques que ce que ces options permettent. C’est là que les microcontrôleurs deviennent de véritables alliés. Dans cet article, nous verrons comment nous pouvons modifier la position d’un Actionneur en fonction de la quantité de lumière présente, vous offrant ainsi une forme de contrôle du Vérin linéaire à la fois unique et avancée.
De quoi aurez-vous besoin ?
Pour ce projet, il vous faut un Arduino (ici un Arduino Uno), une résistance dépendante de la lumière (aussi appelée photorésistance ou LDR), une résistance de 10 kΩ, un module relais 2 canaux et, bien sûr, un Actionneur.
Choisir votre Vérin linéaire
Dans de nombreux cas, nous utiliserons ce type de déclencheur pour des applications extérieures, comme un Actionneur de porte de poulailler alimenté à l’énergie solaire. Vous devez tenir compte de l’environnement dans lequel votre Actionneur fonctionnera et vous assurer qu’il possède le bon Indice de protection (IP). Pour vous y aider, vous trouverez notre guide des indices IP ici. Il faut également vous assurer de choisir la bonne longueur de Course et la force nominale pour votre Actionneur. Pour obtenir de l’aide, vous pouvez vous référer à l’un de nos nombreux autres articles de blog ici. En somme, le type d’Actionneur que vous utilisez dépend entièrement de votre application et de la rudesse de l’environnement.
Câblage

Le câblage de ce projet d’Actionneur alimenté par l’énergie solaire est le suivant :
LDR vers Arduino
- Fil LDR 1 – Masse
- Fil LDR 2 – 5 V (via résistance de 10 kΩ)
- Fil LDR 2 – broche analogique 0
Module relais vers Arduino
- VCC – 5 V
- GND – GND
- IN1 – broche 2
- IN2 – broche 3
Module relais vers alimentation et Actionneur
- +12 V vers NC1 (borne normalement fermée sur le premier relais)
- -12 V vers NO1 (borne normalement ouverte sur le premier relais)
- NC1 vers NC2
- NO1 vers NO2
- COMMON1 vers Fil d’Actionneur 1
- COMMON2 vers Fil d’Actionneur 2
Avec un module relais 2 canaux, les instructions ci‑dessus indiquent comment câbler ce projet. C’est une configuration très simple, facile à coder, mais elle a ses limites. Si vous souhaitez ajouter des fonctions comme le contrôle de la Vitesse ou une Rétroaction de force, vous pouvez envisager d’utiliser plutôt le shield pilote Moteur MegaMoto. Plus d’infos à ce sujet ici.
Programmation de votre Actionneur alimenté par l’énergie solaire
La fonctionnalité du code fourni se veut la plus simple possible. Lorsqu’il y a de la lumière, l’Actionneur se rétracte. Dans l’obscurité, l’Actionneur s’étend. Pour éviter que l’Actionneur ne soit déclenché involontairement (si quelqu’un passe et bloque la lumière, ou si un éclair est capté par le capteur), le changement de l’obscurité à la lumière (ou inversement) doit durer au moins trente secondes. Ce délai peut être modifié facilement en changeant la valeur de « const int triggerDelay ».
La quantité de lumière présente est déterminée en lisant la tension allant vers la broche analogique 0. Plus il y a de lumière, plus la résistance de notre résistance dépendante de la lumière diminue. Comme nous utilisons une résistance de pull‑up, la tension baissera à mesure que l’environnement s’éclaircit. L’Arduino lit cela comme une valeur entre 0 et 1028. Si vous souhaitez modifier la valeur à laquelle l’état de l’Actionneur change, il suffit d’ajuster la valeur de « const int threshold » (définie à 650 par défaut).
Ce code remplit sa mission tel quel, mais l’avantage de ce type de projet est qu’il y a toujours de la place pour l’amélioration. N’hésitez pas à modifier ce code pour l’adapter au mieux à votre application de Vérin linéaire alimenté par l’énergie solaire ! Quelques exemples de fonctions supplémentaires qui pourraient être ajoutées : un délai d’expiration pour empêcher l’Actionneur de continuer sa Course s’il n’atteint pas l’Interrupteur de fin de course dans un laps de temps donné ; une détection de collision via la surveillance du Courant consommé (nécessiterait un pilote MegaMoto au lieu de relais) ; ou encore une fonction permettant de positionner l’Actionneur à différentes positions en fonction de la quantité de lumière (pas seulement totalement ouvert ou totalement fermé).
/*The hardware required for this project is an Arduino, one light dependant resistor (LDR), a 10K resistor and a 2-channel 5V relay module.
Its purpose is to control the extension and retraction of an actuator based on the amount of light that is present.
Written by Progressive Automations 12/02/2020
*/
#define relay1 2 //relay used to extend actuator
#define relay2 3 //relay used to retract actuator
int ldr; //analog reading from light dependent resistor
int countOpen = 0;//counts how long sensor is recieving light
int countClose = 0;//counts how long the sensor is not recieving light
const int triggerDelay = 3000;//number of seconds x 100 to wait after lighting changes before triggering actuator
const int threshold = 650;//
void setup() {
Serial.begin(9600);
pinMode(relay1,OUTPUT);
pinMode(relay2,OUTPUT);
digitalWrite(relay1,HIGH);
digitalWrite(relay2,HIGH);
}
void loop() {
checkSensor();
}
void checkSensor()
{
ldr = analogRead(0);
Serial.println(ldr);
if(ldr > threshold)//if reading is greater than threshold, start counting
{
countOpen++;//count how long the sensor is not recieving light
delay(10);
}
else
{
countOpen = 0;//reset count to zero if statement is not true
}
if(countOpen > triggerDelay)// wait x seconds before triggering actuator
{
extend();//extend actuator
}
if(ldr < threshold)//if reading is less than threshold, start counting
{
countClose++;//count how long sensor is recieving light
delay(10);
}
else
{
countClose = 0;
}
if(countClose > triggerDelay)// wait x seconds before triggering actuator
{
retract();
}
}
void extend()
{
digitalWrite(relay1,LOW);
digitalWrite(relay2,HIGH);
}
void retract()
{
digitalWrite(relay2,LOW);
digitalWrite(relay1,HIGH);
}
Conclusion
Voilà ! Notre méthodologie pour utiliser un capteur de lumière pour Vérin linéaire afin de contrôler votre Actionneur à l’aide de l’énergie solaire. Nous savons que chaque application est différente, vous pouvez donc avoir des questions concernant ce projet, ou des modifications à soumettre à notre équipe d’ingénieurs. Aucun problème : envoyez‑nous un e‑mail à sales@progressiveautomations.com, ou appelez‑nous gratuitement au 1‑800‑676‑6123.