Niveau – beginner
Tijdsduur – 10 Min
Kosten – €

In dit project leer je hoe je een 5V DC 28YBJ-48 Stepper Motor aan stuurt d.m.v. een ULN2003 Driver Board en een Arduino Uno.

Aan het eind van dit project kan je zelf een stepper motor aansturen om later een machine, een robot of zelfs een 3D printer te maken.

Stap 1: Benodigdheden

1X Arduino UNO

6X jumper wires

1X Stepper motor

1X ULN2003 Driver

Stap 2: Bouwen en Bedraden

Nu gaan we het project in elkaar zetten.

Om de stepper motor aan te sluiten op de Arduino plug je de witte connector in op het driver bordje. De driver sluit je aan op de 5V & Ground pins van de Arduino Uno en pin 8 t/m 11. Dit doe je zoals op de bovenstaande fritzing aangegeven.

Stap 3: Programmeren

Nu je klaar bent met het aansluiten van de bedrading kan je beginnen met het programmeren van de Arduino Uno.

Voor deze code moeten wij een library invoegen

Een Library of Include file bevatten vaak code welke vaak hergebruikt kan worden in andere Sketches. Vaak zijn libraries (bibliotheken) een verzameling samenhangende functies gericht op een bepaalde toepassing. Bijvoorbeeld om een strip met LEDjes aan te sturen, speciale wiskundige functies of bijvoorbeeld om een LCD schermpje aan te sturen.

Voor deze stepper motor is er ook een Library beschikbaar. Deze library komt standaard met de Arduino IDE meegeleverd. Om deze library aan de code toe te voegen kan je 2 dingen doen.

1: De code #include invoeren.
2: In de bovenste balk ga je naar schets –> Bibliotheek gebruiken –> Arduino Bibliotheken en selecteer Stepper. 
Met beide opties krijg je het zelfde resultaat.

De onderstaande code kan je kopiëren naar de Arduino IDE

#include 

const int StappenPerOmwenteling = 100;  // Verander dit om het aantal stappen per omwenteling te passen


// Initialiseer de stepper-bibliotheek op pinnen 8 t/m 11:
Stepper MijnStepper(StappenPerOmwenteling, 8, 9, 10, 11);

int StappenTeller = 0;  // aantal stappen dat de motor heeft genomen

void setup() {
  }

void loop() {
  // Lees sensorwaarde:
  int sensorWaarde = analogRead(A0);
  // Bereik 0 tot 100:
  int motorSnelheid = map(sensorWaarde, 0, 1023, 0, 100);
  // Zet de motor snelheid:
  if (motorSnelheid > 0) {
    MijnStepper.setSpeed(motorSnelheid);
    // stap 1/100 van een omwententeling:
    MijnStepper.step(StappenPerOmwenteling / 100);
  }
}

Pas de code aan om de snelheid en de richting van de motor te bepalen!