Heeft iemand een kant en klare stepper besturing sketch ?
35 berichten
• Pagina 4 van 4 • 1, 2, 3, 4
Re: Heeft iemand een kant en klare stepper besturing sketch
alkmaar is echt ver weg, maar ik wil als je een goede dag hebt best een keer een dagje komen kijken hoor, liefst in het weekend, want ik moet gewoon werken, en verder kan ik door het overlijden van mijn vrouw dus nu overal naar toe.
paul deelen
shooter@home.nl
shooter@home.nl
Advertisement
Re: Heeft iemand een kant en klare stepper besturing sketch
Echt heel aardig aangeboden, maar ik laat het hier even bij want voor mijn bloeddruk is wat ik aan het doen ben niet echt bevorderlijk meer.
Ik leg me (voorlopig) neer bij het feit dat die easydriver een onding is om mee te werken tot dat andere het tegendeel bewijzen.
Ik leg me (voorlopig) neer bij het feit dat die easydriver een onding is om mee te werken tot dat andere het tegendeel bewijzen.
Re: Heeft iemand een kant en klare stepper besturing sketch
Het lukt wel als ik maar even de tijd er voor neem
https://www.youtube.com/watch?v=BZPOaYB ... hannel=WTF
https://www.youtube.com/watch?v=BZPOaYB ... hannel=WTF
Re: Heeft iemand een kant en klare stepper besturing sketch
Daar ben ik nu echt heel blij mee, je ziet wel met een beetje puzzelen lukt het je wel hoor, en nu dus inbouwen, Maak daar ook een filmpje van ben benieuwd.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Heeft iemand een kant en klare stepper besturing sketch
Ik moest even een voorbeeld hebben ivm met step tijden enz, maar na eea gezien te hebben ben ik tot deze sketch gekomen.
Het zal volgens sommige waarschijnlijk niet zo mooi geschreven zijn of de txt zou misschien wat beter moeten, maar ik ben er tevreden mee voor nu.
Met MS1 en MS2 kan ik de snelheid instellen (welke niet echt nauwkeurig hoeft te zijn) en met de potmeter nauwkeuriger (A0 ligt nu aan ground).
Het zal volgens sommige waarschijnlijk niet zo mooi geschreven zijn of de txt zou misschien wat beter moeten, maar ik ben er tevreden mee voor nu.
Met MS1 en MS2 kan ik de snelheid instellen (welke niet echt nauwkeurig hoeft te zijn) en met de potmeter nauwkeuriger (A0 ligt nu aan ground).
- Code: Alles selecteren
// set pin numbers:
const byte stepUpPin = 4; // the number of the step pin UP
const byte stepDownPin = 5; // the number of the step pin DOWN
const byte enablePin = 6; // turn EasyDriver off when not turning (saves power but ONLY use when there's no need to hold position)
const byte stepOut = 2; // steppuls
const byte directionOut = 3; // dir
const byte ratePin = 0; // A0 - analog 0 pin on Arduino to control the stepping dealy (RPM)
// Variables will change:
byte ledState = LOW; // the current state of the output pin
byte lastStepUpButtonState = HIGH; // the previous reading from the step UP pin
byte lastStepDownButtonState = HIGH; // the previous reading from the step DOWN pin
byte directionState=HIGH; // the current direction
byte stepUpState=HIGH; // the current state of UP button
byte stepDownState=HIGH; // the current state of DOWN button
int stepsPassed = 0; //how many steps?
int stepsPassedMax = 160; // trying to calculate steps per revolution 1/8th is default
long lastStepUpDebounceTime = 0; // the last time the output pin was toggled
long lastStepDownDebounceTime = 0; // the last time the output pin was toggled
long debounceDelay = 50; // the debounce time in ms; increase if the output flickers 50
long stepDelayBase = 1; // 1ms base rate. Multiply by the reading from the RATE potentiometer for actual step delay
long stepDelay;
long lastStepTime = 0; // last time the step signal was sent
void setup() {
pinMode(stepUpPin, INPUT_PULLUP);
pinMode(stepDownPin, INPUT_PULLUP);
pinMode(ratePin, INPUT);
pinMode(stepOut, OUTPUT);
pinMode(directionOut, OUTPUT);
pinMode(enablePin, OUTPUT);
}
void loop()
{
// read the state of the switch into a local variable:
int readingStepUp = digitalRead(stepUpPin);
int readingStepDown = digitalRead(stepDownPin);
stepDelay = analogRead(ratePin) * stepDelayBase/50;
if(stepDelay < 1) stepDelay = 1; // reality check - a pot can read 0 and then it would mean infinite RMP - not possible
if(readingStepUp == LOW || readingStepDown == LOW) // only read buttons if either one of them is LOW
{
if (readingStepUp != lastStepUpButtonState) // If the switch changed, due to noise or pressing:
{
// reset the debouncing timer
lastStepUpDebounceTime = millis();
lastStepUpButtonState = readingStepUp;
}
if ((millis() - lastStepUpDebounceTime) > debounceDelay)
{
// whatever the reading is at, it's been there for longer than the debounce delay, so take it as the actual current state:
lastStepUpButtonState = readingStepUp;
lastStepUpDebounceTime = millis();
stepUpState = readingStepUp;
}
if (readingStepDown != lastStepDownButtonState) // If the switch changed, due to noise or pressing:
{
lastStepDownDebounceTime = millis(); // reset the debouncing timer
lastStepDownButtonState = readingStepDown;
}
if ((millis() - lastStepDownDebounceTime) > debounceDelay)
{
// whatever the reading is at, it's been there for longer than the debounce delay, so take it as the actual current state:
lastStepDownButtonState = readingStepDown;
lastStepDownDebounceTime = millis();
stepDownState = readingStepDown;
}
}
else
{
stepUpState = HIGH;
stepDownState = HIGH;
}
if(stepsPassed == 0 ) // end of if block that reads button states
{
if(stepUpState == LOW || stepDownState == LOW) // if the previous command has completed, make the direction decision
{
if(stepUpState == LOW && stepDownState == LOW)
{
directionState = LOW;
}
if(stepUpState == LOW && stepDownState == HIGH) // why are you holding both UP and DOWN buttons
{
directionState = HIGH;
}
if(stepUpState == HIGH && stepDownState == LOW) // go up
{
directionState = LOW;
}
stepsPassed = stepsPassedMax+1; // go down
}
}
if(stepsPassed > 0 ) // send step signals now
{
digitalWrite(enablePin, LOW); // wake up
digitalWrite(directionOut, directionState);
if((millis() - lastStepTime) > stepDelay) // delay expired, send another step
{
digitalWrite(stepOut, HIGH);
stepsPassed--;
lastStepTime = millis();
}
else
{
digitalWrite(stepOut, LOW); // time for one step not yet expired, hold the STEP signal low
}
}
else
{
digitalWrite(enablePin, HIGH); // go to sleep
}
}
35 berichten
• Pagina 4 van 4 • 1, 2, 3, 4
Terug naar Gezamenlijke projecten
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 3 gasten