chtěl bych vytvořit program, při kterém krokáč akceleruje a dekceleruje po tom jak sepnu tlačítko (switch button) + jeho rychlost bude možné ovladát potenciometrem. Podařilo se mi udělat aby akceleroval a deakceleroval i regulovat rychlost pomocí potenciometru, ale nedaří se mi to rozchodit v jednom programu použím driver Dma 860h a Nema 23
Mohly by mi někdo pomoct, už si stím nevím rady ....
díky !
Kód: Vybrat vše
/*
*/
int startTl = 2;
int led = 3;
int StartBt;
int RychlostBt;
int Position;
int speedS;
#include <AccelStepper.h>
// Knihovna AccelStepper
AccelStepper stepper1(AccelStepper::DRIVER, 7, 6);
// STEP (7), DIR (6)
// přiřazení pinů
#define SPEED_PIN 0
// Potentiometr (1-10k) A0
// konstanty
#define MAX_SPEED 4000
#define MIN_SPEED 0
// proměnné
float current_speed = 0.0;
int analog_value = 0;
// start prg
void setup()
{
pinMode(3, OUTPUT);
stepper1.setMaxSpeed(MAX_SPEED);
stepper1.setAcceleration(100);
}
void loop()
{
StartBt = digitalRead(startTl);
if (StartBt == HIGH ) {
analog_value = analogRead(SPEED_PIN);
// read value of potenitometr (0 až 1023)…
current_speed = (((analog_value/1023.0) * (MAX_SPEED - MIN_SPEED)) + MIN_SPEED);
// convert to stepper speed
stepper1.setSpeed(current_speed);
// set rotation speed
stepper1.runSpeed();
// add to driver
}
else if (StartBt == LOW ) { //deceleration!!!
stepper1.run();
digitalWrite(3,HIGH);
}
}