Välkommen till ännu en teknisk blogg från Progressive Automations! Idag kommer vi att beskriva hur en Arduino kan kommunicera med vår PA-04-HS.
En halleffektsensor är en elektronisk komponent som möjliggör exakt styrning av en linjär ställdonDen är vanligtvis placerad inuti växellådan bredvid en magnetisk skiva. När det linjära ställdonet rör sig roterar magnetskivan, vilket skapar ett magnetfält som passerar genom halleffektsensorn. Detta skapar en spänningspuls som kan räknas för att bestämma det linjära ställdonets position, hastighet eller riktning. För att använda dessa signaler måste dock en mikrokontroller användas, till exempel en Arduino eller Raspberry Pi. I den här artikeln kommer vi att dyka in i hur man använder ett ställdon för en Raspberry Pi och hur man styr ett linjärt ställdon med Arduino. Som nämnts kommer båda dessa mikrokontroller att demonstreras med hjälp av Progressive Automations. PA-04-HS Halleffekt linjär ställdon.
Positions-, hastighets- och riktningsberäkningar
Innan vi går in på några detaljer är det första vi måste förstå hur signalerna som kommer från halleffektsensorn används för att beräkna position, hastighet och riktning för det linjära ställdonet. PA-04-HS, halleffektsensorn är utformad för att producera två signaler i ett av två binära tillstånd: på eller av. Dessa två signaler kommer att stiga och falla när elmotorn roterar med en 90-graders fasskillnad mellan sig. Oroa dig inte om du inte vet hur du implementerar något av detta i kod som kan läsas av en mikrokontroller, det återkommer vi till dig senare i den här artikeln.
Placera
Det linjära ställdonets position kräver vissa beräkningar med hjälp av halleffektsignaler och några mätningar av själva ställdonet. Ekvationen för ställdonstångens position kräver slaglängden på ställdon, och det totala antalet detekterade kanter från helt indragna till utdragna. Med hjälp av dessa mätningar kan följande ekvation användas:

Kanterna som detekteras sedan de är helt tillbakadragna i ovanstående ekvation kommer att börja vid noll och öka med ett när en kant detekteras i framåtriktningen och minska med ett när en kant detekteras i bakåtriktningen.
Hastighet
Hastigheten hos ett ställdon kan mätas med hjälp av halleffektsignaler genom att implementera en timer i programmet. Denna timer kommer att användas för att mäta tiden mellan detekterade kanter. Dessutom krävs det beräknade värdet för förändringen i slaglängd per detekterad kant. Med hjälp av dessa värden kan följande ekvation användas:

Riktning
Rörelseriktningen för ett ställdon kan bestämmas genom att titta på det aktuella tillståndet för de två signalerna (signal A och B) och jämföra det med det senaste tillståndet för de två signalerna. Detta beror på att de två signalerna kommer att ändra vilken som är ledande och vilken som är eftersläpande beroende på ställdonets rörelseriktning.


Vilken är bättre, en Arduino eller en Raspberry Pi mikrokontroller?
Det handlar inte om vilket som är bäst generellt, utan snarare om vilket som är bäst för din avsedda tillämpning. Det vore bättre att välja en Arduino om huvuduppgiften för din tillämpning är att läsa data från halleffektsensorn och returnera en viss uppsättning instruktioner.
Å andra sidan skulle Raspberry Pi vara mer praktisk när man löser uppgifter som utförs på en persondator. Dessutom förenklar Raspberry Pi arbetsflödeshanteringen i olika scenarier, såsom att ansluta till internet eller styra ett linjärt ställdon via en mobil enhet.
Det kan vara praktiskt att använda båda mikrokontrollerna för att lösa olika uppgifter. Raspberry Pi kan få tillgång till kod och justera olika parametrar som sedan kan skickas till en Arduino för att styra det linjära ställdonet baserat på den information den samlar in.
Låt oss dyka in på detaljerna och visa dig hur man styr ett linjärt ställdon med Arduino.
Arduino med linjära aktuatorer

