A18. Askelmoottorit - matpi/EmbeddedSystemsUTU GitHub Wiki

Askelmoottorit ovat yleisesti teollisuudessa ja automaatiossa käytettyjä moottoreita. Niitä voidaan ohajta tarkasti aktivoimalla moottorin johtimia tietyssä järjestyksessä. Tämä saa moottorin ottamaan askelia. Meidän käyttämässä versiossa on lisäksi alennusvaihteisto joka tekee siitä varsin vääntävän ja tarkan. Katso tietoa tästä moottorista näiltä opas-sivustoilta: http://arduino-info.wikispaces.com Oheisena oleva koodiesimerkki on haettu tältä sivustolta.

stepperi

Arduino ohjelmassa on valmiina kirjasto steppereiden ajamiseen, mutta se ei toimi kovin hyvin. Niinpä käytämmekin Mike McCauleyn kirjastoa jolla voidaan ajaa useita moottoreita hienostuneesti. Kirjaston nimi on AccelStepper. Seuraavan koodin avulla voit kokeilla askelmoottorin toimintaa. Ennen koodin alustuksia selitetään askelmoottorin kytkentä: // here in the sequence 1-3-2-4 for proper sequencing Stepper small_stepper (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11)... askelmoottorin ohjainpiirin pinnit 1-3-2-4 yhdistetään siis Arduinon pinneihin järjestyksessä 8-10-9-11.

/* YourDuino.com Example Software Sketch
Small Stepper Motor and Driver V1.3 11/30/2013
http://arduino-direct.com/sunshop/index.php?l=product_detail&p=126
Shows 4-step sequence, Then 1/2 turn and back different speeds
[email protected] */

/*-----( Import needed libraries )-----*/
#include <Stepper.h>

/*-----( Declare Constants, Pin Numbers )-----*/
//---( Number of steps per revolution of INTERNAL motor in 4-step mode )---
#define STEPS_PER_MOTOR_REVOLUTION 32   

//---( Steps per OUTPUT SHAFT of gear reduction )---
#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64  //2048  

/*-----( Declare objects )-----*/
// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to

//The pin connections need to be 4 pins connected
// to Motor Driver In1, In2, In3, In4  and then the pins entered
// here in the sequence 1-3-2-4 for proper sequencing
Stepper small_stepper(STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);


/*-----( Declare Variables )-----*/
int  Steps2Take;

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
// Nothing  (Stepper Library sets pins as outputs)
}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
small_stepper.setSpeed(1);   // SLOWLY Show the 4 step sequence 
Steps2Take  =  4;  // Rotate CW
small_stepper.step(Steps2Take);
delay(2000);

Steps2Take  =  STEPS_PER_OUTPUT_REVOLUTION / 2;  // Rotate CW 1/2 turn
small_stepper.setSpeed(100);   
small_stepper.step(Steps2Take);
delay(1000);

Steps2Take  =  - STEPS_PER_OUTPUT_REVOLUTION / 2;  // Rotate CCW 1/2 turn  
small_stepper.setSpeed(700);  // 700 a good max speed??
small_stepper.step(Steps2Take);
delay(2000);

}/* --(end main loop )-- */

/* ( THE END ) */
⚠️ **GitHub.com Fallback** ⚠️