How To Control The Timing Of A Linear Actuators Motion

Πώς να ελέγξετε τον χρονισμό της κίνησης ενός γραμμικού ενεργοποιητή;

Guest Writer
Guest Writer
PA Engineer

Στην πιο πρόσφατη ανάρτηση "How To", θα δούμε πώς να ελέγχετε τον χρονισμό της κίνησης ενός γραμμικού ενεργοποιητή χρησιμοποιώντας έναν μικροελεγκτή. Οι μικροελεγκτές προσφέρουν μεγάλη ελευθερία στον έλεγχο κίνησης και αυτό είναι μόνο ένα παράδειγμα από μια σχεδόν ατελείωτη γκάμα διαθέσιμων επιλογών ελέγχου. Ανάλογα με την εφαρμογή σας, το παράδειγμα έργου αυτού του άρθρου μπορεί να προσαρμοστεί ώστε να καλύψει τις απαιτήσεις σας, είτε προσθέσετε έναν ακόμη χρονομετρημένο ενεργοποιητή είτε ενισχύσετε την τροφοδοσία για να χειριστείτε έναν πιο ισχυρό γραμμικό ενεργοποιητή—είναι στο χέρι σας.

Ρίξτε μια ματιά σε όλους τους μικροελεγκτές μας για απόλυτο έλεγχο του ενεργοποιητή σας!

Έλεγχος κίνησης με χρήση μικροελεγκτή

Θα χρησιμοποιηθεί ένας μικροελεγκτής Arduino για τον έλεγχο του χρονισμού κίνησης ενός γραμμικού ενεργοποιητή, αλλά οποιοσδήποτε μικροελεγκτής θα λειτουργήσει. Ωστόσο, επειδή χρησιμοποιούμε shield, ο μικροελεγκτής πρέπει να είναι συμβατός. Θα σας καθοδηγήσουμε μέσα από τις διάφορες παραμέτρους που μπορείτε να ρυθμίσετε για να αλλάξετε την ταχύτητα ενός γραμμικού ενεργοποιητή.

 

Τι θα χρειαστείτε

Για αυτό το παράδειγμα, θα χρησιμοποιήσουμε τα παρακάτω εξαρτήματα για τον έλεγχο ενός γραμμικού ενεργοποιητή:

Περιηγηθείτε σε όλη τη γκάμα ηλεκτρικών γραμμικών ενεργοποιητών μας, κατάλληλων για κάθε εφαρμογή!

Σύνδεση εξαρτημάτων

Τώρα που έχουμε τα υλικά μας, πρέπει να τα συνδέσουμε όλα. Ευτυχώς, οι συνδέσεις είναι απλές χρησιμοποιώντας ένα shield, σε αντίθεση με μια ξεχωριστή πλακέτα που απαιτεί επιπλέον καλωδίωση και κόλληση.

Αρχικά, ας συνδέσουμε τον ενεργοποιητή μας στο LC-80 MegaMoto Plus shield συνδέοντας τους δύο αγωγούς του ενεργοποιητή στους ακροδέκτες βιδών A/B του LC-80. Έπειτα, πρέπει να συνδέσουμε το LC-80 με την τροφοδοσία μας, στην προκειμένη περίπτωση την PS-20-12. Αυτό το κάνουμε συνδέοντας τους θετικούς και αρνητικούς αγωγούς από την τροφοδοσία στους ακροδέκτες BAT +/- του LC-80.

Τέλος, πρέπει να συνδέσουμε το LC-80 με το LC-066, κάτι που είναι τόσο απλό όσο να τοποθετηθούν το ένα πάνω στο άλλο, όπως φαίνεται στην παρακάτω εικόνα.

 

Φωτογραφία μικροελεγκτών από την Progressive Automations

Επιλέξτε το σωστό σύστημα ελέγχου για τον ενεργοποιητή σας και δείτε τη γκάμα μας!


Προσαρμογή του κώδικα

Για να αποκτήσουμε πλήρη έλεγχο της κίνησης του ενεργοποιητή μας, θα χρειαστεί να κάνουμε λίγη προγραμματιστική δουλειά για τον γραμμικό ενεργοποιητή με τη μονάδα Arduino. Έχουμε ετοιμάσει έναν ενδεικτικό κώδικα που κάνει τον ενεργοποιητή μας να εκτείνεται και κατόπιν να ανασύρεται για 10 δευτερόλεπτα προς κάθε κατεύθυνση σε έναν κύκλο 300 δευτερολέπτων.

//Use the jumpers on the board to select which pins will be used

int EnablePin1 = 13;

int PWMPinA1 = 11;

int PWMPinB1 = 3;

int extendtime = 10 * 1000;  // 10 seconds, times 1000 to convert to milliseconds

int retracttime = 10 * 1000; // 10 seconds, times 1000 to convert to milliseconds

int timetorun = 300 * 1000; // 300 seconds, times 1000 to convert to milliseconds

int duty;

int elapsedTime;

boolean keepMoving;

void setup() {

  Serial.begin(9600);

  pinMode(EnablePin1, OUTPUT);//Enable the board

  pinMode(PWMPinA1, OUTPUT);

  pinMode(PWMPinB1, OUTPUT);//Set motor outputs

  elapsedTime = 0; // Set time to 0

  keepMoving = true; //The system will move

}//end setup

