How to Control Your Linear Actuator with Solar Power

Wie man seinen Linearaktor mit Solarenergie steuert

Josh Nigh
Josh Nigh
PA Engineer

Bei Progressive Automations bieten wir viele Optionen zur Steuerung Ihres linearen Aktuators an. Von einfachen Lösungen wie Wippenschaltern bis hin zu unseren fortschrittlicheren Steuerungen wie der PA-35 Wi-Fi Steuerbox haben wir viele Plug-and-Play-Optionen. Manchmal sind die Anforderungen des Projekts und die Bedürfnisse der Kunden jedoch etwas einzigartiger als das, was diese Optionen bieten können. Hier kommen Mikrocontroller ins Spiel, die wirklich unsere Freunde sein können. In diesem Artikel werden wir besprechen, wie wir die Position eines Aktuators basierend auf der vorhandenen Lichtmenge ändern können, was Ihnen eine einzigartige und fortschrittliche Form der Steuerung des linearen Aktuators bietet.

Was werden Sie benötigen?

Alles, was wir für dieses Projekt benötigen, ist ein Arduino (in diesem Fall ein Arduino Uno), ein lichtabhängiger Widerstand (auch bekannt als Fotowiderstand oder LDR), ein 10k Ohm Widerstand, ein 2-Kanal-Relaismodul und natürlich einen Aktuator.

Schauen Sie sich unser Arduino Uno an, das für dieses Projekt entscheidend war!

Wählen Sie Ihren linearen Aktuator

In vielen Fällen werden wir diesen Typ von Auslöser für Außenanwendungen verwenden, wie z.B. einen solarbetriebenen Aktuator für Hühnerstalltüren. Sie müssen berücksichtigen, in welcher Art von Umgebung Ihr Aktuator betrieben wird, und sicherstellen, dass Ihr Aktuator die richtige IP-Klassifizierung hat. Um dabei zu helfen, finden Sie unseren Leitfaden zur IP-Klassifizierung hier. Wir müssen auch sicherstellen, dass Sie die richtige Hublänge und die Nennkraft für Ihren Aktuator finden. Für Hilfe dabei können Sie auf einen unserer vielen anderen Blogbeiträge hier verweisen. Im Wesentlichen hängt die Art des Aktuators, den Sie verwenden, vollständig von Ihrer Anwendung und der Härte der Umgebung ab, in der Sie sich befinden.

 

Verdrahtung

Die Verdrahtung für diesen solarbetriebenen Aktuator

 

Die Verdrahtung für dieses Projekt eines solarbetriebenen Aktuators ist wie folgt:

LDR zu Arduino

  • LDR-Leitung 1 – Masse
  • LDR-Leitung 2 – 5V (über 10k Widerstand)
  • LDR-Leitung 2 – Analog-Pin 0

Relaismodul zu Arduino

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

Relaismodul zu Stromversorgung und Aktuator

  • +12V zu NC1 (normalerweise geschlossener Anschluss am ersten Relais)
  • -12V zu NO1 (normalerweise offener Anschluss am ersten Relais)
  • NC1 zu NC2
  • NO1 zu NO2
  • COMMON1 zu Aktuatorleitung 1
  • COMMON2 zu Aktuatorleitung 2

Mit einem 2-Kanal-Relaismodul sind die obigen Anweisungen, wie Sie dieses Projekt verdrahten. Dies ist eine sehr einfache Konfiguration, die leicht zu codieren ist, hat jedoch ihre Einschränkungen. Wenn Sie Funktionen wie Geschwindigkeitsregelung oder Kraftfeedback hinzufügen möchten, sollten Sie in Betracht ziehen, stattdessen das MegaMoto Motorsteuerungsschild zu verwenden. Weitere Informationen dazu hier.

Codierung Ihres solarbetriebenen Aktuators

Die Funktionalität des bereitgestellten Codes soll so einfach wie möglich sein. Wenn Licht vorhanden ist, zieht sich der Aktuator zurück. Wenn es dunkel ist, wird der Aktuator ausgefahren. Um zu verhindern, dass der Aktuator unbeabsichtigt ausgelöst wird (wenn jemand vorbeigeht und das Licht blockiert oder wenn ein Lichtblitz vom Sensor erfasst wird), muss der Wechsel von dunkel zu hell (oder von hell zu dunkel) mindestens dreißig Sekunden dauern. Diese Verzögerung kann leicht geändert werden, indem der Wert von „const int triggerDelay“ geändert wird.

