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.
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 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).
/*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.