How To Control a Track Linear Actuator with Arduino

Hoe een Track lineaire actuator met Arduino aansturen

Adam Morissette
Adam Morissette
PA Engineer

De PA-18 Track Lineaire actuator is onze grootste actuator met vaste lengte en wordt vaak gebruikt in maatwerkmeubilair, huisautomatisering (domotica) en robotica. U kunt een actuator eenvoudig aansturen met een Arduino‑board, en dit artikel laat zien hoe u een Arduino‑gestuurde lineaire actuator bouwt en programmeert die eenvoudig kan worden aangepast aan uw toepassing!

 

Benodigde hardware

Voor een Arduino‑gestuurde lineaire actuator heeft u de volgende hardware nodig; alle onderdelen zijn verkrijgbaar bij Progressive Automations:

 

Systeembekabeling

De in deze opstelling gebruikte actuator vereist een ingangsspanning van 12VDC en tot 8A Stroom bij volle Belasting. Deze waarden liggen ver boven wat een Arduino‑microcontroller kan leveren en zouden ‘magische’ rook uit de Arduino laten komen. Om de Arduino niet te beschadigen, gebruiken we de MegaMoto Plus H‑brug. De H‑brug kan aan de vermogenseisen voldoen en kan eenvoudig worden gebruikt om een actuator met een Arduino aan te sturen.  

Voor dit systeem zijn er verbindingen van de Arduino naar de MegaMoto Plus H‑brug en naar de twee drukknoppen. Elke drukknop vereist één ingang, gekozen uit de beschikbare GPIO‑pinnen van de Arduino. De H‑brug heeft vier verbindingen met de Arduino: drie uitgangen en één ingang. De door de H‑brug gebruikte pinnen zijn vooraf ingesteld en kunnen niet worden gewijzigd.

 

Blokdiagram

Het onderstaande blokdiagram licht de vermogenseisen en verbindingen kort toe. De Arduino werkt op een 5V‑voeding en de H‑brug op 12V. Als u twee aparte voedingen gebruikt, is het belangrijk dat de massa’s worden gedeeld om een scenario met een zwevende massa te voorkomen.

 

Blokdiagram

 

Arduino-commando's

Installeer de Arduino IDE op een desktopcomputer of laptop. Houd er rekening mee dat de bekabeling van uw systeem invloed heeft op uw Arduino‑code. Controleer daarom uw verbindingen nogmaals en vergelijk ze met de code die u hebt ingevoerd.

Met het Arduino‑commando pinMode definieert u de pinnen als inputs of outputs. Om te wijzigen welk signaal de Arduino naar een specifieke pin stuurt, gebruikt u de commando’s digitalWrite en analogWrite. Daarnaast worden de commando’s digitalRead en analogRead gebruikt wanneer de Arduino het signaal op een specifieke pin moet controleren.

In het onderstaande programma wordt het commando digitalWrite gebruikt om de H‑brug te activeren of te deactiveren en om de pinnen te configureren die voor de drukknoppen worden gebruikt. Het commando analogWrite wordt gebruikt om de waarde voor het PWM‑signaal in het bereik van 0 tot 255 naar de H‑brug te zetten. Het commando digitalRead wordt gebruikt om te controleren of de drukknoppen zijn ingedrukt of losgelaten. Het commando analogRead wordt gebruikt om de Stroom te meten die door de Motor van de actuator wordt opgenomen, wat bevestigt wanneer de actuator aan het einde van zijn Slaglengte is.

 

Arduino-code

In de volgende sectie doorlopen we de programmadefinities, setup, hoofdlus en drukknopfuncties voor een Arduino‑gestuurde lineaire actuator. Het is belangrijk de code regel voor regel door te nemen om te begrijpen hoe deze werkt. Met dit inzicht kunt u aanpassingen doen op basis van uw toepassing.

Programmadefinities

Dit deel van de code is de setup van de pinverbindingen. Controleer of uw verbindingen met het Arduino‑bord overeenkomen met de ingevoerde nummers. Deze waarden kunnen worden gewijzigd als u extra componenten op de Arduino aansluit die mogelijk een verschuiving van pinverbindingen vereisen.

Arduino-code

Programma-setup

Dit deel van de code configureert de verbonden pinnen als input of output. De twee knoppen kunnen worden ingesteld op HIGH of LOW, afhankelijk van hoe u ze hebt aangesloten (pull-up of pull-down). Hoewel de Arduino interne pull-up‑weerstanden heeft, kunt u een externe weerstand toevoegen om de schakelaars te ontdenderen en valse triggering te voorkomen.

Arduino-code #2

Hoofdlus

De hoofdlus controleert voortdurend of de knoppen zijn ingedrukt en voert een bepaald deel van de code uit, afhankelijk van het resultaat van de drukknopfunctie. Er is een gedeelte met een toestandsmachine opgenomen om te bepalen wat de Arduino‑gestuurde lineaire actuator doet en hoe hij moet reageren op basis van de inputs (d.w.z. de drukknoppen).

Arduino-code #3
Arduino-code #4

 

Functies voor drukknoppen

Deze functies lezen digitaal de status van de drukknoppen uit om een actuator met een Arduino te besturen. Elke drukknopfunctie heeft een ontdenderlus binnen de hoofd-if‑instructie om onbedoelde activering te voorkomen en het verkeerde signaal naar de Arduino te sturen. De uitvoer van deze functies is een Booleaanse waarde. Als bijvoorbeeld op de startknop wordt gedrukt, verandert de waarde van startButton in true. De Booleaanse waarde wordt vervolgens in de hoofdlus gebruikt om verdere beslissingen te nemen.    

Arduino-code #5

 

Tot slot

De functionaliteit van dit systeem gaat verder dan wat in dit artikel wordt getoond. De Arduino‑microcontroller en MegaMoto Plus H‑brug kunnen worden gebruikt om veel complexere regelroutines te implementeren. Deze opstelling ondersteunt variabele Snelheidsregeling door het commando analogWrite te gebruiken om het PWM‑signaal te zetten. De Stroom van de Motor van de actuator kan worden bewaakt voor Belastingsdetectie om extra opdrachten te activeren.

Bovendien kunnen extra sensoren worden aangesloten voor een geavanceerde, Arduino‑gestuurde lineaire actuator. Zo kan een ultrasone sensor worden aangesloten om de Motor te starten/stoppen wanneer u zich op een bepaalde afstand bevindt, of om tal van andere interessante functionaliteiten te triggeren. De mogelijkheden zijn eindeloos. Als de pinnen op de Arduino echter schaars worden, kunt u voor een ander Arduino‑model kiezen. Als alternatief kunnen meerdere Arduino’s in een daisy-chain worden doorgelust om met elkaar en met verschillende componenten te communiceren. Deze route vergt echter de nodige programmeerervaring.

Voor meer informatie kunt u ons e-mailen via sales@progressiveautomations.com, of bel ons op 1-800-676-6123.