How to Control Your Linear Actuator with Solar Power

Come controllare il tuo attuatore lineare con l'energia solare

Josh Nigh
Josh Nigh
PA Engineer

Da Progressive Automations, offriamo molte opzioni per controllare il tuo attuatore lineare. Da soluzioni semplici come gli interruttori a bilanciere, ai nostri controller più avanzati come la PA-35 Wi-Fi Control Box, abbiamo molte opzioni plug-and-play. Tuttavia, a volte i requisiti del progetto e le esigenze dei clienti sono più particolari di quanto queste opzioni possano offrire. È qui che i microcontrollori diventano davvero utili. In questo articolo vedremo come modificare la posizione di un attuatore in base alla quantità di luce presente, offrendoti una forma di controllo dell’attuatore lineare unica e avanzata.

Di cosa avrai bisogno?

Per questo progetto ci serve un Arduino (in questo caso un Arduino Uno), una resistenza dipendente dalla luce (nota anche come fotoresistenza o LDR), una resistenza da 10k ohm, un modulo relè a 2 canali e, naturalmente, un attuatore.

Dai un'occhiata al nostro Arduino Uno, fondamentale per questo progetto!

Scegliere il tuo attuatore lineare

In molti casi utilizzeremo questo tipo di attivazione per applicazioni all’aperto, come un attuatore per porta di pollaio alimentato a energia solare. È importante considerare l’ambiente in cui il tuo attuatore opererà e assicurarti che il tuo attuatore abbia il corretto grado di protezione IP. Per aiutarti, puoi trovare la nostra guida al grado di protezione IP qui. Dobbiamo anche assicurarci che tu scelga la corretta lunghezza della corsa e la forza nominale per il tuo attuatore. Per un aiuto in merito, puoi fare riferimento a uno dei nostri numerosi altri articoli del blog qui. In sostanza, il tipo di attuatore che utilizzerai dipende completamente dall’applicazione e dalla severità dell’ambiente in cui ti trovi.

 

Cablaggio

Il cablaggio per questo attuatore alimentato a energia solare

 

Il cablaggio per questo progetto di attuatore alimentato a energia solare è il seguente:

LDR verso Arduino

  • Piedino LDR 1 – Massa
  • Piedino LDR 2 – 5V (tramite resistenza da 10k)
  • Piedino LDR 2 – Pin analogico 0

Modulo relè verso Arduino

  • VCC – 5V
  • GND – GND
  • IN1 – Pin 2
  • IN2 – Pin 3

Modulo relè verso alimentatore e attuatore

  • +12V su NC1 (morsetto normalmente chiuso sul primo relè)
  • -12V su NO1 (morsetto normalmente aperto sul primo relè)
  • NC1 a NC2
  • NO1 a NO2
  • COMMON1 al cavo 1 dell’attuatore
  • COMMON2 al cavo 2 dell’attuatore

Utilizzando un modulo relè a 2 canali, le istruzioni sopra indicano come cablare questo progetto. Si tratta di un setup molto semplice e facile da programmare, ma presenta dei limiti. Se vuoi aggiungere funzioni come il controllo della velocità o il feedback del carico, potresti considerare l’uso dello shield driver per motore MegaMoto al posto dei relè.  Ulteriori informazioni qui.

Programmare il tuo attuatore a energia solare

La funzionalità del codice fornito è pensata per essere il più semplice possibile. Quando c’è luce, l’attuatore si ritrae. Quando è buio, l’attuatore si estende. Per evitare attivazioni involontarie dell’attuatore (ad esempio se qualcuno passa e blocca la luce o se il sensore rileva un lampo), il passaggio da buio a luce (o da luce a buio) deve durare almeno trenta secondi. Questo ritardo può essere modificato facilmente cambiando il valore di “const int triggerDelay”.

La quantità di luce presente è determinata leggendo la tensione sul pin analogico 0. Più luce c’è, minore sarà la resistenza della nostra resistenza dipendente dalla luce. Poiché utilizziamo una resistenza di pull-up, la tensione diminuirà man mano che l’ambiente diventa più luminoso. L’Arduino legge questo come un valore compreso tra 0 e 1028. Se vuoi cambiare il valore al quale lo stato dell’attuatore cambia, modifica semplicemente il valore di “const int threshold” (impostato a 650 per impostazione predefinita).

Questo codice svolge il suo compito così com’è, ma la cosa fantastica di progetti come questo è che c’è sempre margine di miglioramento. Sentiti libero di modificarlo per adattarlo meglio alla tua applicazione con attuatore lineare alimentato a energia solare! Alcuni esempi di funzioni aggiuntive che potresti integrare sono: un timeout per evitare che l’attuatore continui a muoversi se non raggiunge il finecorsa entro un certo periodo; rilevamento delle collisioni tramite monitoraggio dell’assorbimento di corrente (richiederebbe un driver MegaMoto al posto dei relè); oppure una funzione che consenta di impostare l’attuatore su varie posizioni in base alla quantità di luce (non solo completamente esteso o completamente retratto).

Le applicazioni all’aperto traggono beneficio da questo tipo di attivazione. Scopri gli attuatori con alto grado di protezione che offriamo!

 /*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);
}

Conclusione

Ecco fatto! La nostra metodologia per utilizzare un sensore di luce con un attuatore lineare e controllare il tuo attuatore tramite energia solare. Sappiamo che non tutte le applicazioni sono uguali, quindi potresti avere domande su questo progetto o modifiche da sottoporre al nostro team di ingegneri. Nessun problema – inviaci un’email a sales@progressiveautomations.com, o chiamaci al numero verde 1-800-676-6123.