How to Control Your Linear Actuator with Solar Power

Hur man styr sin linjära ställdon med solenergi

Josh Nigh
Josh Nigh
PA Engineer

På Progressive Automations erbjuder vi många alternativ för att styra din linjär ställdonFrån enkla lösningar som vippbrytare till våra mer avancerade styrenheter som PA-35 Wi-Fi-kontrollbox, vi har många plug-and-play-alternativ. Ibland är dock projektkrav och kundbehov lite mer unika än vad dessa alternativ kan erbjuda. Det är här mikrokontroller kan verkligen vara våra vänner. I den här artikeln kommer vi att gå igenom hur vi kan ändra positionen på ett ställdon baserat på mängden ljus som finns, vilket ger dig en unik och avancerad form av linjär ställdonsstyrning.

Vad behöver du?

Allt vi behöver för det här projektet är en Arduino (i det här fallet en Arduino Uno), ett ljusberoende motstånd (även känt som fotomotstånd eller LDR), ett 10k ohms motstånd, en 2-kanalig relämodul och naturligtvis ett ställdon.

Kolla in vår Arduino Uno, som var avgörande för det här projektet!

Att välja din linjära ställdon

I många fall kommer vi att använda den här typen av trigger för utomhusapplikationer, till exempel solcellsdrivna dörrmanöverdon för hönshusDu måste vara uppmärksam på vilken typ av miljö ditt ställdon ska användas i och se till att ditt ställdon har rätt IP-klassning. För att hjälpa dig med detta kan du hitta vår IP-klassningsguide. härVi behöver också se till att du hittar rätt slaglängd och kraftklassning för ditt ställdon. För hjälp med detta kan du läsa ett av våra många andra blogginlägg. härI grund och botten är vilken typ av ställdon du använder helt beroende av din applikation och den hårda miljön du befinner dig i.

 

Ledningar

The wiring for this solar-powered actuator

 

Ledningarna för detta soldrivna ställdonprojekt är följande:

LDR till Arduino

  • LDR-ledning 1 – Jord
  • LDR-ledning 2 – 5V (via 10k motstånd)
  • LDR-ledning 2 – Analog stift 0

Relämodul till Arduino

  • VCC – 5V
  • Jord – Jord
  • IN1 – Stift 2
  • IN2 – Stift 3

Relämodul till strömförsörjning och ställdon

  • +12V till NC1 (normalt sluten terminal på relä ett)
  • -12V till NO1 (normalt öppen terminal på relä ett)
  • NC1 till NC2
  • NO1 till NO2
  • COMMON1 till ställdonledning 1
  • COMMON2 till ställdonledning 2

Med en 2-kanalig relämodul visar instruktionerna ovan hur du kopplar in det här projektet. Detta är en mycket enkel installation som är lätt att koda, men den har sina begränsningar. Om du vill lägga till funktioner som hastighetskontroll eller kraftåterkoppling kan du överväga att använda MegaMoto motordrivarsköld istället. Mer information om det här.

Kodning av ditt soldrivna ställdon

Funktionaliteten hos den angivna koden är avsedd att vara så enkel som möjligt. När det är ljust kommer ställdonet att dras in. När det är mörkt kommer ställdonet att förlängas. För att förhindra att ställdonet utlöses oavsiktligt (om någon går förbi och blockerar ljuset, eller om en ljusblixt upptäcks av sensorn) måste övergången från mörker till ljus (eller ljus till mörker) vara minst trettio sekunder. Denna fördröjning kan enkelt ändras genom att ändra värdet på "const int triggerDelay".

Mängden ljus bestäms genom att läsa av spänningen som går till analog pin 0. Ju mer ljus det finns, desto mindre resistans kommer vårt ljusberoende motstånd att ha. Eftersom vi använder ett pull-up-motstånd betyder det att spänningen kommer att sjunka när omgivningen blir ljusare. Arduino läser detta som ett värde mellan 0 och 1028. Om du vill ändra värdet vid vilket ställdonets tillstånd kommer att ändras, ändra helt enkelt värdet på "const int threshold" (inställt på 650 som standard).

Den här koden kommer att tjäna sitt syfte som den är, men det fina med projekt som dessa är att det alltid finns utrymme för förbättringar. Du kan gärna modifiera den här koden så att den bättre passar din soldrivna linjära ställdonstillämpning! Några exempel på extrafunktioner som kan läggas till i den här koden är: en timeout för att förhindra att ställdonet fortsätter att röra sig om det inte träffar gränsbrytaren inom en viss tidsperiod; kollisionsdetektering via strömförbrukningsövervakning (skulle kräva en MegaMoto-förare istället för reläer); eller en funktion som skulle göra det möjligt att ställa in ställdonet i olika positioner baserat på mängden ljus (inte bara hela vägen upp eller hela vägen ner).

Utomhusapplikationer drar nytta av den här typen av trigger. Kolla in de högskyddade ställdonen vi har!

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

Slutsats

Så där har du det! Vår metod bakom att använda en linjär ställdons ljussensor för att styra ditt ställdon med solenergi. Vi vet att inte alla applikationer är desamma, så du kanske har några frågor om det här projektet, eller några ändringar som du vill att vårt ingenjörsteam ska utföra. Det är inga problem – skicka bara ett e-postmeddelande till oss via sales@progressiveautomations.comeller ring oss avgiftsfritt på 1-800-676-6123.