Chez Progressive Automations, nous proposons de nombreuses options pour la commande de vos actionneurs linéaires. Des solutions simples comme les interrupteurs à bascule à nos boîtiers de commande plus avancés pour la gestion de plusieurs actionneurs, nous offrons un large choix de solutions prêtes à l'emploi. Cependant, les exigences des projets et les besoins des clients sont parfois plus spécifiques que ce que ces options peuvent offrir. C'est là que les microcontrôleurs prennent tout leur sens. Dans cet article, nous verrons comment modifier la position d'un actionneur en fonction de la luminosité ambiante, vous offrant ainsi une forme unique et performante de commande d'actionneurs linéaires.
De quoi aurez-vous besoin ?
Pour ce projet, nous avons besoin d'un Arduino (dans ce cas, un Arduino Uno), d'une résistance dépendante de la lumière (également appelée photorésistance ou LDR), d'une résistance de 10 kΩ, d'un module relais à 2 canaux et, bien sûr, d'un actionneur.
Choisir votre actionneur 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 solaire. Il est essentiel de tenir compte de l'environnement dans lequel votre actionneur fonctionnera et de vérifier qu'il possède l'indice de protection IP approprié. Pour vous aider, consultez notre guide des indices IP ici. Il est également important de choisir la course et la force nominale adaptées à votre actionneur. Pour plus d'informations, vous pouvez consulter l'un de nos nombreux articles de blog ici. En résumé, le type d'actionneur que vous utilisez dépend entièrement de votre application et des conditions environnementales.
Câblage

Le câblage de ce projet d'actionneur solaire est le suivant :
LDR vers Arduino
- Fil LDR 1 – Masse
- Fil 2 de la LDR – 5 V (via une résistance de 10 kΩ)
- Fil LDR 2 – Broche analogique 0
Module relais vers Arduino
- VCC – 5V
- GND – GND
- IN1 – Broche 2
- IN2 – Broche 3
Module relais vers alimentation et actionneur
- +12V à NC1 (borne normalement fermée du relais un)
- -12V à NO1 (borne normalement ouverte du relais 1)
- NC1 à NC2
- NO1 à NO2
- COMMUN1 vers le conducteur 1 de l'actionneur
- COMMON2 vers le fil de l'actionneur 2
En utilisant un module relais à 2 canaux, les instructions ci-dessus décrivent le câblage de ce projet. Il s'agit d'une configuration très simple et facile à programmer, mais elle présente certaines limitations. Si vous souhaitez ajouter des fonctionnalités telles que le contrôle de la vitesse ou le retour de force, vous pouvez envisager d'utiliser la carte de commande de moteur MegaMoto. Plus d'informations à ce sujet ici.
Programmation de votre actionneur solaire
Le fonctionnement du code fourni se veut aussi simple que possible. En présence de lumière, l'actionneur se rétracte ; dans l'obscurité, il se déploie. Afin d'éviter tout déclenchement involontaire (par exemple, si une personne passe et bloque la lumière, ou si un éclair est détecté par le capteur), la transition entre l'obscurité et la lumière (ou inversement) doit durer au moins trente secondes. Ce délai peut être facilement modifié en changeant la valeur de « const int triggerDelay ».
La quantité de lumière présente est déterminée par la tension appliquée à la broche analogique 0. Plus la lumière est intense, plus la résistance de notre photorésistance est faible. Comme nous utilisons une résistance de rappel, la tension diminue à mesure que la luminosité ambiante augmente. L'Arduino interprète cette variation comme une valeur comprise entre 0 et 1028. Pour modifier le seuil de déclenchement de l'actionneur, il suffit de modifier la valeur de « const int threshold » (650 par défaut).
Ce code fonctionnera tel quel, mais l'avantage de ce type de projet est qu'il est toujours possible de l'améliorer. N'hésitez pas à le modifier pour mieux l'adapter à votre application d'actionneur linéaire solaire ! Voici quelques exemples de fonctions supplémentaires qui pourraient être ajoutées : une temporisation pour empêcher l'actionneur de continuer son déplacement s'il n'atteint pas le capteur de fin de course dans un délai imparti ; une détection de collision par surveillance de la consommation de courant (nécessitant un contrôleur MegaMoto à la place des relais) ; ou une fonction permettant de positionner l'actionneur selon la luminosité ambiante (et pas seulement en position haute ou basse).
/*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 l'utilisation d'un capteur de lumière à actionneur linéaire afin de contrôler votre actionneur à l'énergie solaire est maintenant expliquée. Nous savons que chaque application est unique ; vous pourriez donc avoir des questions concernant ce projet ou souhaiter soumettre des modifications à notre équipe d'ingénieurs. N'hésitez pas à nous contacter par courriel à l'adresse sales@progressiveautomations.com ou par téléphone au numéro sans frais 1-800-676-6123.