V Progressive Automations nabízíme mnoho možností pro ovládání vašeho lineární aktuátorOd jednoduchých řešení, jako jsou kolébkové spínače, až po naše pokročilejší ovladače, jako například Wi-Fi řídicí jednotka PA-35, máme mnoho možností plug-and-play. Někdy jsou však požadavky projektu a potřeby zákazníka o něco specifičtější, než co tyto možnosti mohou nabídnout. A právě zde mikrokontroléry mohou být našimi skutečnými přáteli. V tomto článku si probereme, jak můžeme změnit polohu aktuátoru na základě množství přítomného světla, což vám poskytne jedinečnou a pokročilou formu lineárního ovládání aktuátoru.
Co budete potřebovat?
Pro tento projekt potřebujeme pouze Arduino (v tomto případě Arduino Uno), rezistor závislý na světle (také známý jako fotorezistor nebo LDR), jeden rezistor 10 kΩ, dvoukanálový reléový modul a samozřejmě akční člen.
Výběr lineárního aktuátoru
V mnoha případech budeme tento typ spouště používat pro venkovní aplikace, jako například pro solární napájení. pohon dveří kurníkuMusíte zvážit, v jakém prostředí bude váš pohon provozován, a ujistit se, že má správné krytí IP. Pro pomoc vám s tím pomůže náš průvodce krytím IP. zdeTaké se musíme ujistit, že pro váš aktuátor najdete správnou délku zdvihu a jmenovitou sílu. Pomoc s tím najdete v jednom z našich mnoha dalších příspěvků na blogu. zdeV podstatě typ použitého pohonu zcela závisí na vaší aplikaci a drsnosti prostředí, ve kterém se nacházíte.
Zapojení

Zapojení pro tento projekt solárního pohonu je následující:
LDR k Arduinu
- LDR vodič 1 – Uzemnění
- Vývod 2 pro LDR – 5 V (přes rezistor 10 kHz)
- LDR vodič 2 – analogový pin 0
Reléový modul k Arduinu
- VCC – 5V
- GND – GND
- IN1 – Pin 2
- IN2 – Pin 3
Reléový modul k napájení a akčnímu členu
- +12V k NC1 (normálně sepnutý kontakt na relé jedna)
- -12V na NO1 (normálně otevřený kontakt na relé jedna)
- NC1 až NC2
- Č. 1 až Č. 2
- COMMON1 k vodiči akčního členu 1
- COMMON2 k vodiči akčního členu 2
Použití 2kanálového reléového modulu popisuje výše uvedené pokyny pro zapojení tohoto projektu. Jedná se o velmi jednoduché nastavení, které se snadno kóduje, ale má svá omezení. Pokud chcete přidat funkce, jako je regulace otáček nebo silová zpětná vazba, můžete zvážit použití Štít řidiče motoru MegaMoto místo toho. Více informací o tom zde.
Kódování vašeho solárního pohonu
Funkce poskytnutého kódu je zamýšlena tak, aby byla co nejjednodušší. Když je světlo, aktuátor se zasune. Když je tma, aktuátor se vysune. Aby se zabránilo neúmyslnému spuštění aktuátoru (pokud někdo projde kolem a zablokuje světlo, nebo pokud senzor zachytí záblesk světla), musí změna ze tmy na světlo (nebo ze světla na tmu) trvat alespoň třicet sekund. Toto zpoždění lze snadno změnit změnou hodnoty „const int triggerDelay“.
Množství přítomného světla se určuje odečtem napětí přicházejícího na analogový pin 0. Čím více světla je, tím menší odpor bude mít náš rezistor závislý na světle. Protože používáme pull-up rezistor, bude to znamenat, že napětí bude klesat s tím, jak se prostředí stává jasnějším. Arduino to čte jako hodnotu mezi 0 a 1028. Pokud chcete změnit hodnotu, při které se stav akčního členu změní, jednoduše změňte hodnotu „const int threshold“ (ve výchozím nastavení 650).
Tento kód bude sloužit svému účelu tak, jak je, ale skvělé na projektech, jako jsou tyto, je, že vždy existuje prostor pro zlepšení. Nebojte se tento kód upravit tak, aby lépe vyhovoval vaší aplikaci lineárního aktuátoru napájeného solární energií! Několik příkladů dalších funkcí, které by mohly být do tohoto kódu přidány, jsou: časový limit, který zabrání aktuátoru v dalším pohybu, pokud nenarazí na koncový spínač v určitém časovém intervalu; detekce kolize pomocí monitorování odběru proudu (vyžadovalo by to Řidič MegaMoto místo relé); nebo funkci, která by umožňovala nastavení akčního členu do různých poloh na základě množství světla (nejen úplně nahoru nebo úplně 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);
}
Závěr
Tak a tady to máte! Naše metodologie využívá světelného senzoru lineárního aktuátoru k ovládání vašeho aktuátoru pomocí solární energie. Víme, že ne každá aplikace je stejná, takže můžete mít k tomuto projektu nějaké dotazy nebo chcete, aby náš tým inženýrů provedl nějaké úpravy. To není problém – stačí nám poslat e-mail prostřednictvím sales@progressiveautomations.comnebo nám zavolejte bezplatně na číslo 1-800-676-6123.