Die vorhandene Lichtmenge wird bestimmt, indem die Spannung gelesen wird, die zum analogen Pin 0 geht. Je mehr Licht vorhanden ist, desto weniger Widerstand hat unser lichtabhängiger Widerstand. Da wir einen Pullup-Widerstand verwenden, bedeutet dies, dass die Spannung sinkt, wenn die Umgebung heller wird. Der Arduino liest dies als einen Wert zwischen 0 und 1028. Wenn Sie den Wert ändern möchten, bei dem sich der Zustand des Aktuators ändert, ändern Sie einfach den Wert von „const int threshold“ (standardmäßig auf 650 gesetzt).

Dieser Code erfüllt seinen Zweck, wie er ist, aber das Tolle an Projekten wie diesen ist, dass es immer Raum für Verbesserungen gibt. Fühlen Sie sich frei, diesen Code zu ändern, um ihn besser an Ihre Anwendung des solarbetriebenen linearen Aktuators anzupassen! Einige Beispiele für zusätzliche Funktionen, die zu diesem Code hinzugefügt werden könnten, sind: eine Zeitüberschreitung, um zu verhindern, dass der Aktuator weiterfährt, wenn er den Endschalter innerhalb eines bestimmten Zeitraums nicht erreicht; Kollisionsdetektion durch Überwachung des Stromverbrauchs (würde einen MegaMoto-Treiber anstelle von Relais erfordern); oder eine Funktion, die es ermöglicht, den Aktuator je nach Lichtmenge auf verschiedene Positionen einzustellen (nicht nur ganz nach oben oder ganz nach unten).

Außenanwendungen profitieren von diesem Typ von Auslöser. Schauen Sie sich die hochgeschützten Aktuatoren an, die wir führen!

 /*Die für dieses Projekt erforderliche Hardware ist ein Arduino, ein lichtabhängiger Widerstand (LDR), ein 10K-Widerstand und ein 2-Kanal-5V-Relaismodul.
 Sein Zweck ist es, die Ausdehnung und Rückziehung eines Aktuators basierend auf der vorhandenen Lichtmenge zu steuern.
 
 Geschrieben von Progressive Automations 02/12/2020
 */

 #define relay1 2 //Relais zum Ausfahren des Aktuators
 #define relay2 3 //Relais zum Einziehen des Aktuators
 int ldr; //analoge Messung von einem lichtabhängigen Widerstand
 int countOpen = 0;//zählt, wie lange der Sensor Licht empfängt
 int countClose = 0;//zählt, wie lange der Sensor kein Licht empfängt
 const int triggerDelay = 3000;//Anzahl der Sekunden x 100, um nach einer Änderung der Beleuchtung zu warten, bevor der Aktuator ausgelöst wird
 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)//wenn die Messung größer als der Schwellenwert ist, beginne zu zählen
 {
 countOpen++;//zählt, wie lange der Sensor kein Licht empfängt
 delay(10);
 }
 else
 {
 countOpen = 0;//setzt den Zähler auf null, wenn die Bedingung nicht zutrifft
 }
 if(countOpen > triggerDelay)//warte x Sekunden, bevor du den Aktuator auslöst
 {
 extend();//Aktuator ausfahren
 }

 if(ldr < threshold)//wenn die Messung kleiner als der Schwellenwert ist, beginne zu zählen
 {
 countClose++;//zählt, wie lange der Sensor Licht empfängt
 delay(10);
 }
 else
 {
 countClose = 0;
 }
 if(countClose > triggerDelay)//warte x Sekunden, bevor du den Aktuator auslöst
 {
 retract();
 }

 }

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

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

Fazit

Da haben Sie es! Unsere Methodik zur Verwendung eines lichtempfindlichen Sensors für den linearen Aktuator zur Steuerung Ihres Aktuators mit Solarenergie. Wir wissen, dass nicht jede Anwendung gleich ist, daher haben Sie möglicherweise einige Fragen zu diesem Projekt oder einige Änderungen, die Sie unserem Ingenieurteam mitteilen möchten. Das ist kein Problem – senden Sie uns einfach eine E-Mail an sales@progressiveautomations.com oder rufen Sie uns gebührenfrei unter 1-800-676-6123 an.