- Stappenmotoren:
- Berekening van de stappen per omwenteling voor stappenmotor:
- Waarom hebben we driver-modules nodig voor stappenmotoren?
- Arduino stappenmotor positieregeling schakelschema en uitleg:
- Code voor Arduino Board:
- Werken van stappenmotor met Arduino:
Stappenmotoren nemen steeds meer hun plaats in de wereld van de elektronica in. Van een normale bewakingscamera tot een gecompliceerde CNC-machine / robot, deze stappenmotoren worden overal als actuatoren gebruikt, omdat ze nauwkeurige besturing bieden. Een stappenmotor is een borstelloze, synchrone motor die een volledige omwenteling in een aantal stappen voltooit. In deze Arduino stappenmotor tutorial zullen we leren over de meest algemeen verkrijgbare stappenmotor 28-BYJ48 en hoe deze met Arduino kan worden gekoppeld met behulp van de ULN2003 stappenmotormodule.
Stappenmotoren:
Laten we eens kijken naar deze 28-BYJ48 stappenmotor.
Oké, dus in tegenstelling tot een normale gelijkstroommotor heeft deze vijf draden van allerlei mooie kleuren die eruit komen en waarom is dat zo? Om dit te begrijpen, moeten we eerst weten hoe een stepper werkt en wat zijn specialiteit is. Allereerst steppers motoren niet draaien, ze stappen en dus zijn ze ook wel bekend als stappenmotoren. Dit betekent dat ze slechts één stap per keer zullen bewegen. Deze motoren hebben een reeks spoelen erin en deze spoelen moeten op een bepaalde manier worden bekrachtigd om de motor te laten draaien. Wanneer elke spoel wordt bekrachtigd, neemt de motor een stap en een opeenvolging van bekrachtiging zorgt ervoor dat de motor continue stappen maakt, waardoor hij draait. Laten we eens kijken naar de spoelen in de motor om precies te weten waar deze draden vandaan komen.
Zoals je kunt zien, heeft de motor een unipolaire spoel met 5 afleidingen. Er zijn vier spoelen die in een bepaalde volgorde moeten worden bekrachtigd. De rode draden worden geleverd met + 5V en de resterende vier draden worden naar de aarde getrokken om de respectieve spoel te activeren. We gebruiken een microcontroller zoals Arduino die deze spoelen in een bepaalde volgorde van energie voorzien en de motor het vereiste aantal stappen laten uitvoeren.
Dus waarom heet deze motor nu de 28-BYJ48 ? Ernstig!!! Ik weet het niet. Er is geen technische reden waarom deze motor zo wordt genoemd; misschien moeten we er veel dieper in duiken. Laten we eens kijken naar enkele van de belangrijke technische gegevens die zijn verkregen uit het gegevensblad van deze motor in de onderstaande afbeelding.
Dat is een hoofd vol informatie, maar we moeten een paar belangrijke bekijken om te weten welk type stepper we gebruiken, zodat we het efficiënt kunnen programmeren. Ten eerste weten we dat het een 5V stappenmotor is, aangezien we de rode draad bekrachtigen met 5V. Dan weten we ook dat het een vierfasige stappenmotor is omdat er vier spoelen in zitten. Nu wordt de overbrengingsverhouding gegeven op 1:64. Dit betekent dat de as die je aan de buitenkant ziet, alleen een volledige omwenteling maakt als de motor binnen 64 keer draait. Dit komt door de tandwielen die zijn verbonden tussen de motor en de uitgaande as, deze tandwielen helpen bij het verhogen van het koppel.
Een ander belangrijk gegeven om op te merken is de pashoek: 5.625 ° / 64. Dit betekent dat de motor, wanneer hij in een 8-stappenreeks werkt, voor elke stap 5,625 graden beweegt en dat er 64 stappen nodig zijn (5,625 * 64 = 360) om een volledige rotatie te voltooien. U kunt meer leren over het werken met stappenmotoren met ARM LPC2148, ATMega16 Microcontroller, MSP430.
Berekening van de stappen per omwenteling voor stappenmotor:
Het is belangrijk om te weten hoe je de stappen per omwenteling voor je stappenmotor berekent, want alleen dan kun je deze effectief programmeren.
In Arduino zullen we de motor in een reeks van 4 stappen laten werken, dus de pashoek zal 11,25 ° zijn, aangezien deze 5,625 ° is (gegeven in de datasheet) voor een reeks van 8 stappen, zal deze 11,25 ° zijn (5,625 * 2 = 11,25).
Stappen per omwenteling = 360 / staphoek
Hier 360 / 11,25 = 32 stappen per omwenteling.
Waarom hebben we driver-modules nodig voor stappenmotoren?
De meeste stappenmotoren werken alleen met behulp van een driver-module. Dit komt omdat de controllermodule (in ons geval Arduino) niet genoeg stroom kan leveren via de I / O-pinnen om de motor te laten werken. We zullen dus een externe module zoals de ULN2003- module gebruiken als stappenmotoraandrijving. Er zijn veel soorten stuurprogrammamodules en de classificatie van één zal veranderen op basis van het type motor dat wordt gebruikt. Het primaire principe voor alle stuurprogrammamodules is om voldoende stroom te genereren / af te voeren om de motor te laten werken.
Arduino stappenmotor positieregeling schakelschema en uitleg:
Het schakelschema voor het Arduino stappenmotorbesturingsproject wordt hierboven weergegeven. We hebben de 28BYJ-48 stappenmotor en de ULN2003 driver module gebruikt. Om de vier spoelen van de stappenmotor van stroom te voorzien, gebruiken we de digitale pinnen 8, 9, 10 en 11. De driver module wordt gevoed door de 5V pin van het Arduino Board.
Maar voorzie de driver van stroom met externe voeding wanneer u wat belasting aansluit op de stappenmotor. Omdat ik de motor alleen voor demonstratiedoeleinden gebruik, heb ik de + 5V-rail van het Arduino-bord gebruikt. Vergeet ook niet om de aarde van de Arduino te verbinden met de aarde van de Diver-module.
Code voor Arduino Board:
Voordat we beginnen met programmeren met onze Arduino, moeten we eerst begrijpen wat er eigenlijk in het programma moet gebeuren. Zoals eerder gezegd, zullen we de 4-staps sequentiemethode gebruiken, dus we zullen vier stappen moeten uitvoeren om een volledige rotatie te maken.
Stap |
Pin bekrachtigd |
Spoelen bekrachtigd |
Stap 1 |
8 en 9 |
A en B |
Stap 2 |
9 en 10 |
B en C |
Stap 3 |
10 en 11 |
C en D |
Stap 4 |
11 en 8 |
D en A |
De Driver-module heeft vier LED's waarmee we kunnen controleren welke spoel op een bepaald moment wordt bekrachtigd. De video die de volgorde van bekrachtiging laat zien, vindt u aan het einde van deze tutorial.
In deze tutorial gaan we de arduino stappenmotorcode schrijven en daarvoor gaan we de Arduino zo programmeren dat we via de seriële monitor van de Arduino het aantal door de stappenmotor te nemen stappen kunnen invoeren. Het volledige programma is te vinden aan het einde van de tutorial. Enkele belangrijke regels worden hieronder uitgelegd.
Het aantal stappen per omwenteling voor onze stappenmotor werd berekend op 32; vandaar dat we dat invoeren zoals weergegeven in de onderstaande regel
#define STAPPEN 32
Vervolgens moet u instanties maken waarin we de pinnen specificeren waarop we de stappenmotor hebben aangesloten.
Stepper stepper (STEPS, 8, 10, 9, 11);
Opmerking: het aantal pinnen is met opzet ongeordend als 8,10,9,11. U moet hetzelfde patroon volgen, zelfs als u de pinnen verandert waarop uw motor is aangesloten.
Omdat we de Arduino-stepperbibliotheek gebruiken, kunnen we de snelheid van de motor instellen met behulp van de onderstaande regel. De snelheid kan variëren van 0 tot 200 voor 28-BYJ48 stappenmotoren.
stepper.setSpeed (200);
Om de motor nu een stap te laten bewegen, kunnen we de volgende regel gebruiken.
stepper.step (val);
Het aantal te verplaatsen stappen wordt bepaald door de variabele “val”. Omdat we 32 stappen hebben en 64 als de overbrengingsverhouding, moeten we 2048 (32 * 64 = 2048) verplaatsen om één volledige rotatie te maken.
De waarde van de variabele "val" kan door de gebruiker worden ingevoerd met behulp van de seriële monitor.
Werken van stappenmotor met Arduino:
Zodra de verbinding is gemaakt, zou de hardware er ongeveer zo uit moeten zien in de onderstaande afbeelding.
Upload nu het onderstaande programma in je Arduino UNO en open de seriële monitor. Zoals eerder besproken, zullen we 2048 stappen moeten maken om één volledige rotatie te maken, dus wanneer we 2048 binnengaan, zal de motor één volledige rotatie met de klok mee maken door 2048 stappen te maken. Om tegen de klok in te draaien, voert u gewoon het getal in met een “-“ minteken. Als u dus -1024 invoert, zal de motor halverwege tegen de klok in draaien. U kunt alle gewenste waarden invoeren, zoals het invoeren van 1 zorgt ervoor dat de motor slechts één stap neemt.
Ik hoop dat je het project hebt begrepen en met plezier hebt gebouwd. De volledige werking van het project wordt getoond in de onderstaande video. Als je twijfels hebt, plaats ze dan in de commentaarsectie hieronder op onze forums.