4. stappenmotoren div

  Verschillende soorten stappenmotoren:
 
 
Meer info zie ook: http://domoticx.com/arduino-shield-motor-shield-l293d/
 
 
1. Steppenmotor ULC 2003 met driver 5V 
 
(leverancier: DX 126409) 
 
 
 
voorbeeldcode Arduino:
 
int Pin0 = 10; 
int Pin1 = 11; 
int Pin2 = 12; 
int Pin3 = 13; 
int _step = 0; 
boolean dir = true;// gre
void setup() 
{ 
 pinMode(Pin0, OUTPUT);  
 pinMode(Pin1, OUTPUT);  
 pinMode(Pin2, OUTPUT);  
 pinMode(Pin3, OUTPUT);  
} 
 void loop() 
{ 
 switch(_step){ 
   case 0: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, HIGH); 
   break;  
   case 1: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, HIGH); 
     digitalWrite(Pin3, HIGH); 
   break;  
   case 2: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, HIGH); 
     digitalWrite(Pin3, LOW); 
   break;  
   case 3: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, HIGH); 
     digitalWrite(Pin2, HIGH); 
     digitalWrite(Pin3, LOW); 
   break;  
   case 4: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, HIGH); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
   break;  
   case 5: 
     digitalWrite(Pin0, HIGH);  
     digitalWrite(Pin1, HIGH); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
   break;  
     case 6: 
     digitalWrite(Pin0, HIGH);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
   break;  
   case 7: 
     digitalWrite(Pin0, HIGH);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, HIGH); 
   break;  
   default: 
     digitalWrite(Pin0, LOW);  
     digitalWrite(Pin1, LOW); 
     digitalWrite(Pin2, LOW); 
     digitalWrite(Pin3, LOW); 
   break;  
 } 
 if(dir){ 
   _step++; 
 }else{ 
   _step--; 
 } 
 if(_step>7){ 
   _step=0; 
 } 
 if(_step<0){ 
   _step=7; 
 } 
 delay(1); 
}
 
 **********************************************************************************************
 2. stappenmotor JK42HSS34
 (leverancier: Banggood)
 

aansluitschema van de spoelen
 
 
 
 
De stappenmotor is ideaal in combinatie met de spindelaandrijving op de afbeelding.
 
De aansluiting kun je als volgt controleren:
draden geel - blauw: doormeten met geleidings-ohm meter: piep = goed
draden groen - rood: idem.
 
OF:

twee draadjes tegen elkaar houden en aan de motoras draaien. Als de motoras meer weerstand ondervindt tijdens het draaien heb je de twee draden van een spoel te pakken.
 
Voor complete 1 omwenteling van 360 graden zijn 200 stapjes nodig.
 
De aansturing van de stappen die bepalen of de omwenteling rechtsom beweegt worden als volgt ingesteld.
HIGH op geel - blauw: 1 stapje naar rechts:  +   -
LOW op rood - groen: 1 stapje naar rechts:   -   +
LOW op geel - blauw: 1 stapje naar rechts:   -   +  
HIGH op rood - groen: 1 stapje naar rechts: +   -
 
De aansturing van de stappen die bepalen of de omwenteling linksom beweegt worden als volgt ingesteld.
LOW op geel - blauw: 1 stapje naar rechts:  +   -
HIGH op rood - groen: 1 stapje naar rechts: -   +
HIGH op geel - blauw: 1 stapje naar rechts: -   +  
LOW op rood - groen: 1 stapje naar rechts: +   -
 
 
************************************************************************************************** 
 
3. stappenmotor JK42HS40
leverancier banggood
 
geen spinderlas.
asdikte 5 mm
 
aansluiting spoelen:
 
spoel 1: zwart - groen
spoel 2: rood - blauw
 
 
 
 
 
 
De juiste aansluiting kun je als volgt controleren:

1. Twee draadjes tegen elkaar houden en aan de motoras draaien. Als de motoras meer weerstand ondervindt tijdens het draaien heb je de twee draden van een spoel te pakken.
2. Draden doormeten dmv geleidings-ohm meter: (piep = goed).
 
 
basis Arduino code:
 

#include <AFMotor.h>

AF_Stepper motor(200,1); // het object "motor" met 200 stappen aangesloten aan klem M1 (belangrijk in geval van single aansturing).

int tijd=1; // instelling vertragingstijd tussen de diverse instellingen

int count=0;

void setup() {

motor.setSpeed(100); // instelling van de motorsnelheid in rotaties/minuut

Serial.begin(9600);

}

void loop()

{

delay(tijd);

count++;

motor.step(200,FORWARD,SINGLE); // motor beweegt 200 stappen voorwaarts ( 1 rotatie)

Serial.print(count); // teller registreert aantal omwentelingen

Serial.println(" rotaties");

if (count==10) // als er 10 rotaties zijn uitgevoerd dan beweegt de motor 2000 stappen (10 rotaties terug, let op! De voorwaartse rotatietelling stopt)

{

motor.step(2000,BACKWARD,SINGLE);

}

if (count==20) // motor beweegt zich 10 rotaties terug, daarna weer voorwaarts totdat de teller op 20 staat.

{

motor.setSpeed(0); / nadat de teller op 20 staat stopt de motor

}

}