aansturen stappenmotor L298


Aansturen van een stappenmotor mbv een L298 motordriver:
 

 
kleurcodering aansluiting draden van een stappenmotor:

1 geel
2 blauw
13 groen
14 rood

1 groen
2 zwart
13 blauw
14 rood
Afbeelding invoegen

 
 
Afbeelding invoegen
 
Code voorbeeld 1: 
 
instellen aantal omwentelingen, rechts en/of linksom, aantal stappen;

#include <Stepper.h> // aanroepen Stepper bibliotheek

const int stappenPerOmwenteling = 50;  // aantal stappen per omwenteling

// initialisatie van de stappenmotor tav de library: pinnen 8 t/m 11 van de L298 stappenmotordriver:

Stepper mijnStappenMotor (stappenPerOmwenteling, 8, 9, 10, 11);

int stappenTeller = 0;         // aantal stappen dat de motor heeft gemaakt wordt opgeslagen in varaiabele stepCount 
int richtingStappenMotor = 1; // rechtsom

void setup() {
Serial.begin(9600);
}

void loop() {
 
  mijnStappenMotor.step(richtingStappenMotor);
  Serial.print("aantal stappen:");
  Serial.println(stappenTeller);
  stappenTeller++;

  if ( stappenTeller > 4000)   // als het aantal ingevoerde stappen is bereikt - in dit geval 4000 - wordt de teller op nul gezet en van draairichting omgedraaid. 
  
  {
      stappenTeller = 0;
      if( richtingStappenMotor == 1) richtingStappenMotor = -1;
      else richtingStappenMotor = 1;
  }

  delayMicroseconds(50);
}

 
 
Code voorbeeld 2 (zie schema L298 icm stappenmotor fase 3): 
 
snelheidscontrole 
 
 
Afbeelding invoegen

/*
Stappenmotor snelheidscontrole
De motor is verbonden met de digitale pinnen 8 - 11 van de Arduino.Een potmeter is verbonden met analoge ingang A0.
De motor zal draaien in kloksgewijze richting. Hoe hoger dde waarde van de potmeter, des te hoger de snelheid
omdat het commando setSpeed() de vertraging (delay) instelt tussen de stappen.
Hoe lager de potmeter waarde des te trager de reactie van de motor op de waardeverandering.

L298 pin 8 --> Arduino pin 8, 
L298 pin 9 --> Arduino pin 9, 
L298 pin 10--> Arduino pin 10,
L298 pin 11 --> Arduino pin 11.

Modified 28 Oct 2010  by Tom Igoe
*/


#include <Stepper.h>
const int stepsPerRevolution = 200;  // instellen aantal stappen per rotatie.
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); // initialize van de stepperlibrary op pinnen 8 t/m 11:
int stepCount = 0;   

void setup() 
{
}

void loop() 
{
  int sensorReading = analogRead(A0); // leest sensorwaarde
  int motorSpeed = map(sensorReading, 0, 1023, 0, 100); // mappen 10-bits waarde naar 0-100
  if (motorSpeed > 0) {
    myStepper.setSpeed(motorSpeed); // instellen motorsnelheid
    myStepper.step(stepsPerRevolution / 100); // stap 1/100 per rotatie.
}
}