How to Control Your Linear Actuator with Solar Power

Как да управлявате линейния си задвижващ механизъм със слънчева енергия

В Progressive Automations предлагаме много опции за контрол на вашето линеен задвижващ механизъмОт прости решения като лостови превключватели до нашите по-усъвършенствани контролери, като например PA-35 Wi-Fi контролна кутия, предлагаме много опции за plug-and-play. Понякога обаче изискванията на проекта и нуждите на клиента са малко по-уникални от това, което тези опции могат да предложат. Ето къде микроконтролери наистина могат да бъдат наши приятели. В тази статия ще разгледаме как можем да променяме позицията на задвижващ механизъм въз основа на количеството светлина, което е налично, предоставяйки ви уникална и усъвършенствана форма на управление на линейния задвижващ механизъм.

Какво ще ви е необходимо?

Всичко, от което се нуждаем за този проект, е Arduino (в този случай Ардуино Уно), светлозависим резистор (известен също като фоторезистор или LDR), един резистор от 10 kΩ, 2-канален релеен модул и, разбира се, изпълнителен механизъм.

Вижте нашия Arduino Uno, който беше от решаващо значение за този проект!

Избор на линеен задвижващ механизъм

В много случаи ще използваме този тип спусък за външни приложения, като например захранван от слънчева енергия. задвижващ механизъм за врата на кокошарникаТрябва да вземете предвид в каква среда ще работи вашият задвижващ механизъм и да се уверите, че той има правилния IP рейтинг. За да ви помогнем с това, можете да намерите нашето ръководство за IP рейтинг. тукСъщо така трябва да се уверим, че сте намерили правилната дължина на хода и номинална сила за вашия задвижващ механизъм. За помощ с това можете да се обърнете към една от многото ни други публикации в блога. тукПо същество, типът задвижващ механизъм, който използвате, зависи изцяло от вашето приложение и от суровите условия на средата, в която се намирате.

 

Окабеляване

The wiring for this solar-powered actuator

 

Окабеляването за този проект със соларен задвижващ механизъм е следното:

LDR към Arduino

  • LDR проводник 1 – Заземяване
  • LDR проводник 2 – 5V (чрез резистор 10k)
  • LDR проводник 2 – аналогов пин 0

Релеен модул към Arduino

  • VCC – 5V
  • GND – GND
  • IN1 – Пин 2
  • IN2 – Пин 3

Релеен модул към захранване и изпълнителен механизъм

  • +12V към NC1 (нормално затворена клема на реле едно)
  • -12V към NO1 (нормално отворен клема на реле едно)
  • NC1 до NC2
  • NO1 до NO2
  • COMMON1 към проводник 1 на задвижващия механизъм
  • COMMON2 към проводник 2 на задвижващия механизъм

Използвайки 2-канален релеен модул, горните инструкции показват как да свържете този проект. Това е много проста конфигурация, която е лесна за кодиране, но има своите ограничения. Ако искате да добавите функции като контрол на скоростта или обратна връзка по сила, може да обмислите използването на Щит за водача на мотора MegaMoto вместо това. Повече информация за това тук.

Кодиране на вашия соларен задвижващ механизъм

Функционалността на предоставения код е предназначена да бъде възможно най-проста. Когато има светлина, задвижващият механизъм ще се прибере. Когато е тъмно, задвижващият механизъм ще се разгъне. За да се предотврати неволното задействане на задвижващия механизъм (ако някой мине и блокира светлината или ако сензорът засече светкавица), промяната от тъмнина към светлина (или от светлина към тъмнина) трябва да продължи поне тридесет секунди. Това забавяне може лесно да се промени чрез промяна на стойността на „const int triggerDelay“.

Количеството налична светлина се определя чрез отчитане на напрежението, подавано към аналогов пин 0. Колкото повече светлина има, толкова по-малко съпротивление ще има нашият резистор, зависим от светлината. Тъй като използваме pull-up резистор, това ще означава, че напрежението ще намалява с по-светлата среда. Arduino отчита това като стойност между 0 и 1028. Ако искате да промените стойността, при която ще се промени състоянието на изпълнителния механизъм, просто променете стойността на „const int threshold“ (зададена на 650 по подразбиране).

Този код ще изпълнява предназначението си такъв, какъвто е, но хубавото на подобни проекти е, че винаги има място за подобрение. Чувствайте се свободни да промените този код, за да отговаря по-добре на вашето приложение за линейно задвижване, захранвано от слънчева енергия! Няколко примера за допълнителни функции, които биха могли да бъдат добавени към този код, са: време за изчакване, за да се предотврати продължаването на движението на задвижващия механизъм, ако не достигне крайния изключвател в рамките на определен период от време; откриване на сблъсък чрез наблюдение на потреблението на ток (би изисквало Шофьор на МегаМото вместо релета); или функция, която би позволила настройването на задвижващия механизъм в различни позиции въз основа на количеството светлина (не само докрай нагоре или докрай надолу).

Приложенията на открито се възползват от този тип спусък. Вижте високозащитените задвижващи механизми, които предлагаме!

 /*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);
} 

Заключение

Ето го! Нашата методология за използване на светлинен сензор за линеен задвижващ механизъм, за да управляваме вашия задвижващ механизъм с помощта на слънчева енергия. Знаем, че не всяко приложение е едно и също, така че може да имате някои въпроси относно този проект или някои промени, които искате да извърши нашият екип от инженери. Няма проблем – просто ни изпратете имейл чрез sales@progressiveautomations.comили ни се обадете безплатно на 1-800-676-6123.

Нейтън Бонг

Инженер и специалист по копирайтинг в Progressive Automations, Progressive Desk
Нейтън Бонг, инженер и специалист по копирайтинг в Progressive Automations, Progressive Desk, се занимава със създаването и редакцията на техническо съдържание, като статии, информационни листове, ръководства за потребителя, технически видеоклипове и казуси. Като завършил BCIT, той има академичен опит в електротехниката и компютърното инженерство, като същевременно има практически опит в работата с електрическо оборудване и инструменти.