How to Control Your Linear Actuator with Solar Power

Kuinka ohjata lineaarista toimilaitettasi aurinkovoimalla

Josh Nigh
Josh Nigh
PA Engineer

Progressive Automationsilla tarjoamme monia vaihtoehtoja lineaarisen toimilaitteesi ohjaamiseen. Yksinkertaisista ratkaisuista, kuten keinukytkimistä, aina kehittyneempiin ohjaimiin, kuten PA‑35 Wi‑Fi -ohjauslaatikkoon – meillä on runsaasti plug-and-play-vaihtoehtoja. Joskus projektivaatimukset ja asiakkaiden tarpeet ovat kuitenkin hieman yksilöllisempiä kuin mitä nämä vaihtoehdot tarjoavat. Tällöin mikrokontrollerit ovat todellisia ystäviämme. Tässä artikkelissa käymme läpi, miten voimme muuttaa toimilaitteen asentoa ympäristön valoisuuden perusteella – tarjoten ainutlaatuisen ja edistyneen tavan ohjata lineaarista toimilaitetta.

Mitä tarvitset?

Tähän projektiin tarvitsemme vain Arduinon (tässä tapauksessa Arduino Uno), valoherkän vastuksen (tunnetaan myös nimillä fotoresistori tai LDR), yhden 10 kΩ vastuksen, 2‑kanavaisen relemoduulin sekä tietenkin toimilaitteen.

Tutustu Arduino Uno -korttiimme – se oli tämän projektin kannalta ratkaiseva!

Lineaarisen toimilaitteen valinta

Usein käytämme tämän tyyppistä laukaisua ulkokohteissa, kuten aurinkovoimalla toimivassa kanalan oven toimilaitteessa. Sinun on huomioitava, millaisessa ympäristössä toimilaite toimii, ja varmistettava, että toimilaitteella on oikea IP‑luokitus. Tämän tueksi löydät IP‑luokitusten oppaamme täältä. Lisäksi on varmistettava, että löydät toimilaitteellesi oikean iskun pituuden ja voimaluokituksen. Apua tähän saat yhdestä monista blogikirjoituksistamme täältä. Tiivistetysti: käyttämäsi toimilaitteen tyyppi riippuu täysin sovelluksestasi ja ympäristön vaativuudesta.

 

Kytkentä

Tämän aurinkovoimalla toimivan toimilaitteen kytkennät

 

Tämän aurinkovoimalla toimivan toimilaitteen kytkennät ovat seuraavat:

LDR Arduinon kanssa

  • LDR-johtimen 1 – Maa (Ground)
  • LDR-johtimen 2 – 5 V (10 kΩ vastuksen kautta)
  • LDR-johtimen 2 – Analoginen pinni 0

Relemoduuli Arduinon kanssa

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

Relemoduuli virtalähteeseen ja toimilaitteeseen

  • +12 V NC1:een (normally closed, eli normaalisti kiinni oleva liitin releessä 1)
  • −12 V NO1:een (normally open, eli normaalisti auki oleva liitin releessä 1)
  • NC1 → NC2
  • NO1 → NO2
  • COMMON1 → Toimilaitteen johto 1
  • COMMON2 → Toimilaitteen johto 2

Kun käytät 2‑kanavaista relemoduulia, yllä olevat ohjeet kertovat, miten projekti kytketään. Tämä on erittäin yksinkertainen kokoonpano ja helppo koodata, mutta siinä on rajoituksensa. Jos haluat lisätä ominaisuuksia, kuten nopeudensäädön tai kuormituspalautteen, kannattaa harkita MegaMoto-moottoriohjaimen suojalevyn käyttöä releiden sijaan. Lisätietoja täällä.

Aurinkovoimalla toimivan toimilaitteen koodaus

