I vårt senaste "Hur man gör"-inlägg kommer vi att gå igenom hur man styr tidpunkten för en linjär ställdons rörelse med hjälp av en mikrokontroller. Mikrokontroller ger stor frihet i rörelsekontroll och detta är bara ett exempel på en nästan oändlig mängd rörelsekontrollalternativ som finns tillgängliga. Beroende på din applikation kan exempelprojektet i den här artikeln justeras för att passa dina behov. Oavsett om du lägger till ytterligare ett tidsstyrt ställdon eller förstärker strömförsörjningen för att hantera ett starkare linjärt ställdon, är det helt upp till dig.
Rörelsekontroll med hjälp av en mikrokontroller
En Arduino-mikrokontroller kommer att användas för att styra rörelsetimingen för ett linjärt ställdon, men vilken mikrokontroller som helst fungerar. Men eftersom vi använder en sköld måste mikrokontrollern vara kompatibel. Vi kommer att guida dig genom de olika parametrar som du kan justera för att ändra hastigheten på ett linjärt ställdon.
Vad du behöver
I det här exemplet kommer vi att använda följande komponenter för att styra en linjär ställdon:
- 1 st MegaMoto Plus
- 1 st Arduino Uno Rev3
- 1 st Mini industriell aktuator (PA-09, men vilket linjärt ställdon som helst fungerar)
- 1 st Strömförsörjning (PS-20-12, men vilken 12V-strömförsörjning som helst fungerar)
Anslutande komponenter
Nu när vi har våra förnödenheter behöver vi ansluta allting. Som tur är är anslutningarna enkla genom att använda en skärm istället för ett separat kort som kräver ytterligare kablage och lödning.
Låt oss först koppla ihop våra ställdon to our LC-80 MegaMoto Plus shield by attaching the two wire leads from the actuator to the A/B screw terminals on the LC-80. Then, we need to connect the LC-80 to our power supply, in this case, the PS-20-12. We do this by attaching positive and negative wires from the power supply to the BAT +/- terminals of the LC-80.
Slutligen behöver vi ansluta LC-80 till LC-066, vilket är lika enkelt som att sätta dem ovanpå varandra som visas på bilden nedan.

Justera koden
För att vi ska få full kontroll över vår ställdons rörelse behöver vi programmera linjära ställdon med vår Arduino-enhet. Vi har förberett en exempelkod där vår ställdon förlängs och sedan dras tillbaka i 10 sekunder åt varje håll under en 300-sekunderscykel.
//Använd byglarna på kortet för att välja vilka pinnar som ska användas int EnablePin1 = 13; int PWMPinA1 = 11; int PWMPinB1 = 3; int extendtime = 10 * 1000; // 10 sekunder, gånger 1000 för att konvertera till millisekunder int retracttime = 10 * 1000; // 10 sekunder, gånger 1000 för att konvertera till millisekunder int timetorun = 300 * 1000; // 300 sekunder, gånger 1000 för att konvertera till millisekunder int duty; int elapsedTime; boolean keepMoving; void setup() { Serial.begin(9600); pinMode(EnablePin1, OUTPUT);//Aktivera kortet pinMode(PWMPinA1, OUTPUT); pinMode(PWMPinB1, OUTPUT);//Sätt motorutgångar elapsedTime = 0; // Sätt tiden till 0 keepMoving = true; //Systemet kommer att röra sig }//end setup void loop() { if (keepMoving) { digitalWrite(EnablePin1, HIGH); // aktivera motorn pushActuator(); delay(extendtime); stopActuator(); delay(10);//liten fördröjning innan indragning pullActuator(); delay(retracttime); stopActuator(); elapsedTime = millis();//hur lång tid har det gått? if (elapsedTime> timetorun) {//om det har gått 300 sekunder, stop Serial.print("Förfluten tid är över max körtid. Max körtid: "); Serial.println(timetorun); keepMoving = false; } }//end if }//end main loop void stopActuator() { analogWrite(PWMPinA1, 0); analogWrite(PWMPinB1, 0); // hastighet 0-255 } void pushActuator() { analogWrite(PWMPinA1, 255); analogWrite(PWMPinB1, 0); // hastighet 0-255 } void pullActuator() { analogWrite(PWMPinA1, 0); analogWrite(PWMPinB1, 255);//hastighet 0-255 }
Det är viktigt att gå igenom koden, rad för rad, för att försöka förstå vad som händer. Genom att göra det kan du anpassa koden för att utföra en mängd andra uppgifter. Men för tillfället är den viktigaste delen den första delen och installationsslingan, som fokuserar på att tilldela pinnar och ställa in cykelhastigheten.
Du behöver konfigurera stiften på vår LC-80 så att de matchar det som står i den första delen av koden genom att ställa in byglingar på LC-80 eller justera koden. I det här fallet ställer du in "Enable"-stiftet till D13, "PWMA"-stiftet till D11 och "PWMB"-stiftet till D3. "Enable"-stiftet är det som styr och driver motorn och utan det kommer ställdonet att sluta röra sig och kommer inte att kunna styras. "PWMA"- och "PWMB"-stiften styr ställdonets ut- och indragning. Vi behöver inte "Sensor"-stiften i det här exemplet, så oroa dig inte för att välja något där.
Timerstyrningen av ett linjärt ställdon är nu klar. Du kan ladda upp koden till Arduino med hjälp av deras IDE (ladda ner från Arduinos webbplats). När du väl har ditt linjära ställdon utfällt och infällt, varför inte experimentera lite med koden? Försök att justera ut-/infällningstiden i koden, ladda upp den igen till Arduino och se hur det linjära ställdonet reagerar. Genom att justera dessa siffror i koden kan du styra hastigheten och den totala rörelsecykeltiden baserat på önskad applikation.
Slutsats
Nedan har vi inkluderat en video av en tidsställdon i aktion. I videoexemplet ville vi visa ett annat sätt att ändra timingen, så vi lät den förlängas och dras in i 5 sekunder åt gången under en 20-sekunderscykel.
As stated earlier, this is just one example of a way you can alter the motion of an actuator with the help of our microcontrollers. If you have your own custom control method in mind, you can have a control system built specifically to your custom requirements with the help of our talented engineering staff. They will guide you through the process and make sure you have full control over your units. If you'd like to learn more about the custom order process take a look at our sida för anpassad beställning.