V Progressive Automations ponúkame mnoho možností, ako ovládať váš lineárny aktuátor. Od jednoduchých riešení, ako sú kolískové spínače, až po pokročilejšie riadiace jednotky, napríklad PA-35 Wi‑Fi Control Box, máme množstvo plug-and-play možností. Niekedy sú však požiadavky projektu a potreby zákazníkov jedinečnejšie, než tieto možnosti dokážu ponúknuť. Vtedy sú mikrokontroléry naozaj našimi priateľmi. V tomto článku si ukážeme, ako môžeme meniť polohu aktuátora podľa množstva prítomného svetla, čo vám dá jedinečnú a pokročilú formu ovládania lineárneho aktuátora.
Čo budete potrebovať?
Na tento projekt potrebujeme iba Arduino (v tomto prípade Arduino Uno), svetlo závislý rezistor (známy aj ako fotorezistor alebo LDR), jeden 10k ohmový rezistor, 2‑kanálový relé modul a, samozrejme, aktuátor.
Výber vášho lineárneho aktuátora
Vo viacerých prípadoch použijeme tento typ spúšťača pre vonkajšie aplikácie, napríklad solárne napájaný aktuátor dvierok na kurín. Musíte zvážiť, v akom prostredí bude váš aktuátor pracovať, a uistiť sa, že má správne krytie IP. S tým vám pomôže náš sprievodca krytím IP tu. Taktiež je potrebné nájsť správnu dĺžku zdvihu a menovitú silu pre váš aktuátor. Pomôcť vám môžu aj naše ďalšie články na blogu tu. V zásade typ aktuátora, ktorý použijete, úplne závisí od vašej aplikácie a náročnosti prostredia, v ktorom sa nachádzate.
Zapojenie

Zapojenie tohto projektu so solárne napájaným aktuátorom je nasledovné:
LDR do Arduina
- Vývod LDR 1 – zem
- Vývod LDR 2 – 5 V (cez 10k rezistor)
- Vývod LDR 2 – analógový pin 0
Relé modul do Arduina
- VCC – 5 V
- GND – GND
- IN1 – pin 2
- IN2 – pin 3
Relé modul k napájaniu a aktuátoru
- +12 V na NC1 (bežne zatvorená svorka na prvom relé)
- -12 V na NO1 (bežne otvorená svorka na prvom relé)
- NC1 na NC2
- NO1 na NO2
- COMMON1 na vývod aktuátora 1
- COMMON2 na vývod aktuátora 2
Pri použití 2‑kanálového relé modulu zapojíte projekt podľa vyššie uvedených pokynov. Je to veľmi jednoduché riešenie, ktoré sa ľahko programuje, má však svoje obmedzenia. Ak chcete pridať funkcie, ako napríklad reguláciu rýchlosti alebo spätnú väzbu sily, zvážte namiesto relé použitie štítu ovládača motora MegaMoto. Viac informácií tu.
Programovanie vášho solárne napájaného aktuátora
Funkčnosť poskytnutého kódu je zámerne čo najjednoduchšia. Keď je svetlo, aktuátor sa zasunie. Keď je tma, aktuátor sa vysunie. Aby sa predišlo nechcenému spusteniu aktuátora (ak niekto prejde a zablokuje svetlo alebo ak snímač zachytí záblesk svetla), zmena z tmy na svetlo (alebo naopak) musí trvať aspoň tridsať sekúnd. Toto oneskorenie možno jednoducho upraviť zmenou hodnoty „const int triggerDelay“.
Množstvo prítomného svetla sa určuje čítaním napätia privádzaného na analógový pin 0. Čím viac svetla, tým menší odpor bude mať náš fotorezistor. Keďže používame pull‑up rezistor, znamená to, že napätie bude klesať, ako sa prostredie stáva svetlejším. Arduino to číta ako hodnotu medzi 0 a 1028. Ak chcete zmeniť hodnotu, pri ktorej sa zmení stav aktuátora, jednoducho upravte „const int threshold“ (predvolene 650).
Tento kód splní svoj účel tak, ako je, no skvelé na podobných projektoch je, že vždy je priestor na zlepšenie. Kód pokojne upravte, aby lepšie vyhovoval vašej aplikácii so solárne napájaným lineárnym aktuátorom! Niekoľko príkladov dodatočných funkcií, ktoré by bolo možné pridať: časový limit, aby aktuátor nepokračoval v pohybe, ak v určitej dobe nenarazí na koncový spínač; detekcia kolízie monitorovaním odberu prúdu (vyžadovalo by to ovládač MegaMoto namiesto relé); alebo funkcia, ktorá umožní nastaviť aktuátor do rôznych polôh na základe množstva svetla (nielen úplne hore alebo úplne dole).
/*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);
}
Záver
Tak, a je to! Naša metodika použitia svetelného senzora pre lineárny aktuátor na ovládanie vášho aktuátora pomocou solárnej energie. Vieme, že nie každá aplikácia je rovnaká, takže môžete mať otázky k tomuto projektu alebo úpravy, ktoré chcete prebrať s naším tímom inžinierov. Žiadny problém – pošlite nám e‑mail na sales@progressiveautomations.com alebo nám zavolajte bezplatne na 1-800-676-6123.