Information

statusHeating = STATE_COOLING;
ssd1306_printFixedN(116, 16, "C", STYLE_NORMAL, FONT_SIZE_2X);
}
// tolerant zone where temperature is OK for extrusion/reverse
else if(actualTemperature > setTemperature - 10){
statusHeating = STATE_READY;
ssd1306_printFixedN(116, 16, "R", STYLE_NORMAL, FONT_SIZE_2X);
digitalWrite(LED_NANO, HIGH); // turn the LED on (HIGH is the voltage level)
}
// 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)
}
}
// assing 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){