void showIdleScreen() { if (updateScreen) { lcd.clear(); lcd.setCursor(0, 0); lcd.print(F("IDLE ")); lcd.setCursor(5, 0); lcd.write(byte(1)); lcd.setCursor(4, 1); lcd.write(byte(2)); lcd.write(byte(3)); lcd.write(byte(4)); updateScreen = false; } lcd.setCursor(0, 1); lcd.print(F("Pr")); lcd.setCursor(2, 1); lcd.print(currentProfile, HEX); if (profile.temperatureStep[profile.profileSteps - 2] < 181) { lcd.print(F("+")); lcd.write(byte(2)); } else { lcd.print(F("-")); lcd.write(byte(2)); } lcd.setCursor(7, 0); lcd.print(profile.temperatureStep[profile.profileSteps - 1]); lcd.write(byte(0)); lcd.print(F(" ")); lcd.setCursor(7, 1); lcd.print(profile.Setpoint2); lcd.write(byte(0)); lcd.print(F(" ")); } void showProfEditStepScr() { if (updateScreen) { lcd.clear(); lcd.setCursor(0, 0); lcd.print(F("Profile ")); lcd.print(currentProfile); lcd.print(F(" Edit")); lcd.setCursor(0, 1); lcd.print(F("Profile Steps: ")); lcd.print(profile.profileSteps); updateScreen = false; } lcd.setCursor(15, 1); lcd.print(profile.profileSteps); } void showEditPwrBtm() { if (updateScreen) { lcd.setCursor(0, 1); lcd.print(F("Bottom PWR: ")); updateScreen = false; } lcd.setCursor(12, 1); lcd.print(profile.pwr_BOTTOM); lcd.print(F("% ")); } void showEditPwrTop() { if (updateScreen) { lcd.setCursor(0, 1); lcd.print(F("TOP PWR: ")); updateScreen = false; } lcd.setCursor(12, 1); lcd.print(profile.pwr_TOP); lcd.print("% "); } void showProfEditDwlScr() { if (updateScreen) { lcd.clear(); lcd.setCursor(0, 0); lcd.print(F("Profile ")); lcd.print(currentProfile); lcd.print(F(" Edit")); lcd.setCursor(0, 1); lcd.print(F("Step")); lcd.print(editStep + 1); lcd.print(F(" Dwell:")); lcd.print(profile.dwellTimerStep[editStep]); lcd.print(F("s ")); updateScreen = false; } lcd.setCursor(12, 1); lcd.print(profile.dwellTimerStep[editStep]); lcd.print(F("s ")); } void showTempStpEditScr() { if (updateScreen) { lcd.setCursor(0, 1); lcd.print(F("Step")); lcd.print(editStep + 1); lcd.print(F(" Target:")); lcd.print(profile.temperatureStep[editStep]); lcd.print(F(" ")); updateScreen = false; } lcd.setCursor(13, 1); lcd.print(profile.temperatureStep[editStep]); lcd.print(" "); } void showProfSP2Edit() { if (updateScreen) { lcd.setCursor(0, 1); lcd.print(F("Bottom Heat: ")); updateScreen = false; } lcd.setCursor(12, 1); lcd.print(profile.Setpoint2); lcd.write(byte(0)); lcd.print(F(" ")); } void showPIDMenu() { lcd.setCursor(0, 1); lcd.print(F("Select >")); lcd.setCursor(9, 1); switch (pidCursor) { case 0: lcd.print(F("Bottom")); break; case 1: lcd.print(F("Top")); break; case 2: lcd.print(F("A-Tune")); break; case 3: lcd.print(F("Back")); break; } } void showEditStepScreen() { float out_float; float out_floatB; if (updateScreen) { lcd.clear(); lcd.setCursor(0, 1); lcd.print(F("Step")); lcd.print(editStep + 1); lcd.print(F(" Ramp: ")); updateScreen = false; } if (editStep == 0) { lcd.setCursor(0, 0); lcd.print(F("25")); lcd.write(byte(0)); lcd.setCursor(13, 0); lcd.print(profile.Setpoint2); lcd.write(byte(0)); updateScreen = false; } else { lcd.setCursor(0, 0); lcd.print(profile.temperatureStep[editStep - 1]); lcd.setCursor(13, 0); lcd.print(profile.temperatureStep[editStep]); updateScreen = false; } if (editStep == 0) { lcd.setCursor(5, 0); out_float = (profile.Setpoint2 - 25) / (profile.rampRateStep[editStep] / 10.0); lcd.print(out_float, 1); lcd.print("s"); } else { lcd.setCursor(5, 0); out_float = (profile.temperatureStep[editStep] - profile.temperatureStep[editStep - 1]) / (profile.rampRateStep[editStep] / 10.0); lcd.print(out_float, 1); lcd.print("s"); } lcd.setCursor(11, 1); out_float = profile.rampRateStep[editStep] / 10.0; lcd.print(out_float, 1); lcd.write(byte(0)); lcd.print(" "); } void showRampTemp(byte comp, byte val, byte pos) { lcd.setCursor(7, pos); if (comp < 100 ) { lcd.print(" "); lcd.print(val); } else { lcd.print(val); } lcd.write(byte(0)); } void showPIDMenuHeader() { if (updateScreen) { lcd.clear(); lcd.setCursor(2, 0); lcd.print(F("-=PID MENU=-")); updateScreen = false; } } void clearLine2() { lcd.setCursor(0, 1); lcd.print(" "); } void showPIDCurD() { lcd.setCursor(0, 1); switch (pidCursorD) { case 0: lcd.print(F("Set PD:")); lcd.print(KpD); break; case 1: lcd.print(F("Set ID:")); lcd.print(KiD); break; case 2: lcd.print(F("Set DD:")); lcd.print(KdD); break; case 3: lcd.print(F("Back")); break; } lcd.print(F(" ")); } void showPIDCurU() { lcd.setCursor(0, 1); switch (pidCursorU) { case 0: lcd.print(F("Set PU:")); lcd.print(KpU); break; case 1: lcd.print(F("Set IU:")); lcd.print(KiU); break; case 2: lcd.print(F("Set DU:")); lcd.print(KdU); break; case 3: lcd.print(F("Back")); break; } lcd.print(F(" ")); } void showPIDTuneSel() { lcd.setCursor(7, 1); switch (selection) { case 0: lcd.print(F("Bottom")); break; case 1: lcd.print(F("Top ")); break; case 2: lcd.print(F("GoBack")); break; } } void showPIDEdit() { lcd.setCursor(0, 1); switch (pidEdit) { case 0: lcd.print(F("PD:")); lcd.print(KpD); break; case 1: lcd.print(F("ID:")); lcd.print(KiD); break; case 2: lcd.print(F("DD:")); lcd.print(KdD); break; case 3: lcd.print(F("PU:")); lcd.print(KpU); break; case 4: lcd.print(F("IU:")); lcd.print(KiU); break; case 5: lcd.print(F("DU:")); lcd.print(KdU); break; } lcd.print(F(" ")); } void showPulseOut(byte val, byte loc) { lcd.setCursor(11, loc); if (val > 20) { lcd.print(F("<")); if (val < 20) { lcd.print(F(" ")); } } } void rstScreen() { lcd.clear(); lcd.setCursor(3, 0); lcd.print(F("-=REBOOT=-")); lcd.setCursor(5, 1); lcd.print(F("in: ")); for (uint8_t i = 20; i > 0; i--) { lcd.setCursor(12, 1); lcd.print(i); lcd.print(F("s ")); delay(1000); } } void showTopIcon(bool stat) { lcd.setCursor(5, 0); if (stat) { lcd.write(byte(1)); } else { lcd.print(F(" ")); } } void showBottomIcon(bool stat) { lcd.setCursor(4, 1); if (stat) { lcd.write(byte(2)); lcd.write(byte(3)); lcd.write(byte(4)); } else { lcd.print(F(" ")); } } void tuneScreenShow(byte outpt, byte accu, byte loc) { byte out = map(outpt, 0, 150, 0, 100); lcd.setCursor(7, 0); if (out < 100) { lcd.print(F(" ")); if (out < 10) { lcd.print(F(" ")); lcd.print (out); } else if (out == 0) { lcd.print(F(" 0")); } else { lcd.print (out); } } else { lcd.print (out); } lcd.print(F("%")); lcd.setCursor(7, 1); if (accu < 100) { lcd.print(F(" ")); if (accu < 10) { lcd.print(F(" ")); lcd.print(accu); } else if (accu == 0) { lcd.print(F(" 0")); } else { lcd.print(accu); } } else { lcd.print(accu); } lcd.print(F("%")); showPulseOut(out, loc); }