Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
materiel:uln2003:accueil [2018/03/15 16:03] resonance [StepperMotor LIB] |
materiel:uln2003:accueil [2019/01/30 10:23] (Version actuelle) resonance [simple code avec lib stepper] |
||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
{{youtube> | {{youtube> | ||
+ | ===== Exemple ===== | ||
+ | <code cpp> | ||
+ | /* | ||
+ | BYJ48 Stepper motor code | ||
+ | | ||
+ | IN1 >> D8 | ||
+ | IN2 >> D9 | ||
+ | IN3 >> D10 | ||
+ | IN4 >> D11 | ||
+ | VCC ... 5V Prefer to use external 5V Source | ||
+ | Gnd | ||
+ | | ||
+ | https:// | ||
+ | | ||
+ | */ | ||
+ | #define IN1 8 | ||
+ | #define IN2 9 | ||
+ | #define IN3 10 | ||
+ | #define IN4 11 | ||
+ | |||
+ | int Steps = 0; | ||
+ | boolean Direction = true;// gre | ||
+ | unsigned long last_time; | ||
+ | unsigned long currentMillis ; | ||
+ | int steps_left=4095; | ||
+ | long time; | ||
+ | void setup() | ||
+ | { | ||
+ | Serial.begin(115200); | ||
+ | pinMode(IN1, | ||
+ | pinMode(IN2, | ||
+ | pinMode(IN3, | ||
+ | pinMode(IN4, | ||
+ | // delay(1000); | ||
+ | |||
+ | } | ||
+ | void loop() | ||
+ | { | ||
+ | while(steps_left> | ||
+ | currentMillis = micros(); | ||
+ | if(currentMillis-last_time> | ||
+ | stepper(1); | ||
+ | time=time+micros()-last_time; | ||
+ | last_time=micros(); | ||
+ | steps_left--; | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | Serial.println(" | ||
+ | delay(2000); | ||
+ | Direction=!Direction; | ||
+ | steps_left=4095; | ||
+ | } | ||
+ | |||
+ | void stepper(int xw){ | ||
+ | for (int x=0; | ||
+ | switch(Steps){ | ||
+ | case 0: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | case 1: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | case 2: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | case 3: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | case 4: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | case 5: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | case 6: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | case 7: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | SetDirection(); | ||
+ | } | ||
+ | } | ||
+ | void SetDirection(){ | ||
+ | if(Direction==1){ Steps++;} | ||
+ | if(Direction==0){ Steps--; } | ||
+ | if(Steps> | ||
+ | if(Steps< | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====simple code avec lib stepper ===== | ||
+ | <code c+> | ||
+ | #include < | ||
+ | const int stepsPerRevolution = 32*64; | ||
+ | |||
+ | // (step, | ||
+ | Stepper myStepper(stepsPerRevolution, | ||
+ | |||
+ | void setup() { } | ||
+ | |||
+ | void loop() { | ||
+ | myStepper.setSpeed(10); | ||
+ | |||
+ | // 100 step = 2048 | ||
+ | myStepper.step(2048); | ||
+ | delay(1500); | ||
+ | myStepper.step(-2048); | ||
+ | delay(1500); | ||
+ | } | ||
+ | |||
+ | |||
+ | </ | ||
===== StepperMotor LIB ===== | ===== StepperMotor LIB ===== | ||
+ | * Creer un dossier StepperMotor dans / | ||
+ | * copier StepperMotor.h et StepperMotor.cpp dedans | ||
+ | |||
<code cpp> | <code cpp> | ||
+ | // StepperMotor.h | ||
#ifndef Stepper_h | #ifndef Stepper_h | ||
#define Stepper_h | #define Stepper_h |