Welkom bij een nieuwe technische blog van Progressive Automations! Vandaag leggen we uit hoe een Arduino met onze PA-04-HS kan communiceren.
Een Hall-effectsensor is een elektronisch component dat nauwkeurige regeling van een lineaire actuator mogelijk maakt. Hij is doorgaans in de tandwielkast geplaatst naast een magnetische schijf. Terwijl de lineaire actuator beweegt, draait de magnetische schijf, waardoor een magnetisch veld ontstaat dat door de Hall-effectsensor gaat. Dit creëert een spanningspuls die kan worden geteld om de positie, snelheid of richting van de lineaire actuator te bepalen. Om deze signalen te gebruiken, is echter een microcontroller nodig, zoals een Arduino of Raspberry Pi. In dit artikel gaan we in op het gebruik van een actuator voor een Raspberry Pi en hoe u een lineaire actuator met Arduino kunt aansturen. Zoals vermeld, worden beide microcontrollers gedemonstreerd met een Progressive Automations PA-04-HS Hall-effect lineaire actuator.
Berekeningen voor positie, snelheid en richting
Voordat we in de details duiken, is het eerst van belang te begrijpen hoe de signalen van de Hall-effectsensor worden gebruikt om de positie, snelheid en richting van de lineaire actuator te berekenen. In de PA-04-HS is de Hall-effectsensor ontworpen om twee signalen te produceren in een van twee binaire toestanden: aan of uit. Deze twee signaalsporen stijgen en dalen terwijl de elektromotor draait, met een faseverschil van 90 graden tussen beide. Maakt u zich geen zorgen als u niet weet hoe u dit in code implementeert die door een microcontroller kan worden gelezen; later in dit artikel geven we u dat.
Positie
De positie van de lineaire actuator vereist enkele berekeningen met de Hall-effectsignalen en enkele metingen van de actuator zelf. De vergelijking voor de positie van de actuatorstang vereist de slaglengte van de actuator en het totale aantal gedetecteerde flanken van volledig ingetrokken tot volledig uitgeschoven. Met deze metingen kan de volgende vergelijking worden gebruikt:

Het aantal flanken dat sinds volledig ingetrokken is gedetecteerd in de bovenstaande vergelijking begint bij nul en neemt met één toe wanneer een flank in voorwaartse richting wordt gedetecteerd, en neemt met één af wanneer een flank in achterwaartse richting wordt gedetecteerd.
Snelheid
De snelheid van een actuator kan worden gemeten met behulp van de Hall-effectsignalen door een timer in het programma te implementeren. Deze timer wordt gebruikt om de tijd tussen gedetecteerde flanken te meten. Daarnaast is de berekende waarde van de verandering in slag per gedetecteerde flank vereist. Met deze waarden kan de volgende vergelijking worden gebruikt:

Richting
De bewegingsrichting van een actuator kan worden bepaald door naar de huidige toestand van de twee signalen (signaal A en B) te kijken en deze te vergelijken met de laatste toestand van de twee signaalsporen. Dit komt doordat de twee signalen wisselen welk signaal voorloopt en welk achterloopt, afhankelijk van de bewegingsrichting van de actuator.


Wat is beter: een Arduino of een Raspberry Pi-microcontroller?
Het gaat niet om welke in het algemeen beter is, maar om welke beter past bij uw beoogde toepassing. Kies bij voorkeur een Arduino als de hoofdtaak van uw toepassing is om de gegevens van de Hall-effectsensor te lezen en een specifieke reeks instructies terug te geven.
Aan de andere kant is de Raspberry Pi praktischer voor taken die normaal op een pc worden uitgevoerd. Daarnaast vereenvoudigt de Raspberry Pi het workflowbeheer in verschillende scenario’s, zoals verbinding maken met internet of het bedienen van een lineaire actuator via een mobiel apparaat.
Het kan handig zijn om beide microcontrollers te gebruiken voor verschillende taken. De Raspberry Pi kan toegang krijgen tot de code en diverse parameters aanpassen die vervolgens naar een Arduino kunnen worden gestuurd om de lineaire actuator te regelen op basis van de informatie die hij verzamelt.
Laten we in de details duiken en u laten zien hoe u een lineaire actuator met Arduino aanstuurt.
Arduino met lineaire actuatoren

