I vårt siste «Slik gjør du»-innlegg skal vi gå gjennom hvordan man kontrollerer timingen av bevegelsen til en lineær aktuator ved hjelp av en mikrokontroller. Mikrokontrollere gir mye frihet i bevegelseskontroll, og dette er bare ett eksempel på en nesten uendelig mengde tilgjengelige bevegelseskontrollalternativer. Avhengig av applikasjonen din, kan eksempelprosjektet i denne artikkelen justeres for å passe dine behov. Enten du legger til en annen tidsstyrt aktuator eller forsterker strømforsyningen for å håndtere en sterkere lineær aktuator, er det helt opp til deg.
Bevegelseskontroll ved hjelp av en mikrokontroller
En Arduino-mikrokontroller vil bli brukt til å kontrollere bevegelsestimingen til en lineær aktuator, men enhver mikrokontroller vil fungere. Men siden vi bruker et skjold, må mikrokontrolleren være kompatibel. Vi skal veilede deg gjennom de ulike parameterne du kan justere for å endre hastigheten til en lineær aktuator.
Hva du trenger
I dette eksemplet bruker vi følgende komponenter for å kontrollere en lineær aktuator:
- 1 stk MegaMoto Plus
- 1 stk Arduino Uno Rev3
- 1 stk Mini industriell aktuator (PA-09, men hvilken som helst lineær aktuator fungerer)
- 1 stk Strømforsyning (PS-20-12, men hvilken som helst 12V strømforsyning vil fungere)
Tilkoblingskomponenter
Nå som vi har forsyningene våre, må vi koble til alt. Heldigvis er tilkoblinger enkle ved å bruke en skjerm i motsetning til et separat kort som krever ekstra kabling og lodding.
La oss først koble sammen vår aktuator 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.
Til slutt må vi koble LC-80 til LC-066, noe som er så enkelt som å feste dem oppå hverandre som vist på bildet nedenfor.

Justering av koden
For at vi skal få full kontroll over aktuatorens bevegelse, må vi gjøre litt lineær aktuatorprogrammering med Arduino-enheten vår. Vi har utarbeidet en eksempelkode der aktuatoren vår forlenges og deretter trekkes tilbake i 10 sekunder hver vei i en 300-sekunders syklus.
//Bruk jumperne på kortet til å velge hvilke pinner som skal brukes int EnablePin1 = 13; int PWMPinA1 = 11; int PWMPinB1 = 3; int extendtime = 10 * 1000; // 10 sekunder, ganger 1000 for å konvertere til millisekunder int retracttime = 10 * 1000; // 10 sekunder, ganger 1000 for å konvertere til millisekunder int timetorun = 300 * 1000; // 300 sekunder, ganger 1000 for å konvertere til millisekunder int duty; int elapsedTime; boolean keepMoving; void setup() { Serial.begin(9600); pinMode(EnablePin1, OUTPUT);//Aktiver kortet pinMode(PWMPinA1, OUTPUT); pinMode(PWMPinB1, OUTPUT);//Sett motorutganger elapsedTime = 0; // Sett tiden til 0 keepMoving = true; //Systemet vil bevege seg }//slutt oppsett void loop() { if (keepMoving) { digitalWrite(EnablePin1, HIGH); // aktiver motoren pushActuator(); delay(extendtime); stopActuator(); delay(10);//liten forsinkelse før tilbaketrekking pullActuator(); delay(retracttime); stopActuator(); elapsedTime = millis();//hvor lenge har det gått? if (elapsedTime> timetorun) {//hvis det har gått 300 sekunder, stopp Serial.print("Forløpt tid er over maks kjøretid. Maks kjøretid: "); Serial.println(timetorun); keepMoving = false; } }//slutt if }//slutt hovedløkke 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 er viktig å gå gjennom koden, linje for linje, for å prøve å forstå hva som skjer. Ved å gjøre det kan du tilpasse koden til å utføre en rekke andre oppgaver. Foreløpig er imidlertid den viktigste delen den første delen og oppsettsløyfen, som fokuserer på å tilordne pinner og stille inn syklushastigheten.
Du må konfigurere pinnene på LC-80 slik at de samsvarer med det som står i den første delen av koden ved å sette jumperene på LC-80 eller justere koden. I dette tilfellet setter du «Aktiver»-pinnen til D13, «PWMA»-pinnen til D11 og «PWMB»-pinnen til D3. «Aktiver»-pinnen er det som styrer og driver motoren, og uten den vil aktuatoren slutte å bevege seg og vil ikke kunne styres. «PWMA»- og «PWMB»-pinnene styrer forlengelsen og tilbaketrekningen av aktuatoren. Vi trenger ikke «Sensor»-pinnene i dette eksemplet, så du trenger ikke å velge noe der.
Timerkontrollen til en lineær aktuator er nå fullført. Du kan laste opp koden til Arduinoen ved å bruke IDE-en deres (last ned fra Arduinos nettsted). Når du har den lineære aktuatoren i gang med å forlenges og trekkes tilbake, hvorfor ikke leke litt med koden? Prøv å justere forlengelses-/inntrekkingstiden i koden, last den opp på nytt til Arduinoen, og se hvordan den lineære aktuatoren reagerer. Ved å justere disse tallene i koden kan du kontrollere hastigheten og den totale bevegelsessyklustiden basert på ønsket applikasjon.
Konklusjon
Nedenfor har vi lagt ved en video av en tidsstyringsaktuator i aksjon. I videoeksemplet ønsket vi å vise en annen måte du kan endre timingen på, så vi lot den forlenges og trekkes tilbake i 5 sekunder av gangen over en 20-sekunders syklus.
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 tilpasset bestillingsside.