void loop() {

  if (keepMoving) 

  {

    digitalWrite(EnablePin1, HIGH); // enable the motor

    pushActuator();

    delay(extendtime);

    stopActuator();

    delay(10);//small delay before retracting

    pullActuator();

    delay(retracttime);

    stopActuator();

    elapsedTime = millis();//how long has it been?

    if (elapsedTime > timetorun) {//if it's been 300 seconds, stop

      Serial.print("Elapsed time is over max run time. Max run time: ");

      Serial.println(timetorun);

      keepMoving = false;  

    }

  }//end if

}//end main loop

void stopActuator() {

  analogWrite(PWMPinA1, 0);

  analogWrite(PWMPinB1, 0); // speed 0-255

}

void pushActuator() {

  analogWrite(PWMPinA1, 255);

  analogWrite(PWMPinB1, 0); // speed 0-255

}

void pullActuator() {

  analogWrite(PWMPinA1, 0);

  analogWrite(PWMPinB1, 255);//speed 0-255

}

 

Είναι σημαντικό να περάσετε τον κώδικα γραμμή προς γραμμή για να κατανοήσετε τι συμβαίνει. Κάνοντάς το, μπορείτε να προσαρμόσετε τον κώδικα ώστε να εκτελεί μια πληθώρα άλλων εργασιών. Προς το παρόν, ωστόσο, το πιο σημαντικό κομμάτι είναι το πρώτο τμήμα και η βρόχος αρχικοποίησης (setup) που εστιάζει στην ανάθεση των ακροδεκτών και στη ρύθμιση της ταχύτητας κύκλου.

Πρέπει να ρυθμίσετε τους ακροδέκτες στο LC-80 ώστε να ταιριάζουν με αυτά που ορίζονται στο πρώτο τμήμα του κώδικα, είτε ρυθμίζοντας τα jumper στο LC-80 είτε προσαρμόζοντας τον κώδικα. Σε αυτήν την περίπτωση, ορίστε τον ακροδέκτη "Enable" στο D13, τον ακροδέκτη "PWMA" στο D11 και τον ακροδέκτη "PWMB" στο D3. Ο ακροδέκτης “Enable” ελέγχει και τροφοδοτεί τον κινητήρα και χωρίς αυτόν ο ενεργοποιητής θα σταματήσει να κινείται και δεν θα μπορεί να ελεγχθεί. Οι ακροδέκτες “PWMA” και “PWMB” ελέγχουν την έκταση και την ανάσυρση του ενεργοποιητή. Δεν χρειαζόμαστε τους ακροδέκτες "Sensor" σε αυτό το παράδειγμα, οπότε μην ανησυχείτε για κάποια επιλογή εκεί.

Ο έλεγχος χρονοδιακόπτη ενός γραμμικού ενεργοποιητή ολοκληρώθηκε. Μπορείτε να ανεβάσετε τον κώδικα στο Arduino χρησιμοποιώντας το IDE τους (λήψη από τον ιστότοπο της Arduino). Μόλις ο γραμμικός ενεργοποιητής εκτείνεται και ανασύρεται, γιατί να μην «παίξετε» λίγο με τον κώδικα; Δοκιμάστε να προσαρμόσετε τους χρόνους έκτασης/ανάσυρσης μέσα στον κώδικα, ανεβάστε τον ξανά στο Arduino και δείτε πώς ανταποκρίνεται ο γραμμικός ενεργοποιητής. Ρυθμίζοντας αυτούς τους αριθμούς στον κώδικα, μπορείτε να ελέγξετε την ταχύτητα και τον συνολικό χρόνο κύκλου κίνησης με βάση την εφαρμογή που θέλετε.


Συμπέρασμα

Παρακάτω έχουμε συμπεριλάβει ένα βίντεο με έναν χρονομετρημένο ενεργοποιητή σε δράση. Για το παράδειγμα βίντεο, θελήσαμε να δείξουμε έναν ακόμη τρόπο με τον οποίο μπορείτε να αλλάξετε τον χρονισμό, οπότε τον ρυθμίσαμε να εκτείνεται και να ανασύρεται για 5 δευτερόλεπτα κάθε φορά σε έναν κύκλο 20 δευτερολέπτων.

Όπως αναφέρθηκε νωρίτερα, αυτό είναι μόνο ένα παράδειγμα για το πώς μπορείτε να αλλάξετε την κίνηση ενός ενεργοποιητή με τη βοήθεια των μικροελεγκτών μας. Αν έχετε στο μυαλό σας μια δική σας, προσαρμοσμένη μέθοδο ελέγχου, μπορείτε να φτιάξετε ένα σύστημα ελέγχου ειδικά για τις απαιτήσεις σας με τη βοήθεια της έμπειρης ομάδας μηχανικών μας. Θα σας καθοδηγήσουν στη διαδικασία και θα διασφαλίσουν ότι θα έχετε πλήρη έλεγχο στις μονάδες σας. Αν θέλετε να μάθετε περισσότερα για τη διαδικασία προσαρμοσμένων παραγγελιών, ρίξτε μια ματιά στη σελίδα προσαρμοσμένων παραγγελιών.