1

I am a NOOB. I admit to a huge lack of understanding of programming. I just need my machine to work.

I cannot wrap my head around getting independent speed control of 2 steppers since it seems that controlling the speed is dependent upon adjusting the length of delay between sending pulses to the motors, however sketches only contain one Loop and any delay in that loop has a global effect.

Here is my code so far

// My sketch to control 1.8 degree stepper motors operating the Gizmoto V3 Braiding Machine
// One 10k Pot speed-controls 2 braiding steppers, 
// Second Pot speed-controls 3rd stepper which operates the take-up capstan

// Rev 1.0 March 10 2021

// Defines pins numbers

const int braidStepPin = 3; const int braidDirPin = 2;

const int capstanStepPin = 5; const int capstanDirPin = 4;

//Define variables here

int braidDelay; // Controls the speed of the braiding drive according to braidSpeed function int capstanDelay; // Controls the speed of the capstan drive according to capstanSpeed function

void setup() { // Sets the pins as Outputs pinMode(braidStepPin,OUTPUT); pinMode(braidDirPin,OUTPUT); pinMode(capstanStepPin,OUTPUT); pinMode(capstanDirPin,OUTPUT);

digitalWrite(braidDirPin,HIGH); // Sets the braid motors' direction digitalWrite(capstanDirPin,HIGH); // Sets the capstan motor's direction } void loop() {

digitalWrite(braidStepPin, HIGH); // Sends the braid motors one pulse digitalWrite(braidStepPin, LOW); delayMicroseconds(braidSpeed);

digitalWrite(capstanStepPin, HIGH); //Sends the capstan motor one pulse digitalWrite(capstanStepPin, LOW); delayMicroseconds(capstanSpeed); } // Function for reading the Braiding Potentiometer int braidSpeed() { int braidDelay = analogRead(A0); // Reads the potentiometer int newBraidDelay = map(braidDelay, 0, 1020, 200, 700); // Converts the read values of the potentiometer from 0 to 1023 into desired delay values return newBraidDelay; } // Function for reading the Capstan Potentiometer int capstanSpeed() { int capstanDelay = analogRead(A1); // Reads the potentiometer int newCapstanDelay = map(capstanDelay, 0, 1020, 200, 700); // Converts the read values of the potentiometer from 0 to 1023 into desired delay values return newCapstanDelay; }

0 Answers0