Stappenmotoren & picaxe

font face=verdana size=1> Om te beginnen

Een van de grote voordelen van het gebruik van een stappenmotor vind ik dat ze hun positie vast kunnen houden zonder in beweging te zijn. Dit gegeven maakt ze uitermate geschikt voor allerlei robottoepassingen. Stappenmotoren zijn goedkoop, en veelal ergens uit te slopen, dit in tegenstelling tot RC-servo's. Een ander nadeel van de servo's is dat er veel programmeerwerk bij komt kijken en bij het gebruik van microcontrollers is dit een beperkende factor. Het grote voordeel van de rc-servo's is wel dat ze slechts 1 pin van de microcontroller "verbruiken", terwijl een stappenmotor er minimaal 2 maar meestal 4 nodig heeft. Met enig slim schakelen is het wel weer mogelijk het stroomverbruik van de stappenmotor te regelen.

De documentatie op deze pagina beschrijft de besturing van stappenmotoren mbv. een picaxe microcontroller. Voor een goede uitleg over het verschijnsel stappenmotor verwijs ik naar de standaardwebsite over dit onderwerp: Control of Stepping Motors van Jones.

bipolare stappenmotor

Een bipolare stappenmotor is met behulp van een h-bridge zeer eenvoudig aan te sturen middels een picaxe. Ik gebruik de L293D voor de H-bridge schakeling, een kwestie van gemakkelijk. Deze is nog uit te breiden met mosfets (en eventueel een koellichaam) op de geschakelde uitgangen van deze chip aan te sluiten om zo zeer grote stromen te schakelen. Iedere poort schakelt overigens de helft van de benodigde stroom. Dus je kunt al snel veel stroom schakelen. Meer uitleg over de H-bridge staat in het artikel over de runner.

De picaxe maakt zoals gezegd het leven simpel. We kunnen de stappenmotor op drie manieren laten draaien: met steeds 1 bekrachtigde spoel, met 2 bekrachtigde spoelen, het stroomverbruik is nu verdubbeld en het koppel is een faktor 1,4 ten opzichte van 1 spoel, en tenslotte kunnen we de motor halve stappen laten maken.

De bipolaire motor is eenvoudig omdat er sprake is van twee spoelen in de motor waarvan we de polariteit steeds omdraaien, of er niets mee doen.

De voorbeeldconfiguratie ziet er als volgt uit: een picaxe waarvan we pinnen aansluiten op een H-bridge in de vorm van de L293D. De pinnen 0 en 1 gebruiken we om spoel 1 van de stappenmotor aan te sturen, de pinnen 2 en 3 voor spoel 2. In relatie tot de tekening hiernaast: spoel 1 wordt dus op de labels Motor A en 2 op de labels Motor B aangesloten. In plaats van de motor (M) sluiten we dan de spoelen van de stappenmotor zelf aan.

In de tijd gezien zou het aansturen van de spoelen er als volgt uit moeten zien:

Spoel Aa +x-x+x-x+x-x+x-x+x-x+x-x+
Spoel Ab -x+x-x+x-x+x-x+x-x+x-x+x-
Spoel Ba x+x-x+x-x+x-x+x-x+x-x+x-x
Spoel Bb x-x+x-x+x-x+x-x+x-x+x-x+x......
tijd --->

De plusjes en minnetjes staan voor de polariteit van de stroom die er moet lopen en een x-je wil zeggen: niets. Zoals te zien is, is er sprake van een logisch patroon dat we kunnen vertalen in pin statussen van de picaxe. Een hoge pin is 1, en als we een pin laag zetten, 0, dan betekent dit dat de H-Bridge automatisch sinkt naar ground oftewel er een negative ground van maakt. Belangrijk is wel dat we de picaxe pin laag zetten als het nodig is omdat een 'zwevende' pin door de h-bridge onjuist geinterpreteerd kan worden.

De sequence van bovenbeschetste diagrammetje is dus eenvoudig te coderen. In de tijd gezien is er steeds sprake van een stap. Omdat we 2 spoelen hebben kunnen we vier verschillende stappen onderscheiden. De diagram is per stap te voorzien van een pin-layout. Om efficient te programmeren beschrijven we steeds de pin-layout in 1 keer. Wanneer je het onderste blokje code laat loopen dan is er sprake van een continue beweging (met de klok mee) door middel van volledige stappen. Spoel voor spoel wordt nu bekrachtigd.

  let pins = %10000000 'spoel A aansluiting a hoog, alle andere laag
  let pins = %00100000 'spoel B aansluiting a hoog, alle andere laag
  let pins = %01000000 'spoel A aansluiting b hoog, alle andere laag
  let pins = %00010000 'spoel B aansluiting b hoog, alle andere laag
Dat was best makkelijk toch? Het kan overigens nodig zijn om tussen iedere stap een vertraging in te bouwen om de rotor van de motor even de tijd te geven te verplaatsen. Het probleem is de inductie in de spoelen bij hogere snelheden, waardoor er niet meer genoeg stroom kan lopen.

Nu we weten hoe het clockwise stappen werkt kunnen we hem ook de andere kant (tegen de klok in) op laten draaien:

  let pins = %01000000 'spoel A aansluiting b hoog, alle andere laag
  let pins = %00100000 'spoel B aansluiting a hoog, alle andere laag
  let pins = %10000000 'spoel A aansluiting a hoog, alle andere laag
  let pins = %00010000 'spoel B aansluiting b hoog, alle andere laag
Tot zover het volstapbedrijf, zoals dat genoemd wordt. De stappenmotor maakte bij volstapbedrijf dus hele stappen. De specificaties geven altijd de graden aan in volstapbedrijf. Het is echter ook mogelijk om halve stappen te maken. Dat werkt als volgt: eerst spoel 1, dan spoel 1+2, dan spoel 2, dan 2+3 dan 3 enz.

Unipolare stappenmotor

Een stappenmotor met 5 draden is bijna altijd een unipolaire met een gemeenschappelijke middenaftakking. Dit type kom je het meeste tegen, als je net zoals ik je stappenmotoren uit oude apparaten sloopt. Zie rechts op het plaatje. Je komt soms ook wel motoren met 6 draden tegen, dat is dan meestal een motor van het type links op het plaatje. Deze motoren hebben meestal een standaard kleurcodering van de aansluitdraden.

Om hem te laten stappen moet je hem dus als volgt aansluiten: de rood aan de plus, en telkens 2 draden aan massa. De volgorde wordt dan:

  • geel en zwart
  • geel en bruin
  • oranje en bruin
  • oranje en zwart
Je kunt deze motor zelfs dubbele stappen laten nemen: Rood aan de plus, en dan de volgende volgorde:
  • oranje
  • geel
of weer de andere kant op:
  • bruin
  • zwart
Tot zover.....
Klik aub op de sponsor hieronder als je dit artikel waardeert.