Information

stateMotor = MOTOR_REVERSE_AFTER_EXTRUSION;
timeMotorReverse = 20; // reverse time is 50ms * timeMotorReverse (20 = 1s)
}
}
break;
}
case STATE_HEATING:
// if happened that heater has so low temperature, motor stop
digitalWrite(MOTOR_DIR, LOW);
analogWrite(MOTOR_PWM, 0);
stateMotor = MOTOR_STOP;
break;
}
// resolve motor states (Extrusion, Reverse, Stop, ...)
switch(stateMotor){
case MOTOR_STOP:
digitalWrite(MOTOR_DIR, LOW);
analogWrite(MOTOR_PWM, 0);
break;
case MOTOR_EXTRUSION:{
int pwmSpeed = setMotorSpeed*255;
digitalWrite(MOTOR_DIR, LOW);
analogWrite(MOTOR_PWM, pwmSpeed/100);
break;
}
case MOTOR_REVERSE:
--timeMotorReverse;
if(timeMotorReverse > 0){
digitalWrite(MOTOR_DIR, HIGH);
analogWrite(MOTOR_PWM, 0);
}
else{
stateMotor = MOTOR_STOP;
}
break;
case MOTOR_REVERSE_AFTER_EXTRUSION:
--timeMotorReverse;
if(timeMotorReverse > 0){
int pwmSpeed = (100-setMotorSpeed)*255;