Afhankelijk van uw toepassing kunt u bij digitale signalen kiezen tussen een pollingmethode of een interrupt met een microcontroller. Polling is een geprogrammeerde methode waarbij een microcontroller periodiek de toestand van een ingang controleert om te zien of er een wijziging is. Interrupts zijn een hardwaremechanisme dat de focus van het programma van de microcontroller onmiddellijk verlegt wanneer de toestand op een ingang verandert.
Voor demonstratiedoeleinden kiezen we voor de interruptmethode om het exacte moment te kennen waarop een signaal van toestand verandert. Op een Arduino‑microcontroller wordt een interrupt gebruikt door een Interrupt Servicing Routine (ISP) te maken.
Dit heeft u nodig:
Bekabeling van Arduino en shield-componenten
De Hall-effectsensoren hebben 4 draden: 5V, GND en 2 signaaldraden. Elke signaaldraad geeft pulsen af terwijl de motor draait. Er zijn ook twee actuatordraden die op de MegaMoto moeten worden aangesloten. We gebruiken slechts één van de Hall-effectsignalen.
Verbind de lineaire actuator met de Arduino en de MegaMoto als volgt:
- Rode sensordraad naar de 5V‑pin van de Arduino.
- Zwarte sensordraad naar de GND‑pin van de Arduino.
- Gele/oranje draad naar Arduino‑pin 2 of 3 (als u een andere Arduino gebruikt, zorg er dan voor dat de pins interrupts ondersteunen).
- Rode actuatordraad naar MOTA van de MegaMoto.
- Zwarte actuatordraad naar MOTB van de MegaMoto.
Zodra de motoren correct op de printplaten zijn aangesloten, sluit u de voeding als volgt aan:
- 12V verbinden met BAT+.
- GND verbinden met BAT-.
- 12V verbinden met Vin op de Arduino.
- Sluit twee knoppen aan tussen pin 7 en 8 op de Arduino en verbind ze met GND.
Er zijn 4 soorten triggers voor de interrupt: Rising, Falling, High en Low. Door de trigger te wijzigen, kunt u aanpassen wanneer de interrupt plaatsvindt. Rising is wanneer de pin een overgang van low naar high ziet, Falling is wanneer hij van high naar low gaat, Low is wanneer de pin laag is en High is wanneer de pin hoog is.
Voor de volledige Arduino‑code, bekijk onze handleiding hier: Arduino-code voor Hall-effect lineaire actuator
De code verplaatst de actuator voor- of achteruit met een vaste hoeveelheid wanneer u op de knoppen op pin 7 of 8 drukt (actief LOW). Er is ook een homingroutine opgenomen. Dit is belangrijk, want als u de motor lange tijd heen en weer laat lopen, kunt u af en toe een telling missen en langzaam het overzicht kwijtraken waar u zich bevindt. De homingroutine brengt de lineaire actuator terug naar een bekende positie zodat de teller kan worden gereset.
Raspberry Pi‑actuator
Hoe sluit u een actuator aan op een Raspberry Pi 2, 4 of nieuwer model? Het aansturen van een lineaire actuator met een Raspberry Pi is eenvoudig en kan via internet worden gedaan, zodat draadloze bediening mogelijk is. Volg de stappen in de volgende handleiding om precies te zien hoe: Raspberry Pi‑besturing voor lineaire actuator.
De Raspberry Pi 4 wordt gebruikt om de serversoftware uit te voeren en commando’s te ontvangen voor de besturing van de lineaire actuator. Deze handleiding maakt echter geen gebruik van een Hall-effectsensor. Om dit wel te doen, kan een Arduino‑board worden verbonden met de lineaire actuator en de Raspberry Pi om gegevens draadloos te verzenden/ontvangen. Hoewel de Raspberry Pi ook rechtstreeks kan worden gebruikt om sensorgegevens te lezen, net als de Arduino, kan dit overkill zijn als u slechts enkele lineaire actuatoren aanstuurt.
Meerdere lineaire actuatoren aansturen

Als u meerdere lineaire actuatoren met een Raspberry Pi of Arduino moet aansturen, hebt u enkele extra componenten nodig en moet de code worden aangepast. Twee of meer lineaire actuatoren kunnen worden gesynchroniseerd door de tellingen van de Hall-effectsensor bij te houden, en als de tellingen van de lineaire actuatoren te ver uit elkaar lopen, zal elke lineaire actuator vertragen om de posities gelijk te trekken.
Bekijk de volledige set instructies hier: Meerdere lineaire actuatoren aansturen met een microcontroller
Als synchronisatie niet onderdeel is van uw beoogde toepassing, gebruikt u eenvoudigweg één Arduino voor één of twee actuatoren, afhankelijk van het aantal beschikbare interrupt‑pinnen. Om meer actuatoren te sturen, kunt u ofwel meer Arduino‑borden gebruiken of een Arduino‑shield met meer interrupt‑pinnen nemen.
Conclusie
Als u de uitdaging aandurft, zijn er extra methoden die u kunt proberen om met een Arduino en lineaire actuatoren de beweging te regelen, zoals het gebruik van handige PID‑code, die u hier kunt bekijken: PID‑regeling voor lineaire actuator. Een Hall-effectsensor in een lineaire actuator, zoals de PA-04-HS, biedt een extra niveau van controle dat eenvoudig kan worden opgezet met behulp van een Arduino of Raspberry Pi. Of uw toepassing nu alleen het lezen van sensorgegevens vereist of u uw lineaire actuator naar een hoger niveau wilt tillen door hem online te brengen, een Hall-effectsensor in combinatie met een microcontroller naar keuze is de juiste weg.
Als u vragen hebt over de inhoud van dit artikel of gewoon mogelijke productoplossingen wilt bespreken, neem dan contact met ons op en we helpen u graag!