Test running a stepper using a new 24 volt 17 Amp pwr supply, a 6600 or 6500 driver, a 23HS9430B stepper, an UNO and the test code below the IDE & Co ran well but the stepper ran strangely. The number of pulses per rev didn't match.
Trying to find out why timing of step pulses, the number of pulses was changed.
Then suddenly, after an hour of testing the IDE ran into problems never experienced before. No wiring changed, only code.
Looks like time for bed. 2 AM now.
Anybody having a clue?
Code and error report:
//#include <Stepper.h>
#define Low 0
#define High 1023
#define fwd HIGH
#define bwd LOW
#define motorX 1
#define motorY 2
#define motorZ 3
void setup()
{
Serial.begin(115200);
Serial.println("NEMA 23 3.0 Nm test 201110");
delay(5000);//Show program name
pinMode(2, OUTPUT); //can be used as x-step
pinMode(5, OUTPUT); //can be used as x-dir
pinMode(8, OUTPUT); //enable active low
pinMode(13, OUTPUT);
}
void stepmotor(int, int);
void stepmotor(int (motor), int(dir))
{
int count, adir;
unsigned long start;
start = millis();
// Serial.print("Dir: ");Serial.println(dir);
digitalWrite(8, LOW);//enable motorpower
if ( dir == fwd )
{
adir = High;
Serial.println("Forward");
}
else
{
adir = Low;
Serial.println("Backward");
}
//Serial.print("Start :"); Serial.println(millis());
for (count = 0; count < 12800 / 3; count++)
{
if (motor == motorX )
{
digitalWrite( 5, dir);//digital dir does not owerride analoWrite(5, dir)
digitalWrite( 2, HIGH);// digital x-step
delayMicroseconds(10);
digitalWrite( 2, LOW);// digital x-step
delayMicroseconds(790); // 10 mS == 100 step per second
}
if (motor == motorY)
{
digitalWrite( 6, dir);
digitalWrite( 3, LOW);
digitalWrite( 3, HIGH);
delay(5);
}
if (motor == motorZ)
{
digitalWrite( 7, dir);
digitalWrite( 4, LOW);
digitalWrite( 4, HIGH);
delay(5);
}
}
Serial.print("Stopp :"); Serial.println(millis() - start);
// digitalWrite(8, HIGH);//disable motorpower
}
void loop() {
// put you()r main code here, to run repeatedly:
// analogWrite( 0, Low);//tst
// analogWrite( 1, Low);//tst
// analogWrite( 2, Low);// x-step analog KLAR
// analogWrite( 3, Low);// y-step analog KLAR
// analogWrite( 4, Low);// z-step analog¨KLAR
// analogWrite( 5, Low);// x-dir analog KLAR
// digitalWrite(2, LOW);// x-step digitalt
// digitalWrite(3, LOW);// y-step digitalt
// digitalWrite(4, LOW);// z-step digitalt
// digitalWrite(5,LOW); // x-dir digitalt
// digitalWrite(6,HIGH);// y-dir KLAR HIGH == CW LOW == CCW
// digitalWrite(7,HIGH);// z-dir KLAR HIGH == CW LOW == CCW KLAR
// digitalWrite(8,LOW);//
// digitalWrite(9,LOW);//
// digitalWrite(10,LOW);//
// digitalWrite(11,LOW);//
// digitalWrite(12,LOW);
stepmotor( motorX, fwd );
// pulse (motorY, fwd );
// pulse (motorZ, fwd );
digitalWrite(13, LOW);
delay(2000);
// analogWrite( 0, High);//
// analogWrite( 1, High);//
// analogWrite( 2, High);//x-channel KLAR
// analogWrite( 3, High);//y-channel KLAR
// analogWrite( 4, High);//z-channel KLAR
// analogWrite( 5, High);//x-dir KLAR
// digitalWrite(2, HIGH); //x-step!!!
// digitalWrite(3, HIGH); //y-step!!!
// digitalWrite(4, HIGH); //z-step!!!
// digitalWrite(5, HIGH); //X-DIR CW ON HIGH CCW ON LOW
// digitalWrite(6, HIGH); //Y-DIR CW ON HIGH CCW ON LOW KLAR
// digitalWrite(7, LOW); //Z-DIR CW ON HIGH, CCW ON LOW KLAR
// digitalWrite(8,HIGH);//
// digitalWrite(9,HIGH);//
// digitalWrite(10,HIGH);//
// digitalWrite(11,HIGH);//
// digitalWrite(12,HIGH);//
stepmotor( motorX, bwd );// går finfint +200, -200 steg
// pulse (motorY, bwd );
// pulse (motorZ, bwd );
digitalWrite(13, HIGH); //
delay(2000);
}
Sketch uses 2490 bytes (7%) of program storage space. Maximum is 32256 bytes.
Global variables use 240 bytes (11%) of dynamic memory, leaving 1808 bytes for local variables. Maximum is 2048 bytes.
avrdude: ser_open(): can't set com-state for "\\.\COM7"
An error occured during uploading the sketch.
(Ett fel inträffade under uppladdning av sketchen)
Error while setting serial port parameters: 115 200 N 8 1