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 | ||