Tarjotun koodin toiminnallisuus on tarkoitettu mahdollisimman yksinkertaiseksi. Kun on valoa, toimilaite vetäytyy sisään. Kun on pimeää, toimilaite ulostuu. Estääksemme toimilaitteen tahattoman laukaisemisen (jos joku kulkee ohi ja varjostaa valon tai anturi havaitsee salamavalon), muutoksen pimeästä valoisaan (tai valoisasta pimeään) on kestettävä vähintään kolmekymmentä sekuntia. Tätä viivettä voi muuttaa helposti muuttamalla arvon ”const int triggerDelay”.

Valon määrää mitataan lukemalla analogiseen pinniin 0 menevä jännite. Mitä enemmän valoa, sitä pienempi on valoherkän vastuksen resistanssi. Koska käytämme ylösvetovastusta (pull-up), jännite laskee ympäristön kirkastuessa. Arduino lukee tämän arvona väliltä 0–1028. Jos haluat muuttaa arvoa, jossa toimilaitteen tila muuttuu, muuta ”const int threshold” -arvoa (oletus 650).

Tämä koodi toimii sellaisenaan, mutta tällaisten projektien hienous on, että parannusvaraa on aina. Voit vapaasti muokata koodia paremmin aurinkovoimalla toimivan lineaarisen toimilaitteesi tarpeisiin! Esimerkkejä lisätoiminnoista: aikakatkaisu estämään toimilaitetta jatkamasta liikettä, jos rajakytkintä ei saavuteta tietyn ajan sisällä; törmäystunnistus seuraamalla virrankulutusta (vaatii MegaMoto‑ohjaimen releiden sijaan); tai toiminto, joka asettaa toimilaitteen eri asentoihin valon määrän perusteella (ei vain täysin auki tai kiinni).

Ulkokohteet hyötyvät tästä laukaisutavasta. Tutustu korkeasti suojattuihin toimilaitteisiimme!

 /*Tämän projektin laitteisto: Arduino, yksi valoherkkä vastus (LDR), 10 kΩ vastus ja 2-kanavainen 5 V relemoduuli.
 Tarkoitus: ohjata toimilaitteen ulostuloa ja sisäänvetoa ympäristön valoisuuden perusteella.
 
 Progressive Automations, 12/02/2020
*/

#define relay1 2 //rele, jolla toimilaite ulostetaan
#define relay2 3 //rele, jolla toimilaite vedetään sisään
int ldr; //analoginen lukema valoherkästä vastuksesta 
int countOpen = 0;//laskee, kuinka kauan anturi ei vastaanota valoa
int countClose = 0;//laskee, kuinka kauan anturi vastaanottaa valoa
const int triggerDelay = 3000;//sekuntien määrä x 100, odota valon muutoksen jälkeen ennen laukaisua 
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)//jos lukema on suurempi kuin kynnysarvo, aloita laskenta
{
  countOpen++;//laskee, kuinka kauan anturi ei vastaanota valoa
  delay(10);
}
else
{
  countOpen = 0;//nollaa laskuri, jos ehto ei täyty
}
if(countOpen > triggerDelay)// odota x sekuntia ennen toimilaitteen laukaisua 
{
  extend();//ulosta toimilaite
}

if(ldr < threshold)//jos lukema on pienempi kuin kynnysarvo, aloita laskenta
{
  countClose++;//laskee, kuinka kauan anturi vastaanottaa valoa
  delay(10);
}
else
{
  countClose = 0;
}
if(countClose > triggerDelay)// odota x sekuntia ennen toimilaitteen laukaisua 
{
  retract();
}

}

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

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

Yhteenveto

Siinä se! Metodimme käyttää valoanturia lineaarisen toimilaitteen ohjaukseen aurinkovoimalla. Tiedämme, etteivät kaikki sovellukset ole samanlaisia, joten sinulla saattaa olla kysymyksiä tästä projektista tai muutoksia, joista haluat keskustella insinööritiimimme kanssa. Ei ongelmaa – lähetä meille sähköpostia osoitteeseen sales@progressiveautomations.com tai soita maksutta numeroon 1‑800‑676‑6123.