Blogindlæg Sådan kommunikerer en Arduino eller Raspberry Pi med vores Hall-effektaktuator: PA-04-HS

Hvordan en Arduino eller Raspberry Pi kommunikerer med vores Hall-effektaktuator: PA-04-HS

Guest Writer
Guest Writer
PA Engineer

Velkommen til endnu en teknisk blog fra Progressive Automations! I dag vil vi skitsere, hvordan en Arduino kan kommunikere med vores PA-04-HS.

En hall-effektsensor er en elektronisk komponent, der muliggør præcis styring af en lineær aktuatorDen er normalt placeret i gearkassen sammen med en magnetisk skive. Når den lineære aktuator bevæger sig, roterer den magnetiske skive, hvilket skaber et magnetfelt, der passerer gennem hall-effektsensoren. Dette skaber en spændingspuls, som kan tælles for at bestemme den lineære aktuators position, hastighed eller retning. For at udnytte disse signaler skal der dog bruges en mikrocontroller, såsom en Arduino eller Raspberry Pi. I denne artikel vil vi dykke ned i brugen af en aktuator til en Raspberry Pi, og hvordan man styrer en lineær aktuator med Arduino. Som nævnt vil begge disse mikrocontrollere blive demonstreret med en Progressive Automations-guide. PA-04-HS Hall-effekt lineær aktuator.

PA-04-HS leveres med indbygget Hall-effekt-feedback!

Beregninger af position, hastighed og retning

Før vi dykker ned i detaljerne, er det første, vi skal forstå, hvordan signalerne fra Hall-effektsensoren bruges til at beregne positionen, hastigheden og retningen af den lineære aktuator. PA-04-HS, er halleffektsensoren designet til at producere to signaler i en af to binære tilstande: tændt eller slukket. Disse to signaler vil stige og falde, når elmotoren roterer med en 90-graders faseforskel mellem dem. Bare rolig, hvis du ikke ved, hvordan du implementerer noget af dette i kode, der kan læses af en mikrocontroller, det giver vi dig senere i denne artikel.

Position

Den lineære aktuators position kræver nogle beregninger ved hjælp af Hall-effektsignaler og nogle målinger af selve aktuatoren. Ligningen for aktuatorstangens position kræver slaglængden af aktuator, og det samlede antal kanter detekteret fra fuldt tilbagetrukket til forlænget. Ved hjælp af disse målinger kan følgende ligning anvendes:

Equation 1

 

De kanter, der detekteres, siden de er fuldt trukket tilbage i ovenstående ligning, vil starte ved nul og stige med én, når en kant detekteres i fremadgående retning, og falde med én, når en kant detekteres i bagudgående retning.

 

Hastighed

En aktuators hastighed kan måles ved hjælp af halleffektsignaler ved at implementere en timer i programmet. Denne timer vil blive brugt til at måle tiden mellem detekterede kanter. Derudover kræves den beregnede værdi af ændringen i slaglængde pr. detekteret kant. Ved hjælp af disse værdier kan følgende ligning anvendes:

Equation 2

 

Retning

Bevægelsesretningen for en aktuator kan bestemmes ved at se på den aktuelle tilstand af de to signaler (signal A og B) og sammenligne den med den sidste tilstand af de to signaler. Dette skyldes, at de to signaler vil ændre, hvilket der er førende, og hvilket der er bagud, afhængigt af aktuatorens bevægelsesretning.

Schema of the state of the two signals (signal A and B)

 

Table of the state of the two signals (signal A and B)

 

Hvilken er bedre, en Arduino eller en Raspberry Pi mikrocontroller?

Det handler ikke om, hvad der generelt er bedst, men mere om, hvad der er bedst til din tilsigtede applikation. Det ville være bedre at vælge en Arduino, hvis hovedopgaven for din applikation er at læse dataene fra Hall-effektsensoren og returnere et bestemt sæt instruktioner.

På den anden side ville Raspberry Pi være mere praktisk, når man løser opgaver, der udføres på en personlig computer. Derudover forenkler Raspberry Pi workflowstyring i forskellige scenarier, såsom at oprette forbindelse til internettet eller styre en lineær aktuator via en mobil enhed.

Det kan være praktisk at bruge begge mikrocontrollere til at løse forskellige opgaver. Raspberry Pi'en kan få adgang til kode og justere forskellige parametre, som derefter kan sendes til en Arduino for at styre den lineære aktuator baseret på de oplysninger, den indsamler.

Lad os dykke ned i detaljerne og vise dig, hvordan du styrer en lineær aktuator med Arduino.

 

Arduino med lineære aktuatorer

Arduino Uno Rev3

 

Afhængigt af din applikation kan du igen vælge mellem at bruge en polling-metode eller en interrupt med en mikrocontroller, når du håndterer digitale signaler. Polling er en programmeret metode, hvor en mikrocontroller periodisk kontrollerer tilstanden af et input for at se, om der har været en ændring. Interrupts er en hardwaremekanisme, der øjeblikkeligt flytter fokus i mikrocontrollerens program, når tilstanden ændres på et input.

