Chez Progressive Automations, nous proposons de nombreuses options pour contrôler votre Actionneur linéaire . Des solutions simples comme les interrupteurs à bascule aux contrôleurs plus avancés comme le Boîtier de contrôle Wi-Fi PA-35 : nous proposons de nombreuses options prêtes à l'emploi. Cependant, les exigences du projet et les besoins des clients peuvent parfois être plus spécifiques que ce que ces options peuvent offrir. C'est là que ça se passe. microcontrôleurs Les actionneurs peuvent vraiment être nos amis. Dans cet article, nous verrons comment modifier la position d'un actionneur en fonction de la luminosité, vous offrant ainsi une forme unique et avancée de contrôle d'actionneur linéaire.
De quoi aurez-vous besoin ?
Tout ce dont nous avons besoin pour ce projet est un Arduino (dans ce cas un Arduino Uno ), une résistance dépendante de la lumière (également appelée photorésistance ou LDR), une résistance de 10 kohms, un module relais à 2 canaux et, bien sûr, un actionneur.
Choisir votre actionneur linéaire
Dans de nombreux cas, nous utiliserons ce type de déclencheur pour des applications extérieures telles qu'un système alimenté par l'énergie solaire. Actionneur de porte de poulailler . Tenez compte de l'environnement dans lequel votre actionneur fonctionnera et assurez-vous qu'il possède l'indice de protection IP approprié. Pour vous aider, consultez notre guide sur les indices de protection IP. Ici . Nous devons également nous assurer que vous trouvez la course et la force nominale adaptées à votre actionneur. Pour vous aider, vous pouvez consulter l'un de nos nombreux autres articles de blog. ici . En substance, le type d'actionneur que vous utilisez dépend totalement de votre application et de la dureté de l'environnement dans lequel vous vous trouvez.
Câblage

Le câblage de ce projet d'actionneur à énergie solaire est le suivant :
LDR vers Arduino
- Câble LDR 1 – Terre
- Câble LDR 2 – 5 V (via une résistance de 10 kΩ)
- Câble 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 à NC1 (borne normalement fermée sur le relais un)
- -12V à NO1 (borne normalement ouverte sur le relais un)
- NC1 à NC2
- NO1 à NO2
- COMMON1 vers le fil d'actionneur 1
- COMMON2 vers le câble d'actionneur 2
À l'aide d'un module relais à 2 canaux, les instructions ci-dessus expliquent comment câbler ce projet. Cette configuration est très simple et facile à programmer, mais elle présente des limites. Si vous souhaitez ajouter des fonctionnalités telles que le contrôle de vitesse ou le retour de force, vous pouvez envisager d'utiliser le Protection du pilote du moteur MegaMoto à la place. Plus d'infos à ce sujet ici.
Codage de votre actionneur solaire
Le code fourni est conçu pour être aussi simple que possible. Lorsqu'il y a de la lumière, l'actionneur se rétracte. Lorsqu'il fait sombre, il se déploie. Pour éviter tout déclenchement involontaire (si quelqu'un passe et bloque la lumière, ou si le capteur détecte un éclair), le passage de l'obscurité à la lumière (ou de la lumière à l'obscurité) doit durer au moins trente secondes. Ce délai peut être facilement modifié en modifiant la valeur de « const int triggerDelay ».
La quantité de lumière présente est déterminée par la tension de la broche analogique 0. Plus la lumière est intense, plus la résistance de notre résistance photo-dépendante est faible. Comme nous utilisons une résistance de rappel, la tension diminue à mesure que la luminosité ambiante augmente. L'Arduino lit cette valeur comme une valeur comprise entre 0 et 1028. Pour modifier la valeur de changement d'état de l'actionneur, il suffit de modifier la valeur de « const int threshold » (définie à 650 par défaut).
Ce code remplira sa fonction tel quel, mais l'avantage de projets comme celui-ci est qu'il est toujours possible de l'améliorer. N'hésitez pas à le modifier pour qu'il convienne mieux à votre application d'actionneur linéaire solaire ! Voici quelques exemples de fonctions supplémentaires qui pourraient être ajoutées à ce code : un délai d'expiration empêchant l'actionneur de poursuivre sa course s'il n'atteint pas la fin de course dans un certain délai ; la détection de collision via la surveillance de la consommation de courant (nécessitant un Pilote MegaMoto (au lieu de relais) ; ou une fonction qui permettrait de régler l'actionneur sur différentes positions en fonction de la quantité de lumière (pas seulement complètement vers le haut ou complètement vers le bas).
/*Le matériel requis pour ce projet est un Arduino, une résistance dépendante de la lumière (LDR), une résistance de 10K et un module relais 5V à 2 canaux.
Son but est de contrôler l’extension et la rétraction d’un actionneur en fonction de la quantité de lumière présente.
Rédigé par Progressive Automations le 12/02/2020
*/
#define relay1 2 //relais utilisé pour étendre l'actionneur
#define relay2 3 //relais utilisé pour rétracter l'actionneur
int ldr; //lecture analogique à partir d'une résistance dépendante de la lumière
int countOpen = 0;//compte la durée pendant laquelle le capteur reçoit de la lumière
int countClose = 0;//compte la durée pendant laquelle le capteur ne reçoit pas de lumière
const int triggerDelay = 3000;//nombre de secondes x 100 à attendre après les changements d'éclairage avant de déclencher l'actionneur
const int seuil = 650;//
void setup() {
Serial.begin(9600);
pinMode(relais1,SORTIE);
pinMode(relais2,SORTIE);
digitalWrite(relais1,HIGH);
digitalWrite(relais2,HIGH);
}
boucle vide() {
vérifierSensor();
}
void checkSensor()
{
ldr = analogRead(0);
Série.println(ldr);
si (ldr > seuil) // si la lecture est supérieure au seuil, commencer à compter
{
countOpen++;//compter combien de temps le capteur ne reçoit pas de lumière
délai(10);
}
autre
{
countOpen = 0;//réinitialiser le compte à zéro si l'instruction n'est pas vraie
}
if(countOpen > triggerDelay)// attendre x secondes avant de déclencher l'actionneur
{
extend();//étendre l'actionneur
}
si (ldr < seuil) // si la lecture est inférieure au seuil, commencer à compter
{
countClose++;//compte la durée pendant laquelle le capteur reçoit de la lumière
délai(10);
}
autre
{
countClose = 0;
}
if(countClose > triggerDelay)// attendre x secondes avant de déclencher l'actionneur
{
rétracter();
}
}
void extend()
{
digitalWrite(relais1,LOW);
digitalWrite(relais2,HIGH);
}
void retract()
{
digitalWrite(relais2,LOW);
digitalWrite(relais1,HIGH);
}
Conclusion
Voilà ! Notre méthodologie utilise un capteur de lumière pour actionneur linéaire afin de contrôler votre actionneur grâce à l'énergie solaire. Nous savons que chaque application est différente ; vous avez donc peut-être des questions sur ce projet ou des modifications à faire réaliser par notre équipe d'ingénieurs. Aucun problème ! Envoyez-nous simplement un e-mail à sales@progressiveautomations.com ou appelez-nous sans frais au 1-800-676-6123.