Velkommen til enda en teknisk blogg fra Progressive Automations! I dag skal vi skissere hvordan en Arduino kan kommunisere med vår PA-04-HS.
En halleffektsensor er en elektronisk komponent som muliggjør presis kontroll av en lineær aktuatorDen er vanligvis plassert inne i girkassen ved siden av en magnetisk skive. Når den lineære aktuatoren beveger seg, roterer den magnetiske skiven, noe som skaper et magnetfelt som passerer gjennom halleffektsensoren. Dette skaper en spenningspuls, som kan telles for å bestemme posisjonen, hastigheten eller retningen til den lineære aktuatoren. For å bruke disse signalene må imidlertid en mikrokontroller brukes, for eksempel en Arduino eller Raspberry Pi. I denne artikkelen skal vi dykke ned i bruken av en aktuator for en Raspberry Pi og hvordan man styrer en lineær aktuator med Arduino. Som nevnt vil begge disse mikrokontrollerne bli demonstrert med en Progressive Automations-guide. PA-04-HS Hall-effekt lineær aktuator.
Beregninger av posisjon, hastighet og retning
Før vi går inn på noen detaljer, er det første vi må forstå hvordan signalene som kommer fra halleffektsensoren brukes til å beregne posisjonen, hastigheten og retningen til den lineære aktuatoren. PA-04-HS, er halleffektsensoren designet for å produsere to signaler i en av to binære tilstander: på eller av. Disse to signalene vil stige og falle når den elektriske motoren roterer med en 90-graders faseforskjell mellom seg. Ikke bekymre deg hvis du ikke vet hvordan du implementerer noe av dette i kode som kan leses av en mikrokontroller, det vil vi gi deg senere i denne artikkelen.
Posisjon
Posisjonen til den lineære aktuatoren krever noen beregninger ved hjelp av halleffektsignaler og noen målinger av selve aktuatoren. Ligningen for posisjonen til aktuatorstangen krever slaglengden til aktuator, og det totale antallet kanter detektert fra helt tilbaketrukket til utstrakt. Ved å bruke disse målingene kan følgende ligning brukes:

Kantene som oppdages siden de er helt trukket tilbake i ligningen ovenfor, vil starte på null og øke med én når en kant oppdages i fremoverretningen, og avta med én når en kant oppdages i bakoverretningen.
Hastighet
Hastigheten til en aktuator kan måles ved hjelp av halleffektsignaler ved å implementere en timer i programmet. Denne timeren vil bli brukt til å måle tiden mellom detekterte kanter. I tillegg kreves den beregnede verdien av endringen i slaglengde per detektert kant. Ved å bruke disse verdiene kan følgende ligning brukes:

Retning
Bevegelsesretningen til en aktuator kan bestemmes ved å se på den nåværende tilstanden til de to signalene (signal A og B) og sammenligne den med den siste tilstanden til de to signalene. Dette er fordi de to signalene vil endre hvilket som er ledende og hvilket som er etterslepende avhengig av bevegelsesretningen til aktuatoren.


Hvilken er bedre, en Arduino eller en Raspberry Pi mikrokontroller?
Det handler ikke om hva som er bedre generelt, men mer om hva som er bedre for den tiltenkte applikasjonen. Det ville være bedre å velge en Arduino hvis hovedoppgaven til applikasjonen din er å lese dataene fra halleffektsensoren og returnere et bestemt sett med instruksjoner.
På den annen side ville Raspberry Pi være mer praktisk når man skal løse oppgaver som utføres på en personlig datamaskin. I tillegg forenkler Raspberry Pi arbeidsflythåndtering i ulike scenarier, som å koble til internett eller styre en lineær aktuator via en mobil enhet.
Det kan være praktisk å bruke begge mikrokontrollerne til å løse forskjellige oppgaver. Raspberry Pi kan få tilgang til kode og justere diverse parametere som deretter kan sendes til en Arduino for å styre den lineære aktuatoren basert på informasjonen den samler inn.
La oss dykke ned i detaljene og vise deg hvordan du styrer en lineær aktuator med Arduino.
Arduino med lineære aktuatorer

