How To Control a Track Linear Actuator with Arduino

Come controllare un attuatore lineare a slitta con Arduino

Adam Morissette
Adam Morissette
PA Engineer

Il PA-18 Track Linear Actuator è il nostro attuatore a lunghezza fissa più grande ed è comunemente utilizzato in mobili su misura, domotica e robotica. Puoi controllare facilmente un attuatore con una scheda Arduino, e questo articolo mostrerà come costruire e programmare un attuatore lineare controllato da Arduino che può essere facilmente adattato alla tua applicazione!

 

Hardware necessario

Per un attuatore lineare controllato da Arduino sono necessari i seguenti componenti hardware, tutti acquistabili da Progressive Automations:

 

Cablaggio del sistema

L'attuatore utilizzato in questa configurazione richiede una tensione di ingresso 12VDC e fino a 8A di corrente a pieno carico. Questi valori sono molto più alti di quanto un microcontrollore Arduino sia in grado di fornire e potrebbero far uscire il 'fumo magico' dall'Arduino. Per evitare di danneggiare l'Arduino, si utilizza il ponte H MegaMoto Plus. Il ponte H può gestire i requisiti di potenza e può essere facilmente usato per controllare un attuatore con un Arduino.  

Per questo sistema ci sono collegamenti dall'Arduino al ponte H MegaMoto Plus e ai due pulsanti. Ogni pulsante richiede un singolo ingresso, scelto tra i pin GPIO disponibili dell'Arduino. Il ponte H ha quattro collegamenti con l'Arduino, tre uscite e un ingresso. I pin utilizzati dal ponte H sono preimpostati e non possono essere modificati.

 

Diagramma a blocchi

Il diagramma a blocchi qui sotto spiega brevemente i requisiti di potenza e i collegamenti. L'Arduino funziona con un'alimentazione a 5V e il ponte H funziona a 12V. Se utilizzi due alimentatori separati, è importante che le loro masse siano in comune per evitare uno scenario di massa flottante.

 

Diagramma a blocchi

 

Comandi Arduino

Sarà necessario installare l'IDE di Arduino su un computer desktop o portatile. Tieni presente che il cablaggio del sistema influenzerà il tuo codice Arduino. Pertanto, è importante ricontrollare i collegamenti e confrontarli con il codice inserito.

Il comando Arduino pinMode è utilizzato per definire i pin come ingressi o uscite. Per cambiare quale segnale l'Arduino invia a un pin specifico si usano i comandi digitalWrite e analogWrite. Inoltre, i comandi digitalRead e analogRead si utilizzano quando l'Arduino deve controllare il segnale su un pin specifico.

Nel programma seguente, il comando digitalWrite viene utilizzato per abilitare o disabilitare il ponte H e per configurare i pin usati per i pulsanti. Il comando analogWrite è usato per impostare, nell'intervallo da 0 a 255, il valore del segnale PWM verso il ponte H. Il comando digitalRead è usato per verificare se i pulsanti sono stati premuti o rilasciati. Il comando analogRead è usato per misurare la corrente assorbita dal motore dell'attuatore, che consentirà di verificare quando l'attuatore è alla fine della sua corsa.

 

Codice Arduino

La sezione seguente passa in rassegna le definizioni del programma, il setup, il main loop e le funzioni dei pulsanti per un attuatore lineare controllato da Arduino. È importante analizzare il codice riga per riga per capire come funziona. Questa comprensione ti permetterà di apportare regolazioni in base alla tua applicazione.

Definizioni del programma

Questa sezione di codice definisce la configurazione dei collegamenti dei pin. Ricontrolla che i collegamenti alla scheda Arduino corrispondano ai numeri inseriti. Questi valori possono essere modificati se colleghi componenti aggiuntivi all'Arduino, il che potrebbe richiedere di spostare i collegamenti dei pin.

Codice Arduino

Impostazione del programma

Questa sezione di codice configura i pin collegati come ingresso o uscita. I due pulsanti possono essere impostati su HIGH o LOW a seconda di come li hai collegati (pull-up o pull-down). Sebbene l'Arduino disponga di resistenze di pull-up interne, potresti voler aggiungere una resistenza esterna per l'antirimbalzo degli interruttori e per evitare attivazioni spurie.

Codice Arduino #2

Ciclo principale

Il ciclo principale controlla continuamente se i pulsanti sono stati premuti ed esegue una specifica sezione di codice in base al risultato della funzione dei pulsanti. È inclusa una sezione a macchina a stati per determinare cosa sta facendo l'attuatore lineare controllato da Arduino e come dovrebbe reagire in base agli ingressi (cioè i pulsanti).

Codice Arduino #3
Codice Arduino #4

 

Funzioni dei pulsanti

Queste funzioni leggono digitalmente lo stato dei pulsanti per controllare un attuatore tramite Arduino. Ogni funzione relativa ai pulsanti include un ciclo di antirimbalzo all'interno dell'istruzione if principale per evitare attivazioni errate e l'invio del segnale sbagliato all'Arduino. L'output di queste funzioni è un valore booleano. Ad esempio, se il pulsante di avvio viene premuto, il valore di startButton diventerà true. Il valore booleano viene poi utilizzato nel ciclo principale per prendere ulteriori decisioni.    

Codice Arduino #5

 

Considerazioni finali

La funzionalità di questo sistema va oltre quanto mostrato in questo articolo. Il microcontrollore Arduino e il ponte H MegaMoto Plus possono essere utilizzati per implementare routine di controllo ben più complesse. Questa configurazione è in grado di offrire un controllo a velocità variabile utilizzando il comando analogWrite per impostare il segnale PWM. La corrente del motore dell'attuatore potrebbe essere monitorata per il rilevamento del carico e per attivare comandi aggiuntivi.

Inoltre, è possibile collegare sensori aggiuntivi per ottenere un attuatore lineare controllato da Arduino più avanzato. Ad esempio, un sensore a ultrasuoni può essere collegato per avviare/arrestare il motore quando sei a una certa distanza oppure può essere usato per attivare molte altre funzionalità interessanti. Le possibilità sono infinite. Tuttavia, se i pin disponibili sull'Arduino iniziano a scarseggiare, puoi optare per un modello di Arduino differente. In alternativa, più Arduino possono essere collegati in cascata per comunicare tra loro e con vari componenti. Tuttavia, questa strada richiederà una buona dose di esperienza di programmazione.

Per ulteriori informazioni, inviaci un'email a sales@progressiveautomations.com, oppure chiamaci al 1-800-676-6123.