Återigen, beroende på din applikation, kan du välja mellan att använda en pollingmetod eller ett avbrott med en mikrokontroller när du hanterar digitala signaler. Polling är en programmerad metod där en mikrokontroller regelbundet kontrollerar tillståndet för en ingång för att se om det har skett en förändring. Avbrott är en hårdvarumekanism som omedelbart flyttar fokus för mikrokontrollerns program när tillståndet ändras på en ingång.
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).
Här är vad du behöver:
Anslutning av Arduino- och Shield-komponenter
Halleffektsensorerna har fyra ledningar: 5V, GND och två signalledningar. Varje signalledning avger pulser när motorn snurrar. Det finns också två ställdonskablar att ansluta till MegaMoto. Vi kommer bara att använda en av halleffektsignalerna.
Anslut det linjära ställdonet till Arduino och MegaMoto enligt följande:
- Röd sensorkabel till Arduino 5V-stift.
- Svart sensorkabel till Arduino GND-pin.
- Gul/orange kabel till Arduino pin 2 eller 3 (om du använder en annan Arduino, se till att pinnarna är avbrottsstift).
- Röd ställdonskabel till MOTA på MegaMoto.
- Svart ställdonskabel till MOTB på MegaMoto.
När motorerna är korrekt anslutna till korten, anslut strömförsörjningen enligt följande:
- Anslut 12V till BAT+.
- Anslut GND till BAT-.
- Anslut 12V till Vin på Arduino.
- Koppla två knappar mellan stift 7 och 8 på Arduino och anslut dem till GND.
Det finns fyra typer av triggers för avbrottet: Stigande, Fallande, Hög och Låg. Genom att ändra triggern kan du justera när avbrottet inträffar. Stigande är när pinnen ser en övergång från låg till hög, fallande är när den ser hög till låg, låg är när pinnen är låg och hög är när pinnen är hög.
För den fullständiga Arduino-koden, besök vår guide här: Halleffekt linjär aktuator Arduino-kod
Koden flyttar ställdonet framåt eller bakåt med en viss mängd när du trycker på knapparna på stift 7 eller 8 (aktiv LÅG). Den inkluderar också en referensrutin. Detta är viktigt eftersom om du kör motorn fram och tillbaka under en längre tid kan du tappa räkningen här och där och sakta tappa koll på var du befinner dig. Referensrutinen flyttar det linjära ställdonet tillbaka till en känd position, så att räknaren kan återställas.
Raspberry Pi-aktuator
Så, hur ansluter man ett ställdon till en Raspberry Pi 2, 4 eller senare modell? Att styra ett linjärt ställdon med en Raspberry Pi är enkelt och kan göras via internet, vilket möjliggör trådlös styrning. Följ stegen i följande guide för att se exakt hur: Raspberry Pi linjär aktuatorstyrning.
Raspberry Pi 4 används för att köra serverprogramvaran och ta emot kommandon för styrning av det linjära ställdonet. Den här guiden använder dock inte en halleffektsensor. För att göra det kan ett Arduino-kort anslutas till det linjära ställdonet och Raspberry Pi för att skicka/ta emot data trådlöst. Även om Raspberry Pi också kan användas direkt för att läsa sensordata, ungefär som Arduino, kan det vara överdrivet om du bara styr ett fåtal linjära ställdon.
Styrning av flera linjära ställdon

Om du behöver styra flera linjära ställdon med en Raspberry Pi eller Arduino behöver du några ytterligare komponenter och koden måste justeras. Två eller flera linjära ställdon kan synkroniseras genom att spåra halleffektorsensorernas räkningar, och om räkningarna för de linjära ställdonen blir för långt ifrån varandra kommer varje linjärt ställdon att sakta ner för att utjämna positionerna.
Se hela instruktionspaketet här: Styr flera linjära ställdon med en mikrokontroller
Alternativt, om synkronisering inte är en del av din avsedda applikation, använd helt enkelt en Arduino för en eller två ställdon, beroende på antalet tillgängliga avbrottspinnar. För att styra fler ställdon kan du antingen använda fler Arduino-kort eller skaffa en Arduino-sköld med fler avbrottspinnar.
Slutsats
Om du är redo för utmaningen finns det ytterligare metoder du kan prova med en Arduino med linjära ställdon för att styra rörelsen, till exempel att använda lite smidig PID-kod, som du kan se här: Linjär ställdon PID-reglering. En halleffektsensor inuti ett linjärt ställdon, såsom PA-04-HS, ger en extra kontrollnivå som enkelt kan ställas in med hjälp av en Arduino eller Raspberry Pi. Oavsett om din applikation bara kräver att du läser sensordata eller om du vill ta ditt linjära ställdon till nästa nivå genom att koppla det online, är en halleffektsensor, kombinerad med en mikrokontroller, rätt väg att gå.
Om du har några frågor om innehållet i den här artikeln, eller helt enkelt vill diskutera möjliga produktlösningar, vänligen kontakta oss och vi hjälper gärna till!