aansluitschema stappenmotordriver L293D

aansturen stappenmotor dmv adafruit motorshield L293 v.1.0


benodigde library: https://learn.adafruit.com/adafruit-motor-shield/library-install
(Let op dat je na downloaden de naam van de map in de Arduino library map verandert in AFMotor)


OPGELET:
  • Maak de power jumper los. Installeer de power jumper pas nadat je een externe spanningsbron op de Arduino na installatie van de code hebt aangesloten via de jack plug. 
  • Het motorshield werkt alleen met motoren boven de 3 Volt en maximaal 25 Volt. 
  • LET OP bij externe voeding ( = links van power jumper): Bij gebruik van externe spanningsbron worden de L293 ic's heet ! Dus bijvoorbeeld bij gebruik van stappenmotor op klemmen M1 + M2 wordt de meest linkse L293 IC heet.....erg heet. Bij voorkeur voeding gebruiken via USB kabel pc of platte batterij 4,5 V.    




Op de "AB" klemmen kan de desbetreffende bekabeling van de (bipolaire !) stappenmotor worden aangesloten. (Een unipolaire stappenmotor heeft minimaal 5 draden) 
De kleurcodes van stappenmotoren kunnen onderling verschillen. Om er achter te komen of de betreffende bedrading een spoel vormt kun je de uiteinde van de draden "tegen elkaar houden" en proberen de as van de stappenmotor rond te draaien. Indien je tijdens het draaien aan de motoras duidelijk meer weerstand ondervindt heb je een spoel-kabelpaar te pakken.
In geval van onderstaand schema zou dat dus kunnen gelden voor de kleuren rood en groen -  geel en blauw.


Beste ervaringen hebben we met:

// Connector X1:
//     M1 on outside = MOTOR1_A   (+) north
//     M1 on inside  = MOTOR1_B   (-)
//     middle        = GND
//     M2 on inside  = MOTOR2_A   (+)
//     M2 on outside = MOTOR2_B   (-) south
//
//   Connector X2:
//     M3 on outside = MOTOR3_B   (-) south
//     M3 on inside  = MOTOR3_A   (+)
//     middle        = GND
//     M4 on inside  = MOTOR4_B   (-)
//     M4 on outside = MOTOR4_A   (+) north 
 

#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=1000; // 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);
//Serial.println(count);
//count++;
Serial.println("single"); 
// single: slechts 1 spoel wordt geactiveerd, voordeel minder stroomverbruik.
motor.step(1000,FORWARD,SINGLE); // 3000 stappen , motor draait voorwaarts
motor.step(1000,BACKWARD,SINGLE);
// 1000 stappen (1 rotatie van de as), motor draait terug



}

----


Ter info:
- aanbevolen wordt om de aansturingscodering microsteps aan te houden.
- de praktijk wijst uit dat het aantal stappen (in onderstaand geval 200) niet exact overeenkomt met 1 omwenteling. Je moet jouw systeem dus zelf exact gaan afstellen.
- het gebruik van de USB kabel als voedingskabel van het systeem is af te raden.
- gebruik van spanningen boven de 5V is af te raden. De ic's worden te heet. Gebruik een batterij van 4,5V. Er loopt dan een  stroom door de stappenmotor van ca 400 mA.   

 
 
code met toelichting::

// JRL technasium 22-10-15

#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=1000; // instelling vertragingstijd tussen de diverse instellingen


void setup() {
motor.setSpeed(100); // instelling van de motorsnelheid in rotaties/minuut
Serial.begin(9600); 
}

void loop() 
{

Serial.println("microsteps"); // via seriele monitor zichtbaar maken welke toestand de stappenmotor zich bevindt.
motor.step(600,FORWARD,MICROSTEP); 
// gebruikt PWM
// 600 stappen, motor draait voorwaarts in microstappen 
motor.step(200,BACKWARD,MICROSTEP);
// 200 stappen, motor draait terug in microsteps

delay(tijd);

Serial.println("interleave");
/* beide spoel worden geactiveerd dusdanig dat het aantal ingestelde stappen worden verdubbeld.
*/ voordeeL; nauwkeurig instelbaar/
motor.step(600,FORWARD,INTERLEAVE); 
// 600 stappen, motor draait voorwaarts in interleave 
motor.step(200,BACKWARD,INTERLEAVE);
// 200 stappen, motor draait terug in interleave

delay (tijd);

Serial.println("double");
// double: beide spoelen worden geactiveerd, meer stroomverbruik maar ook meer vermogen.
motor.step(600,FORWARD,DOUBLE); 
// 600 stappen, motor draait voorwaarts in interleave 
motor.step(200,BACKWARD,DOUBLE);
// 200 stappen (1 rotatie van de as), motor draait terug in interleave

delay(tijd);

Serial.println("single"); 
// single: slechts 1 spoel wordt geactiveerd, voordeel minder stroomverbruik.
motor.step(600,FORWARD,SINGLE); 
// 600 stappen , motor draait voorwaarts in interleave 
motor.step(200,BACKWARD,SINGLE);
// 200 stappen (1 rotatie van de as), motor draait terug in interleave

delay(tijd);

}