Avhengig av applikasjonen din kan du igjen velge mellom å bruke en polling-metode eller et avbrudd med en mikrokontroller når du håndterer digitale signaler. Polling er en programmert metode der en mikrokontroller regelmessig sjekker tilstanden til en inngang for å se om det har vært en endring. Avbrudd er en maskinvaremekanisme som umiddelbart flytter fokuset til mikrokontrollerens program når tilstanden endres på en inngang.
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 hva du trenger:
Kabling av Arduino- og Shield-komponenter
Hall-effektsensorene har fire ledninger: 5V, GND og to signalledninger. Hver signalledning sender ut pulser når motoren roterer. Det er også to aktuatorledninger som skal kobles til MegaMotoen. Vi vil bare bruke ett av hall-effektsignalene.
Koble den lineære aktuatoren til Arduinoen og MegaMotoen som følger:
- Rød sensorledning til Arduino 5V-pinne.
- Svart sensorledning til Arduino GND-pinne.
- Gul/oransje ledning til Arduino pin 2 eller 3 (hvis du bruker en annen Arduino, sørg for at pinnene er avbruddspinner).
- Rød aktuatorledning til MOTA på MegaMoto.
- Svart aktuatorledning til MOTB på MegaMoto.
Når motorene er riktig koblet til kortene, kobler du strømforsyningen som følger:
- Koble 12V til BAT+.
- Koble GND til BAT-.
- Koble 12V til Vin på Arduinoen.
- Koble to knapper mellom pinne 7 og 8 på Arduinoen og koble dem til GND.
Det finnes fire typer triggere for avbruddet: Stigende, Fallende, Høy og Lav. Ved å endre triggeren kan du justere når avbruddet skjer. Stigende er når pinnen ser en overgang fra lav til høy, fallende er når den ser fra høy til lav, lav er når pinnen er lav, og høy er når pinnen er høy.
For den fullstendige Arduino-koden, besøk guiden vår her: Hall-effekt lineær aktuator Arduino-kode
Koden vil bevege aktuatoren fremover eller bakover med en angitt mengde når du trykker på knappene på pinne 7 eller 8 (aktiv LAV). Den inkluderer også en hjemsøkingsrutine. Dette er viktig siden hvis du kjører motoren frem og tilbake over lengre tid, kan du miste en telling her og der og sakte miste oversikten over hvor du er. Hjemsøkingsrutinen flytter den lineære aktuatoren tilbake til en kjent posisjon, slik at telleren kan nullstilles.
Raspberry Pi-aktuator
Så, hvordan kobler man en aktuator til en Raspberry Pi 2, 4 eller nyere modell? Det er enkelt å styre en lineær aktuator med en Raspberry Pi og kan gjøres over internett, noe som gir trådløs kontroll. Følg trinnene i den følgende veiledningen for å se nøyaktig hvordan: Raspberry Pi lineær aktuatorkontroll.
Raspberry Pi 4 brukes til å kjøre serverprogramvaren og motta kommandoer for kontroll av den lineære aktuatoren. Denne veiledningen bruker imidlertid ikke en halleffektsensor. For å gjøre dette kan et Arduino-kort kobles til den lineære aktuatoren og Raspberry Pi for å sende/motta data trådløst. Selv om Raspberry Pi også kan brukes direkte til å lese sensordata, omtrent som Arduino, kan det være i overkant hvis du bare kontrollerer noen få lineære aktuatorer.
Styring av flere lineære aktuatorer

Hvis du trenger å styre flere lineære aktuatorer med en Raspberry Pi eller Arduino, trenger du noen ekstra komponenter, og koden må justeres. To eller flere lineære aktuatorer kan synkroniseres ved å spore hall-effektorsensortellingene, og hvis tellingene til de lineære aktuatorene blir for langt fra hverandre, vil hver lineær aktuator bremse ned for å utjevne posisjoner.
Se hele instruksjonssettet her: Styr flere lineære aktuatorer med en mikrokontroller
Alternativt, hvis synkronisering ikke er en del av den tiltenkte applikasjonen din, kan du ganske enkelt bruke en Arduino for én eller to aktuatorer, avhengig av antall tilgjengelige avbruddspinner. For å kontrollere flere aktuatorer kan du enten bruke flere Arduino-kort eller skaffe deg et Arduino-skjold med flere avbruddspinner.
Konklusjon
Hvis du er klar for utfordringen, finnes det flere metoder du kan prøve med en Arduino med lineære aktuatorer for å kontrollere bevegelsen, for eksempel å bruke litt smart PID-kode, som du kan se her: Lineær aktuator PID-kontroll. En halleffektsensor inne i en lineær aktuator, slik som PA-04-HS, gir et ekstra kontrollnivå som enkelt kan settes opp ved hjelp av en Arduino eller Raspberry Pi. Enten applikasjonen din bare krever lesing av sensordata, eller du ønsker å ta den lineære aktuatoren til neste nivå ved å koble den til nettet, er en halleffektsensor, kombinert med en mikrokontroller, veien å gå.
Hvis du har spørsmål om innholdet i denne artikkelen, eller bare ønsker å diskutere mulige produktløsninger, kan du kontakt oss og vi hjelper deg gjerne!