Circuit diagram
3Dsimo Kit
Device: 3Dsimo Kit
Rev. 1.00 Page 16/18
// 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 ;
digitalWrite (MOTOR_DIR, HIGH);
analogWrite (MOTOR_PWM, pwmSpeed/ 100 );
}
else {
stateMotor = MOTOR_STOP;
}
break ;
}
lastMotorState = stateMotor;
// one-time action, mainly for material change
static char buttonsPressed = 0 ;
// button UP pressed
if (! digitalRead (BTN_UP) && digitalRead (BTN_DOWN)){
if (!(buttonsPressed & 0x01 )){
if (materialID < MATERIAL_COUNT- 1 ){










