Pri Progressive Automations ponujamo veliko možnosti za upravljanje vašega linearnega aktuatorja. Od preprostih rešitev, kot so preklopna stikala, do naprednejših krmilnikov, kot je PA-35 Wi‑Fi krmilna omarica, imamo številne možnosti plug-and-play. Včasih pa so projektne zahteve in potrebe strank nekoliko bolj edinstvene, kot jih te možnosti lahko ponudijo. Tu nam lahko mikrokrmilniki resnično pridejo prav. V tem članku bomo obravnavali, kako lahko spremenimo položaj aktuatorja glede na količino prisotne svetlobe, kar vam daje edinstveno in napredno obliko krmiljenja linearnega aktuatorja.
Kaj boste potrebovali?
Za ta projekt potrebujemo Arduino (v tem primeru Arduino Uno), svetlobno odvisen upor (tudi foto upor ali LDR), en upor 10 kΩ, 2‑kanalni relejni modul in seveda aktuator.
Izbira linearnega aktuatorja
V mnogih primerih bomo tovrstni sprožilec uporabljali za zunanje aplikacije, na primer za solarno napajan aktuator vrat kokošnjaka. Upoštevati morate, v kakšnem okolju bo deloval vaš aktuator, in zagotoviti, da ima ustrezen razred zaščite IP. Pri tem vam lahko pomaga naš vodnik po razredih zaščite IP, ki ga najdete tukaj. Poskrbeti moramo tudi, da najdete pravo dolžino hoda in nazivno silo za vaš aktuator. Pri tem si lahko pomagate z enim od naših številnih drugih blog zapisov tukaj. V bistvu je vrsta aktuatorja, ki ga uporabljate, povsem odvisna od vaše aplikacije in zahtevnosti okolja, v katerem se nahajate.
Ožičenje

Ožičenje za ta projekt s solarno napajanim aktuatorjem je naslednje:
LDR na Arduino
- Vodnik LDR 1 – ozemljitev
- Vodnik LDR 2 – 5 V (prek upora 10 kΩ)
- Vodnik LDR 2 – analogni pin 0
Relejni modul na Arduino
- VCC – 5 V
- GND – GND
- IN1 – pin 2
- IN2 – pin 3
Relejni modul na napajalnik in aktuator
- +12 V na NC1 (običajno zaprt priključek na prvem releju)
- -12 V na NO1 (običajno odprt priključek na prvem releju)
- NC1 na NC2
- NO1 na NO2
- COMMON1 na vodnik aktuatorja 1
- COMMON2 na vodnik aktuatorja 2
Z 2‑kanalnim relejnim modulom zgornja navodila opisujejo, kako ožičiti ta projekt. To je zelo preprosta postavitev, ki jo je enostavno programirati, vendar ima tudi omejitve. Če želite dodati funkcije, kot sta nadzor hitrosti ali povratna zveza sile, razmislite o uporabi ščita gonilnika motorja MegaMoto namesto relejev. Več informacij o tem najdete tukaj.
Programiranje vašega solarno napajanega aktuatorja
Funkcionalnost priložene kode je zasnovana tako preprosto, kot je le mogoče. Ko je svetloba, se aktuator umakne. Ko je tema, se aktuator iztegne. Da preprečimo nenamerno proženje aktuatorja (če kdo gre mimo in blokira svetlobo ali če senzor zazna blisk svetlobe), mora sprememba iz temnega v svetlo (ali obratno) trajati vsaj trideset sekund. Ta zamik lahko preprosto spremenite z zamenjavo vrednosti »const int triggerDelay«.
Količina prisotne svetlobe se določi z branjem napetosti na analognem pinu 0. Več kot je svetlobe, manjši upor ima naš svetlobno odvisen upor. Ker uporabljamo pull‑up upor, to pomeni, da napetost pada, ko je okolje svetlejše. Arduino to bere kot vrednost med 0 in 1028. Če želite spremeniti vrednost, pri kateri se bo stanje aktuatorja spremenilo, preprosto spremenite vrednost »const int threshold« (privzeto nastavljena na 650).
Ta koda bo svojo nalogo opravila takšna, kot je, vendar je pri takšnih projektih odlično to, da je vedno prostor za izboljšave. Kodo lahko prosto prilagodite, da bo bolje ustrezala vaši aplikaciji s solarno napajanim linearnim aktuatorjem! Nekaj primerov dodatnih funkcij, ki bi jih lahko dodali tej kodi: časovna omejitev, da preprečite, da bi aktuator nadaljeval pot, če v določenem času ne doseže končnega stikala; zaznavanje trkov z nadzorom toka (zahtevalo bi gonilnik MegaMoto namesto relejev); ali funkcija, ki omogoča nastavitev aktuatorja na različne položaje glede na količino svetlobe (ne le povsem gor ali povsem dol).
/*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);
}
Zaključek
Torej, to je to! Naša metodologija uporabe svetlobnega senzorja linearnega aktuatorja za upravljanje vašega aktuatorja s pomočjo sončne energije. Vemo, da niso vse aplikacije enake, zato imate morda nekaj vprašanj o tem projektu ali spremembe, ki bi jih radi uskladili z našo inženirsko ekipo. Ni težav – pošljite nam e‑pošto na sales@progressiveautomations.com ali nas brezplačno pokličite na 1-800-676-6123.