Difference between revisions of "Arduino - De stappenmotor"
(→28BYJ-48) |
(→Werking) |
||
| Line 11: | Line 11: | ||
* twee dragen: normale elektromotor | * twee dragen: normale elektromotor | ||
* vier draden: bipolaire stappenmotor | * vier draden: bipolaire stappenmotor | ||
| − | * vijf draden: unipolaire stappenmotor | + | * vijf of zes draden: unipolaire stappenmotor |
Door de juiste afwisseling van aansturing kan de stappenmotor stapje voor stapje zetten: de spoelen trekken het anker van de motor dwingend in een bepaalde richting. Als dit met hoge frequentie gebeurt kan de motor zelfs behoorlijk wat toeren maken. Het aansturen van unipolaire stappenmotoren komt erop neer dat de spoelen in de juiste volgorde bekrachtigd moeten worden. Dat is een betrekkelijk eenvoudig klusje voor een Arduino. Maar voor bipolaire stappenmotoren moet dus de stroom''richting'' worden omgedraaid. Dat kan een Arduino niet. Daarvoor moet gebruik worden gemaakt van een brug-schakeling met vier (elektronische) schakelaars die tegelijk omschakelen. Dit is aanzienlijk lastiger maar met de moderne elektronica toch goed uit te voeren. Daarom raakt de unipolaire stappenmotor - die duurder is aan spoelen - langzaamaan in onbruik. | Door de juiste afwisseling van aansturing kan de stappenmotor stapje voor stapje zetten: de spoelen trekken het anker van de motor dwingend in een bepaalde richting. Als dit met hoge frequentie gebeurt kan de motor zelfs behoorlijk wat toeren maken. Het aansturen van unipolaire stappenmotoren komt erop neer dat de spoelen in de juiste volgorde bekrachtigd moeten worden. Dat is een betrekkelijk eenvoudig klusje voor een Arduino. Maar voor bipolaire stappenmotoren moet dus de stroom''richting'' worden omgedraaid. Dat kan een Arduino niet. Daarvoor moet gebruik worden gemaakt van een brug-schakeling met vier (elektronische) schakelaars die tegelijk omschakelen. Dit is aanzienlijk lastiger maar met de moderne elektronica toch goed uit te voeren. Daarom raakt de unipolaire stappenmotor - die duurder is aan spoelen - langzaamaan in onbruik. | ||
Revision as of 00:17, 5 February 2018
Een stappenmotor is precies wat de naam suggereert: een motor die niet gewoon toeren maakt, maar stapjes zet. Elk stapje wordt afzonderlijk aangestuurd en de motor kan ook weer stapjes terug doen. Door snel achter elkaar, met hoge frequentie, veel stapjes te zetten kan een stappenmotor toch toeren maken, maar daarin blinken ze niet uit en dat is ook niet primair de bedoeling van stappenmotoren. In plaats daarvan zijn ze heel goed in het maken van een precies aantal stappen, bijvoorbeeld om iets in een bepaalde positie te brengen. Een voorbeeld is de printkop van een printer. Ook kun je met enig prutswerk een servo vaak vervangen door een stappenmotor. Maar terwijl een servo beperkt is tot een deel van 360 graden, kunnen stappenmotoren zonder probleem vele slagen maken. Daarbij meet een servo steeds de positie, terwijl een stappenmotor niet beschikt over een positiemeting. Je moet er dus vanuit gaan dat het aantal gezette stappen klopt. Als die stappen te snel komen wordt er wel eens een telfoutje gemaakt en dan is er geen vanzelfsprekende correctie. En als de stroom uitvalt heb je helemaal geen idee meer wat de positie is van het ding dat door de stappenmotor wordt aangestuurd. Daarom hebben systemen met stappenmotoren doorgaans een ingebouwd ijkpunt. Zo kun je de motor terugdraaien totdat iets een positie-signaal afgeeft, bijvoorbeeld doordat een uitsteeksel tegen een knopje aankomt. Dat kan dan het beginpunt zijn vanaf waar je begint met tellen. Afgezien daarvan kun je er doorgaans op vertrouwen dat de aansturing zodanig is dat er geen telfouten optreden. Een stappenmotor is dan een prachtig stuk techniek waarmee posities nauwkeurig kunnen worden ingesteld zonder terugkoppeling door middel van een meting.
Contents
Werking
Het voert te ver voor hier om de werking van een elektromotor uit te leggen, maar het basisprincipe is dat een elektromagneet een andere magneet (vaak een permanente magneet) afwisselend aantrekt en afstoot. Een elektromagneet bestaat uit een draad die om een kern is gewikkeld (een spoel). De richting van het magneetveld wordt bepaald door de stroomrichting en de sterkte van het veld door de stroomsterkte. Een stappenmotor is precies zo'n type elektromotor met permanente magneten en elektromagneten. Het verschil zit in de aansturing waarbij de elektromagneten zo geschakeld worden dat ze de dichtstbijzijnde permanente magneet aantrekken of juist afstoten. Met een slim uitgedachte opzet van permanente magneten en spoelen kan een stappenmotor een stapje maken door de juiste spoel in de juiste stroomrichting te bekrachtigen. Zo'n stapje komt dan overeen met een bepaalde draaihoek die afhankelijk is van de opzet van de stappenmotor.
In het huis van sommige stappenmotoren zit ook een tandwielhuis dat voor extra vertraging zorgt en dus voor meer kracht, maar ook voor meer stappen per rotatie (en dus meer precisie). Daarbij kunnen stappenmotoren hun positie bevriezen en een extra tandwielvertraging vergemakkelijkt deze eigenschap.
Er zijn twee soorten stappenmotoren. De bipolaire stappenmotoren hebben spoelen waar de stroom in de ene of in de andere richting doorheen gaat. Omdat de stroomrichting door die spoelen dus moet kunnen omkeren heet dit type bipolair. Het andere, minder voorkomende type, heeft voor elke stroomrichting eigen spoelen. De stroom door elk van deze spoelen loopt altijd in dezelfde richting zodat dit type wordt aangeduid als unipolaire stappenmotoren.
Bipolaire stappenmotoren hebben twee groepen spoelen, terwijl unipolaire stappenmotoren vier groepen spoelen hebben. Spoelen van een groep worden tegelijk en op dezelfde wijze aangestuurd. Bij bipiolaire stappenmotoren zijn er drie mogelijkheden: een positieve stroom, een negatieve stroom, of natuurlijk geen stroom. Voor unipolaire stappenmotoren zijn er maar twee: stroom of geen stroom - de stroomrichting wordt niet omgedraaid. Daarentegen hebben die dus twee keer zoveel spoel-groepen. Twee groepen spoelen betekent dat een bipolaire stappenmotor vier aansluitdraden heeft: twee voor elke groep spoelen. Een unipolaire stappenmotor, met vier groepen spoelen, heeft vijf aansluitdraden omdat alle spoelen aan een kant aan een gemeenschappelijke draad zitten. Als je ooit ergens een motor vindt (of uit sloopt) kun je aan het aantal aansluitdraden meestal zien wat voor soort motor het is:
- twee dragen: normale elektromotor
- vier draden: bipolaire stappenmotor
- vijf of zes draden: unipolaire stappenmotor
Door de juiste afwisseling van aansturing kan de stappenmotor stapje voor stapje zetten: de spoelen trekken het anker van de motor dwingend in een bepaalde richting. Als dit met hoge frequentie gebeurt kan de motor zelfs behoorlijk wat toeren maken. Het aansturen van unipolaire stappenmotoren komt erop neer dat de spoelen in de juiste volgorde bekrachtigd moeten worden. Dat is een betrekkelijk eenvoudig klusje voor een Arduino. Maar voor bipolaire stappenmotoren moet dus de stroomrichting worden omgedraaid. Dat kan een Arduino niet. Daarvoor moet gebruik worden gemaakt van een brug-schakeling met vier (elektronische) schakelaars die tegelijk omschakelen. Dit is aanzienlijk lastiger maar met de moderne elektronica toch goed uit te voeren. Daarom raakt de unipolaire stappenmotor - die duurder is aan spoelen - langzaamaan in onbruik.
|
| Spoel in brugschakeling |
Voor de aansturing van een bipolaire stappenmotor worden drivers gebruikt die voor weinig geld te koop zijn. Een bijkomend voordeel van zo'n driver is dat hij tevens veel meer stroom kan leveren dan met rechtstreekse aansluiting op de Arduino mogelijk zou zijn (+40mA). Ook unipolaire stappenmotoren kunnen beter via een (ander soort) driver worden aangesloten. Dankzij deze drivers kunnen we stappenmotoren gebruiken die behoorlijk wat sterker kunnen zijn dan de mini-motortjes in de servo's van een eerder project. Een ander voordeel is drivers de Arduino beschermen tegen piekspanningen die de spoelen van de motor kunnen geven. Spoelen verzetten zich namelijk tegen verandering van de stroom door de spoel en genereren een tegen-spanning bij het (snel) afsluiten van de stroom. Die piekspanning kan zo hoog zijn dat het gevoelige elektronica beschadigt.
De schakeling
Extra benodigdheden:
- 1 stappenmotor (28BYJ-48 - unipolaire stappenmotor)
- 1 stappenmotor driver module (ULN2003)
|
| De 28BYJ-48 unipolaire stappenmotor met driver |
28BYJ-48
Zoals gezegd is dit een unipolaire stappenmotor met vijf aansluitdraden. Om de Arduino te beschermen en ook om meer stroom te kunnen leveren wordt hij aangesloten via een driver module met de ULN2003 chip als basis. Die driver module laat met LEDjes vaak zien welke spoel-groepen bekrachtigd zijn en welke niet. De motor heeft een vertragingshuis met tandwielen (de as zit niet in het midden - dan moet er wel iets tussen zitten). De vertraging hiervan is bijna 1:64 (preciezer: 1:63.68395). Hij kan zo'n 15 toeren per minuut maken en levert, vanwege de ingebouwde vertraging, een behoorlijke kracht. Omdat we een Arduino gebruiken zal hij meestal draaien op 5 Volt, maar er zijn ook versies, met hetzelfde nummer, die tot 12 Volt gaan.
Voor een motor is ook de kracht die hij kan leveren een belangrijk gegeven. De 28BYJ-48 levert volgens specificatie een moment-kracht van zo'n 30 mN∙m (milli Newton-meter). Dit betekent dat het een kracht levert van 30 milli Newton op een afstand van een meter van de as. Op 1 cm afstand is die kracht dan 100x groter: 3 Newton, ofwel ongeveer 300 gram. De kracht wordt dus groter naarmate de afstand kleiner wordt. De gegeven kracht hangt overigens wel af van de frequentie waarmee de motor wordt aangestuurd en de voedingsspanning die wordt gebruikt. Als je teveel kracht vraagt, zal de motor nog wel stappen maken, maar neemt de kans toe dat hij stappen gaat overslaan. Dit geldt ook als je de stappen te snel wilt maken en dus een te grote stap-frequentie gebruikt.
Omdat de ingebouwde motor al 64 stappen nodig heeft om een ronde te maken en de 28BYJ-48 daarnaast een tandwielvertraging heeft van 1:63.68395 zijn er (ongeveer) 4076 stappen nodig voor een hele ronde van de as. Met stappen bedoelen we hier eigenlijk halve stappen. Bij een hele stap gaat een magneet van het anker van de ene spoel naar de volgende, maar door twee naast elkaar liggende spoelen tegelijk te bekrachtigen, beweegt het anker zich naar een positie tussen de beide spoelen. Dit is geen bijzonderheid, maar wordt juist veel gebruikt voor extra precisie.
|
| Aansluiten 28BYJ-48 met ULN2003 |
Het programma
#include <Stepper.h>
#define STEPS 4076
Stepper myStepper(STEPS, 8, 9, 10, 11);
void setup() {
myStepper.setSpeed(10);
}
void loop() {
myStepper.step(10);
}
Uitleg
Beetje spelen
Verdiepende opdrachtjes


