Nel nostro ultimo post "How To", vedremo come controllare la temporizzazione del movimento di un attuatore lineare usando un microcontrollore. I microcontrollori offrono molta libertà nel controllo del movimento e questo è solo un esempio di un numero quasi infinito di opzioni disponibili. A seconda della tua applicazione, il progetto esempio in questo articolo può essere adattato alle tue esigenze: che tu aggiunga un altro attuatore temporizzato o potenzi l'alimentatore per gestire un attuatore lineare più potente, dipende tutto da te.
Controllo del movimento con un microcontrollore
Un microcontrollore Arduino verrà utilizzato per controllare la temporizzazione del movimento di un attuatore lineare, ma qualsiasi microcontrollore andrà bene. Tuttavia, poiché usiamo uno shield, il microcontrollore deve essere compatibile. Ti guideremo attraverso i vari parametri che puoi regolare per cambiare la velocità di un attuatore lineare.
Cosa ti servirà
Per questo esempio, utilizzeremo i seguenti componenti per il controllo di un attuatore lineare:
- 1 x MegaMoto Plus
- 1 x Arduino Uno Rev3
- 1 x Mini Industrial Actuator (PA-09, ma qualsiasi attuatore lineare andrà bene)
- 1 x Alimentatore (PS-20-12, ma qualsiasi alimentatore 12V andrà bene)
Collegamento dei componenti
Ora che abbiamo i componenti, dobbiamo collegare il tutto. Per fortuna, i collegamenti sono semplici usando uno shield invece di una scheda separata che richiede cablaggi e saldature aggiuntivi.
Per prima cosa, colleghiamo il nostro attuatore allo shield LC-80 MegaMoto Plus collegando i due cavi provenienti dall'attuatore ai morsetti a vite A/B sul LC-80. Poi dobbiamo collegare il LC-80 al nostro alimentatore, in questo caso il PS-20-12. Lo facciamo collegando i cavi positivo e negativo dell'alimentatore ai terminali BAT +/- del LC-80.
Infine, dobbiamo collegare il LC-80 al LC-066, operazione semplice come impilare le due schede una sull'altra, come mostrato nell'immagine sotto.

Regolazione del codice
Per avere il pieno controllo del movimento del nostro attuatore, dovremo fare un po' di programmazione dell'attuatore lineare con la nostra unità Arduino. Abbiamo preparato un esempio di codice che fa estendere e poi ritrarre il nostro attuatore per 10 secondi in ciascuna direzione, per un ciclo di 300 secondi.
//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
}
È importante analizzare il codice riga per riga per capire cosa succede. Così potrai personalizzarlo per svolgere molte altre funzioni. Per ora, però, la parte più importante è la prima sezione e il loop di setup, che si concentrano sull'assegnazione dei pin e sull'impostazione della velocità del ciclo.
Devi configurare i pin sul nostro LC-80 in modo che corrispondano a quanto indicato nella prima sezione del codice, impostando i jumper sul LC-80 o modificando il codice. In questo caso, imposta il pin "Enable" su D13, il pin "PWMA" su D11 e il pin "PWMB" su D3. Il pin “Enable” è quello che controlla e alimenta il motore e, senza di esso, l'attuatore smette di muoversi e non può essere controllato. I pin “PWMA” e “PWMB” controllano l'estensione e la retrazione dell'attuatore. Non abbiamo bisogno dei pin "Sensor" in questo esempio, quindi non preoccuparti di selezionare nulla lì.
Il controllo del timer di un attuatore lineare è ora completo. Puoi caricare il codice su Arduino utilizzando il loro IDE (scaricabile dal sito Arduino). Una volta che il tuo attuatore lineare si estende e si ritrae, perché non sperimentare un po' con il codice? Prova ad aggiustare il tempo di estensione/retrazione nel codice, ricaricalo su Arduino e osserva come risponde l'attuatore lineare. Modificando questi valori nel codice, puoi controllare la velocità e la durata totale del ciclo di movimento in base alla tua applicazione.
Conclusione
Qui sotto abbiamo inserito un video di un attuatore temporizzato in azione. Nell'esempio video, abbiamo voluto mostrare un altro modo per modificare la temporizzazione, quindi lo abbiamo fatto estendere e ritrarre per 5 secondi alla volta su un ciclo di 20 secondi.
Come detto in precedenza, questo è solo un esempio di come puoi modificare il movimento di un attuatore con l'aiuto dei nostri microcontrollori. Se hai in mente un tuo metodo di controllo personalizzato, puoi far realizzare un sistema di controllo specifico per le tue esigenze con l'aiuto del nostro talentuoso team di ingegneri. Ti guideranno nel processo e si assicureranno che tu abbia il pieno controllo delle tue unità. Se vuoi saperne di più sul processo di ordine personalizzato, dai un'occhiata alla nostra pagina degli ordini personalizzati.