Circuit diagram

3Dsimo Kit
Device: 3Dsimo Kit
Rev. 1.00 Page 15/18
// tolerant zone where temperature is LOW for extrusion/reverse
else {
statusHeating = STATE_HEATING;
ssd1306_printFixedN ( 116 , 16 , "H", STYLE_NORMAL, FONT_SIZE_2X);
digitalWrite (LED_NANO, !digitalRead(LED_NANO)); // turn the LED on (HIGH is the voltage
level)
}
}
// assign functions according to heating state (mainly button function)
switch (statusHeating){
case STATE_COOLING:
case STATE_READY:{
// button EXTRUSION is pressed, extrude material
if (! digitalRead (BTN_EXT) && digitalRead (BTN_REV)){
stateMotor = MOTOR_EXTRUSION;
}
// button REVERSE is pressed, retract material
else if ( digitalRead (BTN_EXT) && ! digitalRead (BTN_REV)){
stateMotor = MOTOR_REVERSE;
timeMotorReverse = 400 ; // reverse time is 50ms * timeMotorReverse (400 = 20s)
}
// both buttons are pressed, motor stopped
else if (! digitalRead (BTN_EXT) && ! digitalRead (BTN_REV)){
stateMotor = MOTOR_STOP;
}
// not buttons are pressed
else {
if (lastMotorState == MOTOR_EXTRUSION){
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 ;
}