// MODE 2, MODE 1, MODE 0
divisionMicrostepping = microstep_div;
switch ( divisionMicrostepping ) {
± case 1: { // fullStep1_1: Mayor torque, movimientos bruscos y mayor ruido
digitalWrite( microstep_mode0, LOW ); // 0
digitalWrite( microstep_mode1, LOW ); // 0
digitalWrite( microstep_mode2, LOW ); // 0 -> 000 = 0
stepsPerRevolution = fullStep * microstep_div; // 200*1=200 pasos para dar una vuelta del motor
anglePerStep = rev / stepsPerRevolution; // 360/200 = 9/5 = 1.8º/paso
// 200 pasos * 1.8 deg = 360 deg == 1 vuelta
// ...
break;
}
± case 2: { // halfStep1_2: Menor torque, movimientos suaves y menor ruido
digitalWrite( microstep_mode0, HIGH );// 1
digitalWrite( microstep_mode1, LOW ); // 0
digitalWrite( microstep_mode2, LOW ); // 0 -> 001 = 1
stepsPerRevolution = fullStep * microstep_div; // 200*2=400
anglePerStep = rev / stepsPerRevolution; // 360/400 = 9/10 = 0.9º/paso
// 400 pasos * 0.9 deg = 360 deg
// ...
break;
}
...
± default: { // fullStep1_1: Mayor torque, movimientos bruscos y mayor ruido
digitalWrite( microstep_mode0, LOW );
digitalWrite( microstep_mode1, LOW );
digitalWrite( microstep_mode2, LOW ); // 000 = 0
stepsPerRevolution = fullStep * microstep_div; // 200*1=200 pasos para dar una vuelta del motor
anglePerStep = rev / stepsPerRevolution; // 360/200 = 9/5 = 1.8º/paso
// 200 pasos * 1.8 deg = 360 deg == 1 vuelta
// ...
break;
}
}