How to Control Your Linear Actuator with Solar Power

Hoe u uw lineaire actuator met zonne‑energie aanstuurt

Josh Nigh
Josh Nigh
PA Engineer

Bij Progressive Automations bieden we veel opties voor het aansturen van uw lineaire actuator. Van eenvoudige oplossingen zoals wipschakelaars tot onze geavanceerdere controllers zoals de PA-35 Wi‑Fi Control Box, we hebben veel plug‑and‑play keuzes. Soms zijn projectvereisten en klantbehoeften echter net wat unieker dan wat deze opties kunnen bieden. Dan komen microcontrollers echt van pas. In dit artikel laten we zien hoe we de positie van een actuator kunnen veranderen op basis van de hoeveelheid aanwezig licht, wat u een unieke en geavanceerde vorm van besturing van een lineaire actuator geeft.

Wat heeft u nodig?

Voor dit project hebben we alleen een Arduino nodig (in dit geval een Arduino Uno), een lichtafhankelijke weerstand (ook bekend als fotoresistor of LDR), één 10k ohm weerstand, een 2‑kanaals relaismodule en natuurlijk een actuator.

Bekijk onze Arduino Uno, die cruciaal was voor dit project!

Uw lineaire actuator kiezen

In veel gevallen gebruiken we dit type trigger voor buitentoepassingen, zoals een op zonne‑energie aangedreven kippenhokdeur‑actuator. U moet rekening houden met de omgeving waarin uw actuator zal werken en ervoor zorgen dat uw actuator de juiste IP‑klassificatie heeft. Om hierbij te helpen, vindt u onze gids voor IP‑klassificatie hier. We moeten er ook voor zorgen dat u de juiste Slaglengte en krachtrating voor uw actuator vindt. Voor hulp hierbij kunt u een van onze vele andere blogposts raadplegen hier. Kortom, het type actuator dat u gebruikt, is volledig afhankelijk van uw toepassing en de hardheid van de omgeving waarin u zich bevindt.

 

Bedrading

De bedrading voor deze op zonne‑energie werkende actuator

 

De bedrading voor dit op zonne‑energie werkende actuatorproject is als volgt:

LDR naar Arduino

  • LDR‑aansluiting 1 – Ground
  • LDR‑aansluiting 2 – 5V (via 10k weerstand)
  • LDR‑aansluiting 2 – Analoge pin 0

Relaismodule naar Arduino

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

Relaismodule naar voeding en actuator

  • +12V naar NC1 (normaal gesloten klem op relais één)
  • ‑12V naar NO1 (normaal open klem op relais één)
  • NC1 naar NC2
  • NO1 naar NO2
  • COMMON1 naar actuatorleiding 1
  • COMMON2 naar actuatorleiding 2

Met een 2‑kanaals relaismodule zijn dit de instructies om dit project te bedraden. Dit is een zeer eenvoudige opstelling die gemakkelijk te programmeren is, maar wel zijn beperkingen heeft. Als u functies wilt toevoegen zoals Snelheidsregeling of kracht‑Terugkoppeling, overweeg dan in plaats daarvan het MegaMoto motor driver shield te gebruiken. Meer info daarover hier.

Uw op zonne‑energie werkende actuator programmeren

De functionaliteit van de meegeleverde code is bedoeld om zo eenvoudig mogelijk te zijn. Als er licht is, trekt de actuator in. Als het donker is, schuift de actuator uit. Om te voorkomen dat de actuator onbedoeld wordt geactiveerd (als iemand langskomt en het licht blokkeert, of als een lichtflits door de sensor wordt opgepikt), moet de overgang van donker naar licht (of licht naar donker) minstens dertig seconden duren. Deze vertraging kan eenvoudig worden gewijzigd door de waarde van “const int triggerDelay” aan te passen.

De hoeveelheid aanwezig licht wordt bepaald door de spanning te lezen die naar analoge pin 0 gaat. Hoe meer licht er is, hoe minder weerstand onze lichtafhankelijke weerstand heeft. Omdat we een pull‑up weerstand gebruiken, betekent dit dat de spanning daalt naarmate de omgeving helderder wordt. De Arduino leest dit als een waarde tussen 0 en 1028. Als u de waarde wilt wijzigen waarbij de toestand van de actuator verandert, past u eenvoudig de waarde van “const int threshold” aan (standaard ingesteld op 650).

Deze code voldoet in de huidige vorm, maar het mooie aan dit soort projecten is dat er altijd ruimte is voor verbetering. Voel u vrij om deze code aan te passen zodat hij beter past bij uw toepassing met een lineaire actuator op zonne‑energie! Enkele voorbeelden van extra functies die aan deze code kunnen worden toegevoegd, zijn: een time‑out om te voorkomen dat de actuator blijft bewegen als hij de Eindschakelaar binnen een bepaalde tijd niet bereikt; botsingsdetectie via bewaking van de stroomopname (zou een MegaMoto‑driver in plaats van relais vereisen); of een functie waarmee de actuator op verschillende posities kan worden ingesteld op basis van de hoeveelheid licht (niet alleen helemaal omhoog of helemaal omlaag).

Buitentoepassingen profiteren van dit type trigger. Bekijk de sterk beschermde actuators die wij voeren!

 /*De hardware die voor dit project nodig is, is een Arduino, één lichtafhankelijke weerstand (LDR), een 10K-weerstand en een 2-kanaals 5V-relaismodule.
 Het doel is om het uitschuiven en intrekken van een actuator te regelen op basis van de hoeveelheid aanwezig licht.
 
 Geschreven door Progressive Automations 12/02/2020
*/

#define relay1 2 //relais gebruikt om actuator uit te schuiven
#define relay2 3 //relais gebruikt om actuator in te trekken
int ldr; //analoge meting van lichtafhankelijke weerstand 
int countOpen = 0;//telt hoe lang de sensor licht ontvangt
int countClose = 0;//telt hoe lang de sensor geen licht ontvangt
const int triggerDelay = 3000;//aantal seconden x 100 om te wachten na verandering van verlichting voordat de actuator wordt geactiveerd 
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)//als de meting groter is dan de drempel, begin met tellen
{
  countOpen++;//tel hoe lang de sensor geen licht ontvangt
  delay(10);
}
else
{
  countOpen = 0;//reset de teller naar nul als de voorwaarde niet waar is
}
if(countOpen > triggerDelay)// wacht x seconden voordat de actuator wordt geactiveerd 
{
  extend();//actuator uitschuiven
}

if(ldr < threshold)//als de meting kleiner is dan de drempel, begin met tellen
{
  countClose++;//tel hoe lang de sensor licht ontvangt
  delay(10);
}
else
{
  countClose = 0;
}
if(countClose > triggerDelay)// wacht x seconden voordat de actuator wordt geactiveerd 
{
  retract();
}

}

void extend()
{
  digitalWrite(relay1,LOW);
  digitalWrite(relay2,HIGH);
}

void retract()
{
  digitalWrite(relay2,LOW);
  digitalWrite(relay1,HIGH);
}

Conclusie

Zo, daar heb je het! Onze methodiek achter het gebruik van een lichtsensor voor de lineaire actuator om uw actuator met zonne‑energie te bedienen. We weten dat niet elke toepassing hetzelfde is, dus u heeft mogelijk vragen over dit project of wijzigingen die u met ons engineeringteam wilt bespreken. Dat is geen probleem – stuur ons gewoon een e‑mail via sales@progressiveautomations.com of bel ons gratis op 1‑800‑676‑6123.