Eines de l'usuari

Eines del lloc


tutorials:arduino:05_arduino_motors:25_accelstepper

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
tutorials:arduino:05_arduino_motors:25_accelstepper [2019/05/05 22:46]
crevert cheat
tutorials:arduino:05_arduino_motors:25_accelstepper [2019/05/19 13:54] (actual)
crevert [Sense acceleració pero amb desti
Línia 1: Línia 1:
 +====== AccelStepper ======
 +
 +
 Amb la llibreria AccelStepper podem fer que vagin dos motors simultaniament i amb acceleracions. Amb la llibreria AccelStepper podem fer que vagin dos motors simultaniament i amb acceleracions.
  
Línia 7: Línia 10:
  
 Resum(xulla). {{ :​tutorials:​arduino:​05_arduino_motors:​accelstepper_cheat.pdf |}} Resum(xulla). {{ :​tutorials:​arduino:​05_arduino_motors:​accelstepper_cheat.pdf |}}
 +
 +
 +===== Amb  acceleració =====
  
 <​code>​ <​code>​
Línia 30: Línia 36:
 void setup() { void setup() {
   // Units: position functions have units of STEPS, speed related functions have units of STEPS/SEC   // Units: position functions have units of STEPS, speed related functions have units of STEPS/SEC
-  stepper1.setSpeed(10);​ +
-  stepper2.setSpeed(10);​+
   stepper1.setMaxSpeed(200.0);​   stepper1.setMaxSpeed(200.0);​
   stepper2.setMaxSpeed(200.0);​   stepper2.setMaxSpeed(200.0);​
Línia 95: Línia 100:
  
 </​code>​ </​code>​
 +
 +===== Sense acceleració =====
 +
 +<note important>​run() es amb acceleració i runSpeed() es sense acceleració. El setSpeed() cal posar-lo al loop() i el setMaxSpeeed() al setup()</​note> ​
 +
 +Exemple sense acceleració:​
 +
 +<code c senseAccel.ino>​
 +#include <​AccelStepper.h>​
 +#define HALFSTEP 8
 +
 +// motor pins
 +#define motorPin1 ​ A2     // IN1 on the ULN2003 driver 1
 +#define motorPin2 ​ A3     // IN2 on the ULN2003 driver 1
 +#define motorPin3 ​ A4     // IN3 on the ULN2003 driver 1
 +#define motorPin4 ​ A5    // IN4 on the ULN2003 driver 1
 +
 +#define motorPin5 ​ 8     // IN1 on the ULN2003 driver 2
 +#define motorPin6 ​ 9     // IN2 on the ULN2003 driver 2
 +#define motorPin7 ​ 10    // IN3 on the ULN2003 driver 2
 +#define motorPin8 ​ 11    // IN4 on the ULN2003 driver 2
 +
 +// Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48
 +AccelStepper stepper1(HALFSTEP,​ motorPin1, motorPin3, motorPin2, motorPin4);
 +AccelStepper stepper2(HALFSTEP,​ motorPin5, motorPin7, motorPin6, motorPin8);
 +
 +
 +void setup() {
 +  // Units: position functions have units of STEPS, speed related functions have units of STEPS/SEC
 + 
 +  stepper1.setMaxSpeed(500.0);​
 +  stepper2.setMaxSpeed(500.0);​
 + // stepper1.setAcceleration(100.0);​
 + // stepper2.setAcceleration(100.0);​
 +
 +
 +  stepper1.moveTo(4096);​
 +  stepper2.moveTo(4096);  ​
 + 
 +}
 +
 +void loop() {
 +  // put your main code here, to run repeatedly:
 +   ​stepper1.setSpeed(10.0);​
 +    stepper2.setSpeed(10.0);​
 +    stepper1.runSpeed();​
 +    stepper2.runSpeed();​
 +}
 +</​code>​
 +
 +===== Sense acceleració però amb destí =====
 +
 +<WRAP center round info 60%>
 +Amb runSpeed() la velocitat es constant però no para al destí, per parar al destí cal **runSpeedToPosition**
 +</​WRAP>​
 +
 +<code c runSpeedToPosition.ino>​
 +#include <​AccelStepper.h>​
 +#define HALFSTEP 8
 +
 +// motor pins
 +#define motorPin1 ​ A2     // IN1 on the ULN2003 driver 1
 +#define motorPin2 ​ A3     // IN2 on the ULN2003 driver 1
 +#define motorPin3 ​ A4     // IN3 on the ULN2003 driver 1
 +#define motorPin4 ​ A5    // IN4 on the ULN2003 driver 1
 +
 +#define motorPin5 ​ 8     // IN1 on the ULN2003 driver 2
 +#define motorPin6 ​ 9     // IN2 on the ULN2003 driver 2
 +#define motorPin7 ​ 10    // IN3 on the ULN2003 driver 2
 +#define motorPin8 ​ 11    // IN4 on the ULN2003 driver 2
 +
 +// Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48
 +AccelStepper stepper1(HALFSTEP,​ motorPin1, motorPin3, motorPin2, motorPin4);
 +AccelStepper stepper2(HALFSTEP,​ motorPin5, motorPin7, motorPin6, motorPin8);
 +
 +
 +void setup() {
 +  // Units: position functions have units of STEPS, speed related functions have units of STEPS/SEC
 + 
 +  stepper1.setMaxSpeed(500.0);​
 +  stepper2.setMaxSpeed(500.0);​
 + // stepper1.setAcceleration(100.0);​
 + // stepper2.setAcceleration(100.0);​
 +
 +
 +  stepper1.moveTo(100);​
 +  stepper2.moveTo(100);​
 + 
 +}
 +
 +void loop() {
 +  // put your main code here, to run repeatedly:
 +   ​stepper1.setSpeed(10.0);​
 +    stepper2.setSpeed(10.0);​
 +    stepper1.runSpeedToPosition();​
 +    stepper2.runSpeedToPosition();​
 +}
 +</​code>​
 +
 +
 +
 +
 +
  
  
  
tutorials/arduino/05_arduino_motors/25_accelstepper.1557089163.txt.gz · Darrera modificació: 2019/05/05 22:46 per crevert