For demonstration purposes, we will opt for the interrupt method to know the exact moment when a signal changes state. On an Arduino microcontroller, an interrupt is used by creating an Interrupt Servicing Routine (ISP).

Her er hvad du skal bruge:

 

Ledningsføring af Arduino og Shield-komponenter

Hall-effektsensorerne har 4 ledninger: 5V, GND og 2 signalledninger. Hver signalledning udsender pulser, når motoren drejer. Der er også to aktuatorledninger, der skal tilsluttes MegaMoto'en. Vi bruger kun ét af Hall-effektsignalerne.

Tilslut den lineære aktuator til Arduinoen og MegaMotoen som følger:

  • Rød sensorledning til Arduino 5V-ben.
  • Sort sensorledning til Arduino GND-ben.
  • Gul/orange ledning til Arduino pin 2 eller 3 (hvis du bruger en anden Arduino, skal du sørge for, at pinsene er afbrydelser).
  • Rød aktuatorledning til MOTA på MegaMoto.
  • Sort aktuatorledning til MOTB på MegaMoto.

Når motorerne er korrekt tilsluttet til printkortene, skal strømforsyningen tilsluttes som følger:

  • Tilslut 12V til BAT+.
  • Forbind GND til BAT-.
  • Tilslut 12V til Vin på Arduinoen.
  • Forbind to knapper mellem pin 7 og 8 på Arduinoen, og tilslut dem til GND.

Der er 4 typer triggere for afbrydelsen: Stigende, Faldende, Høj og Lav. Ved at ændre triggeren kan du justere, hvornår afbrydelsen sker. Stigende er, når pinnen ser en overgang fra lav til høj, faldende er, når den ser fra høj til lav, lav er, når pinnen er lav, og høj er, når pinnen er høj.

For den fulde Arduino-kode, besøg vores guide her: Hall-effekt lineær aktuator Arduino-kode

Koden vil bevæge aktuatoren fremad eller bagud med en bestemt mængde, når du trykker på knapperne på pin 7 eller 8 (aktiv LAV). Den inkluderer også en hjemsøgningsrutine. Dette er vigtigt, da du, hvis du kører motoren frem og tilbage i lang tid, kan miste en tæller hist og her og langsomt miste overblikket over, hvor du er. Hjemsøgningsrutinen flytter den lineære aktuator tilbage til en kendt position, så tælleren kan nulstilles.

 

Raspberry Pi-aktuator

Så hvordan tilslutter man en aktuator til en Raspberry Pi 2, 4 eller nyere model? Det er nemt at styre en lineær aktuator med en Raspberry Pi og kan gøres via internettet, hvilket muliggør trådløs styring. Følg trinnene i den følgende vejledning for at se præcis hvordan: Raspberry Pi lineær aktuatorstyring.

Raspberry Pi 4 bruges til at køre serversoftwaren og modtage kommandoer til styring af den lineære aktuator. Denne vejledning bruger dog ikke en hall-effektsensor. For at gøre dette kan et Arduino-board tilsluttes den lineære aktuator og Raspberry Pi for at sende/modtage data trådløst. Selvom Raspberry Pi også kan bruges direkte til at læse sensordata, ligesom Arduino, kan det være overkill, hvis du kun styrer et par lineære aktuatorer.

 

Styring af flere lineære aktuatorer

Hall Effect Sensor Actuator IP66 Model: PA-04-HS

 

Hvis du har brug for at styre flere lineære aktuatorer med en Raspberry Pi eller Arduino, skal du bruge et par ekstra komponenter, og koden skal justeres. To eller flere lineære aktuatorer kan synkroniseres ved at spore Hall-effektorsensorens tællinger, og hvis tællingerne for de lineære aktuatorer kommer for langt fra hinanden, vil hver lineær aktuator sænke farten for at udligne positionerne.

Se hele instruktionssættet her: Styr flere lineære aktuatorer med en mikrocontroller

Alternativt, hvis synkronisering ikke er en del af din tilsigtede applikation, kan du blot bruge en Arduino til en eller to aktuatorer, afhængigt af antallet af tilgængelige interrupt-pins. For at styre flere aktuatorer kan du enten bruge flere Arduino-boards eller få et Arduino-skjold med flere interrupt-pins.

Gennemse vores udvalg af mikrocontrollere for den ultimative aktuatorstyring!

Konklusion

Hvis du er klar til udfordringen, er der yderligere metoder, du kan prøve med en Arduino med lineære aktuatorer til at styre bevægelsen, f.eks. ved at bruge en smart PID-kode, som du kan se her: Lineær aktuator PID-styring. En halleffektsensor inde i en lineær aktuator, såsom PA-04-HS, giver et ekstra kontrolniveau, der nemt kan konfigureres ved hjælp af en Arduino eller Raspberry Pi. Uanset om din applikation kun kræver aflæsning af sensordata, eller du gerne vil tage din lineære aktuator til det næste niveau ved at sætte den online, er en hall-effektsensor kombineret med en mikrocontroller efter eget valg vejen frem.

Hvis du har spørgsmål til indholdet af denne artikel, eller blot ønsker at diskutere mulige produktløsninger, bedes du venligst kontakte os. kontakt os og vi vil med glæde hjælpe!